public static MetaDataManager.MetaData LoadProjectAttributes(XmlElement _root, MetaDataManager.MetaData _inputMetaData) { _inputMetaData.DataName = _root.Name; _inputMetaData.BitDepth = Utils.ReadIntegerAttribute(_root, Globals.BIT_DEPTH_ATTRIBUTE); _inputMetaData.Width = Utils.ReadIntegerAttribute(_root, Globals.WIDTH_ATTRIBUTE); _inputMetaData.Height = Utils.ReadIntegerAttribute(_root, Globals.HEIGHT_ATTRIBUTE); _inputMetaData.Levels = Utils.ReadIntegerAttribute(_root, Globals.LEVELS_ATTRIBUTE); _inputMetaData.StartDateTimeNumber = Utils.ReadDoubleAttribute(_root, Globals.START_DATETIME_ATTRIBUTE); _inputMetaData.EndDateTimeNumber = Utils.ReadDoubleAttribute(_root, Globals.END_DATETIME_ATTRIBUTE); _inputMetaData.TimeInterval = Utils.ReadIntegerAttribute(_root, Globals.TIME_INTERVAL_ATTRIBUTE); return(_inputMetaData); }
public static IMetaData Import(string _projectFilePath) { XmlDocument document = new XmlDocument(); document.Load(_projectFilePath); XmlElement root = document.DocumentElement; MetaDataManager.MetaData outputMetaData = new MetaDataManager.MetaData(); outputMetaData = MetaDataReader.LoadProjectAttributes(root, outputMetaData); // Read in variables IList <IVariable> variablesList = new List <IVariable>(); IList <IList <TimeStepDataAsset> > timestampLisList = new List <IList <TimeStepDataAsset> >(); if (root.ChildNodes.Count == 0) { Log.ThrowValueNotFoundException("MetaDataReader", root.Name + "is empty"); } foreach (XmlNode varNode in root.ChildNodes) { if (varNode.Name == Globals.VARIABLE_ELEMENT) { // Read name from variable node string varNodeName = varNode.Attributes[Globals.VARIABLE_NAME_ATTRIBUTE].Value; double varNodeMin = Utils.ReadAttribute(varNode, Globals.VARIABLE_MIN_ATTRIBUTE); double varNodeMax = Utils.ReadAttribute(varNode, Globals.VARIABLE_MAX_ATTRIBUTE); Debug.Log("Min and Max are " + varNodeMin + " and " + varNodeMax); List <TimeStepDataAsset> varTimestampList = new List <TimeStepDataAsset>(); if (varNodeName != null) { variablesList.Add(new MetaDataManager.Variable() { Name = varNodeName, Min = varNodeMin, Max = varNodeMax }); // Create a new list for timestamps timestampLisList.Add(varTimestampList); } else { Log.ThrowValueNotFoundException("MetaDataReader", Globals.VARIABLE_NAME_ATTRIBUTE); } if (varNode.ChildNodes.Count == 0) { Log.ThrowValueNotFoundException("MetaDataReader", varNode.Name); } foreach (XmlNode timestampNode in varNode.ChildNodes) { if (timestampNode.Name == Globals.TIME_STAMP_LIST_ELEMENT) { TimeStepDataAsset newTimestamp = MetaDataReader.ReadTimeStamp(timestampNode); // fill last list with timestamps varTimestampList.Add(newTimestamp); } } } } outputMetaData.Timestamps = timestampLisList; outputMetaData.Variables = variablesList; return(outputMetaData); }