Changeset 121 for branches/XmlTextReaderBranch/HeuristicLab.Core
- Timestamp:
- 04/14/08 21:51:15 (16 years ago)
- Location:
- branches/XmlTextReaderBranch
- Files:
-
- 14 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/XmlTextReaderBranch/HeuristicLab.Core/AtomicOperation.cs
r2 r121 57 57 return node; 58 58 } 59 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 60 base.Populate(node, restoredObjects); 61 myOperator = (IOperator)PersistenceManager.Restore(node.SelectSingleNode("Operator"), restoredObjects); 62 myScope = (IScope)PersistenceManager.Restore(node.SelectSingleNode("Scope"), restoredObjects); 59 //public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 60 // base.Populate(node, restoredObjects); 61 // myOperator = (IOperator)PersistenceManager.Restore(node.SelectSingleNode("Operator"), restoredObjects); 62 // myScope = (IScope)PersistenceManager.Restore(node.SelectSingleNode("Scope"), restoredObjects); 63 //} 64 public override void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 65 base.Populate(reader, restoredObjects); 66 myOperator = (IOperator)PersistenceManager.Restore(reader, "Operator", restoredObjects); 67 myScope = (IScope)PersistenceManager.Restore(reader, "Scope", restoredObjects); 63 68 } 64 69 #endregion -
branches/XmlTextReaderBranch/HeuristicLab.Core/CompositeOperation.cs
r2 r121 71 71 return node; 72 72 } 73 public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {74 base.Populate(node, restoredObjects);73 //public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 74 // base.Populate(node, restoredObjects); 75 75 76 myExecuteInParallel = bool.Parse(node.Attributes["ExecuteInParallel"].Value);76 // myExecuteInParallel = bool.Parse(node.Attributes["ExecuteInParallel"].Value); 77 77 78 XmlNode operationsNode = node.SelectSingleNode("Operations"); 79 for (int i = 0; i < operationsNode.ChildNodes.Count; i++) 80 AddOperation((IOperation)PersistenceManager.Restore(operationsNode.ChildNodes[i], restoredObjects)); 78 // XmlNode operationsNode = node.SelectSingleNode("Operations"); 79 // for (int i = 0; i < operationsNode.ChildNodes.Count; i++) 80 // AddOperation((IOperation)PersistenceManager.Restore(operationsNode.ChildNodes[i], restoredObjects)); 81 //} 82 public override void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 83 base.Populate(reader, restoredObjects); 84 85 myExecuteInParallel = bool.Parse(reader["ExecuteInParallel"]); 86 87 reader.ReadStartElement("Operations"); 88 while(reader.IsStartElement()) 89 AddOperation((IOperation)PersistenceManager.Restore(reader, restoredObjects)); 90 reader.ReadEndElement(); 81 91 } 82 92 #endregion -
branches/XmlTextReaderBranch/HeuristicLab.Core/ConstrainedItemBase.cs
r2 r121 97 97 return node; 98 98 } 99 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 100 base.Populate(node, restoredObjects); 101 XmlNode constraintsNode = node.SelectSingleNode("Constraints"); 102 if (constraintsNode != null) { 99 //public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 100 // base.Populate(node, restoredObjects); 101 // XmlNode constraintsNode = node.SelectSingleNode("Constraints"); 102 // if(constraintsNode != null) { 103 // myConstraints.Clear(); 104 // foreach(XmlNode constraintNode in constraintsNode.ChildNodes) 105 // AddConstraint((IConstraint)PersistenceManager.Restore(constraintNode, restoredObjects)); 106 // } 107 //} 108 public override void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 109 base.Populate(reader, restoredObjects); 110 if(reader.IsStartElement()) { 111 reader.ReadToDescendant("Constraints"); 103 112 myConstraints.Clear(); 104 foreach (XmlNode constraintNode in constraintsNode.ChildNodes) 105 AddConstraint((IConstraint)PersistenceManager.Restore(constraintNode, restoredObjects)); 113 while(reader.IsStartElement()) 114 AddConstraint((IConstraint)PersistenceManager.Restore(reader, restoredObjects)); 115 reader.ReadEndElement(); 106 116 } 107 117 } -
branches/XmlTextReaderBranch/HeuristicLab.Core/EngineBase.cs
r47 r121 190 190 return node; 191 191 } 192 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 193 base.Populate(node, restoredObjects); 194 myOperatorGraph = (IOperatorGraph)PersistenceManager.Restore(node.SelectSingleNode("OperatorGraph"), restoredObjects); 195 myGlobalScope = (IScope)PersistenceManager.Restore(node.SelectSingleNode("GlobalScope"), restoredObjects); 196 197 XmlNode stackNode = node.SelectSingleNode("ExecutionStack"); 198 for (int i = stackNode.ChildNodes.Count - 1; i >= 0; i--) 199 myExecutionStack.Push((IOperation)PersistenceManager.Restore(stackNode.ChildNodes[i], restoredObjects)); 200 201 XmlNode timeNode = node.SelectSingleNode("ExecutionTime"); 202 myExecutionTime = TimeSpan.Parse(timeNode.InnerText); 192 public override void Populate(XmlReader reader, IDictionary<Guid,IStorable> restoredObjects) { 193 base.Populate(reader, restoredObjects); 194 myOperatorGraph = (IOperatorGraph)PersistenceManager.Restore(reader, "OperatorGraph", restoredObjects); 195 myGlobalScope = (IScope)PersistenceManager.Restore(reader, "GlobalScope", restoredObjects); 196 197 reader.ReadStartElement("ExecutionStack"); 198 List<IOperation> operationList = new List<IOperation>(); 199 while(reader.IsStartElement()) { 200 operationList.Insert(0, (IOperation)PersistenceManager.Restore(reader, restoredObjects)); 201 } 202 foreach(IOperation op in operationList) 203 myExecutionStack.Push(op); 204 reader.ReadEndElement(); 205 206 reader.ReadStartElement("ExecutionTime"); 207 myExecutionTime = TimeSpan.Parse(reader.ReadString()); 208 reader.ReadEndElement(); 203 209 } 204 210 #endregion -
branches/XmlTextReaderBranch/HeuristicLab.Core/Interfaces/IStorable.cs
r2 r121 33 33 34 34 XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects); 35 void Populate(Xml Node node, IDictionary<Guid, IStorable> restoredObjects);35 void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects); 36 36 } 37 37 } -
branches/XmlTextReaderBranch/HeuristicLab.Core/OperatorBase.cs
r76 r121 461 461 return node; 462 462 } 463 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 464 base.Populate(node, restoredObjects); 465 myName = node.Attributes["Name"].Value; 466 if (node.Attributes["Breakpoint"] != null) 467 myBreakpoint = bool.Parse(node.Attributes["Breakpoint"].Value); 468 XmlNode subOperatorsNode = node.SelectSingleNode("SubOperators"); 469 for (int i = 0; i < subOperatorsNode.ChildNodes.Count; i++) 470 AddSubOperator((IOperator)PersistenceManager.Restore(subOperatorsNode.ChildNodes[i], restoredObjects)); 471 XmlNode infosNode = node.SelectSingleNode("VariableInfos"); 463 //public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 464 // base.Populate(node, restoredObjects); 465 // myName = node.Attributes["Name"].Value; 466 // if(node.Attributes["Breakpoint"] != null) 467 // myBreakpoint = bool.Parse(node.Attributes["Breakpoint"].Value); 468 // XmlNode subOperatorsNode = node.SelectSingleNode("SubOperators"); 469 // for(int i = 0; i < subOperatorsNode.ChildNodes.Count; i++) 470 // AddSubOperator((IOperator)PersistenceManager.Restore(subOperatorsNode.ChildNodes[i], restoredObjects)); 471 // XmlNode infosNode = node.SelectSingleNode("VariableInfos"); 472 // myVariableInfos.Clear(); 473 // foreach(XmlNode infoNode in infosNode.ChildNodes) 474 // AddVariableInfo((IVariableInfo)PersistenceManager.Restore(infoNode, restoredObjects)); 475 // XmlNode variablesNode = node.SelectSingleNode("Variables"); 476 // myVariables.Clear(); 477 // foreach(XmlNode variableNode in variablesNode.ChildNodes) 478 // AddVariable((IVariable)PersistenceManager.Restore(variableNode, restoredObjects)); 479 //} 480 public override void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 481 base.Populate(reader, restoredObjects); 482 myName = reader["Name"]; 483 if(reader["Breakpoint"] != null) 484 myBreakpoint = bool.Parse(reader["Breakpoint"]); 485 reader.ReadStartElement("SubOperators"); 486 while(reader.IsStartElement()) 487 AddSubOperator((IOperator)PersistenceManager.Restore(reader, restoredObjects)); 488 reader.ReadEndElement(); 489 reader.ReadStartElement("VariableInfos"); 472 490 myVariableInfos.Clear(); 473 foreach (XmlNode infoNode in infosNode.ChildNodes) 474 AddVariableInfo((IVariableInfo)PersistenceManager.Restore(infoNode, restoredObjects)); 475 XmlNode variablesNode = node.SelectSingleNode("Variables"); 491 while(reader.IsStartElement()) 492 AddVariableInfo((IVariableInfo)PersistenceManager.Restore(reader, restoredObjects)); 493 reader.ReadEndElement(); 494 reader.ReadStartElement("Variables"); 476 495 myVariables.Clear(); 477 foreach (XmlNode variableNode in variablesNode.ChildNodes) 478 AddVariable((IVariable)PersistenceManager.Restore(variableNode, restoredObjects)); 496 while(reader.IsStartElement()) 497 AddVariable((IVariable)PersistenceManager.Restore(reader, restoredObjects)); 498 reader.ReadEndElement(); 479 499 } 480 500 #endregion -
branches/XmlTextReaderBranch/HeuristicLab.Core/OperatorGraph.cs
r47 r121 35 35 get { return myInitialOperator; } 36 36 set { 37 if 37 if(myInitialOperator != value) { 38 38 myInitialOperator = value; 39 39 OnInitialOperatorChanged(); … … 53 53 OperatorGraph clone = new OperatorGraph(); 54 54 clonedObjects.Add(Guid, clone); 55 foreach 55 foreach(IOperator op in Operators) 56 56 clone.AddOperator((IOperator)Auxiliary.Clone(op, clonedObjects)); 57 if 57 if(InitialOperator != null) 58 58 clone.myInitialOperator = (IOperator)Auxiliary.Clone(InitialOperator, clonedObjects); 59 59 return clone; … … 61 61 62 62 public void AddOperator(IOperator op) { 63 if 63 if(!myOperators.ContainsKey(op.Guid)) { 64 64 myOperators.Add(op.Guid, op); 65 65 OnOperatorAdded(op); 66 66 67 foreach 67 foreach(IOperator subOperator in op.SubOperators) 68 68 AddOperator(subOperator); 69 69 } … … 71 71 public void RemoveOperator(Guid guid) { 72 72 IOperator op = GetOperator(guid); 73 if 74 foreach 73 if(op != null) { 74 foreach(IOperator o in Operators) { 75 75 int i = 0; 76 while 77 if 76 while(i < o.SubOperators.Count) { 77 if(o.SubOperators[i] == op) 78 78 o.RemoveSubOperator(i); 79 79 else … … 81 81 } 82 82 } 83 if 83 if(InitialOperator == op) 84 84 InitialOperator = null; 85 85 myOperators.Remove(op.Guid); … … 89 89 public IOperator GetOperator(Guid guid) { 90 90 IOperator op; 91 if 91 if(myOperators.TryGetValue(guid, out op)) 92 92 return op; 93 93 else … … 97 97 Guid[] guids = new Guid[Operators.Count]; 98 98 int i = 0; 99 foreach 99 foreach(IOperator op in Operators) { 100 100 guids[i] = op.Guid; 101 101 i++; 102 102 } 103 for 103 for(int j = 0; j < guids.Length; j++) 104 104 RemoveOperator(guids[j]); 105 105 } … … 107 107 public event EventHandler<OperatorEventArgs> OperatorAdded; 108 108 protected virtual void OnOperatorAdded(IOperator op) { 109 if 109 if(OperatorAdded != null) 110 110 OperatorAdded(this, new OperatorEventArgs(op)); 111 111 } 112 112 public event EventHandler<OperatorEventArgs> OperatorRemoved; 113 113 protected virtual void OnOperatorRemoved(IOperator op) { 114 if 114 if(OperatorRemoved != null) 115 115 OperatorRemoved(this, new OperatorEventArgs(op)); 116 116 } 117 117 public event EventHandler InitialOperatorChanged; 118 118 protected virtual void OnInitialOperatorChanged() { 119 if 119 if(InitialOperatorChanged != null) 120 120 InitialOperatorChanged(this, new EventArgs()); 121 121 } 122 122 123 123 #region Persistence Methods 124 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {124 public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) { 125 125 XmlNode node = base.GetXmlNode(name, document, persistedObjects); 126 126 XmlNode ops = document.CreateNode(XmlNodeType.Element, "Operators", null); 127 foreach 127 foreach(IOperator op in myOperators.Values) 128 128 ops.AppendChild(PersistenceManager.Persist(op, document, persistedObjects)); 129 129 node.AppendChild(ops); 130 if 130 if(InitialOperator != null) 131 131 node.AppendChild(PersistenceManager.Persist("InitialOperator", InitialOperator, document, persistedObjects)); 132 132 return node; 133 133 } 134 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) {135 base.Populate(node, restoredObjects);134 //public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 135 // base.Populate(node, restoredObjects); 136 136 137 XmlNode ops = node.SelectSingleNode("Operators"); 138 for (int i = 0; i < ops.ChildNodes.Count; i++) { 139 XmlNode opNode = ops.ChildNodes[i]; 140 IOperator op = (IOperator)PersistenceManager.Restore(opNode, restoredObjects); 137 // XmlNode ops = node.SelectSingleNode("Operators"); 138 // for(int i = 0; i < ops.ChildNodes.Count; i++) { 139 // XmlNode opNode = ops.ChildNodes[i]; 140 // IOperator op = (IOperator)PersistenceManager.Restore(opNode, restoredObjects); 141 // myOperators.Add(op.Guid, op); 142 // } 143 144 // XmlNode initial = node.SelectSingleNode("InitialOperator"); 145 // if(initial != null) 146 // myInitialOperator = (IOperator)PersistenceManager.Restore(initial, restoredObjects); 147 //} 148 public override void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 149 base.Populate(reader, restoredObjects); 150 151 reader.ReadToDescendant("Operators"); 152 while(reader.IsStartElement()) { 153 IOperator op = (IOperator)PersistenceManager.Restore(reader, restoredObjects); 141 154 myOperators.Add(op.Guid, op); 142 155 } 143 144 XmlNode initial = node.SelectSingleNode("InitialOperator");145 if (initial != null)146 myInitialOperator = (IOperator)PersistenceManager.Restore(initial, restoredObjects);156 reader.ReadEndElement(); 157 if(reader.IsStartElement()) { 158 myInitialOperator = (IOperator)PersistenceManager.Restore(reader, "InitialOperator", restoredObjects); 159 } 147 160 } 148 161 #endregion -
branches/XmlTextReaderBranch/HeuristicLab.Core/OperatorGroup.cs
r2 r121 98 98 return node; 99 99 } 100 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 101 base.Populate(node, restoredObjects); 102 myName = node.Attributes["Name"].Value; 103 XmlNode subGroupsNode = node.SelectSingleNode("SubGroups"); 104 foreach (XmlNode subGroupNode in subGroupsNode.ChildNodes) 105 AddSubGroup((IOperatorGroup)PersistenceManager.Restore(subGroupNode, restoredObjects)); 106 XmlNode operatorsNode = node.SelectSingleNode("Operators"); 107 foreach (XmlNode operatorNode in operatorsNode.ChildNodes) 108 AddOperator((IOperator)PersistenceManager.Restore(operatorNode, restoredObjects)); 100 //public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 101 // base.Populate(node, restoredObjects); 102 // myName = node.Attributes["Name"].Value; 103 // XmlNode subGroupsNode = node.SelectSingleNode("SubGroups"); 104 // foreach(XmlNode subGroupNode in subGroupsNode.ChildNodes) 105 // AddSubGroup((IOperatorGroup)PersistenceManager.Restore(subGroupNode, restoredObjects)); 106 // XmlNode operatorsNode = node.SelectSingleNode("Operators"); 107 // foreach(XmlNode operatorNode in operatorsNode.ChildNodes) 108 // AddOperator((IOperator)PersistenceManager.Restore(operatorNode, restoredObjects)); 109 //} 110 public override void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 111 base.Populate(reader, restoredObjects); 112 myName = reader["Name"]; 113 reader.ReadStartElement("SubGroups"); 114 while(reader.IsStartElement()) 115 AddSubGroup((IOperatorGroup)PersistenceManager.Restore(reader, restoredObjects)); 116 reader.ReadEndElement(); 117 reader.ReadStartElement("Operators"); 118 while(reader.IsStartElement()) 119 AddOperator((IOperator)PersistenceManager.Restore(reader, restoredObjects)); 120 reader.ReadEndElement(); 109 121 } 110 122 #endregion -
branches/XmlTextReaderBranch/HeuristicLab.Core/OperatorLibrary.cs
r2 r121 56 56 return node; 57 57 } 58 public override void Populate(Xml Node node, IDictionary<Guid,IStorable> restoredObjects) {59 base.Populate( node, restoredObjects);60 myGroup = (IOperatorGroup)PersistenceManager.Restore( node.SelectSingleNode("OperatorGroup"), restoredObjects);58 public override void Populate(XmlReader reader, IDictionary<Guid,IStorable> restoredObjects) { 59 base.Populate(reader, restoredObjects); 60 myGroup = (IOperatorGroup)PersistenceManager.Restore(reader, "OperatorGroup", restoredObjects); 61 61 } 62 62 #endregion -
branches/XmlTextReaderBranch/HeuristicLab.Core/PersistenceManager.cs
r40 r121 49 49 } 50 50 } 51 public static IStorable Restore(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 52 Guid guid = new Guid(node.Attributes["GUID"].Value); 53 if (restoredObjects.ContainsKey(guid)) { 51 52 public static IStorable Restore(XmlReader reader, string elementName, IDictionary<Guid, IStorable> restoredObjects) { 53 reader.ReadToDescendant(elementName); 54 return RestoreElement(reader, restoredObjects); 55 } 56 57 public static IStorable Restore(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 58 reader.Read(); 59 return RestoreElement(reader, restoredObjects); 60 } 61 private static IStorable RestoreElement(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 62 Guid guid = new Guid(reader["GUID"]); 63 if(restoredObjects.ContainsKey(guid)) { 64 reader.ReadEndElement(); 54 65 return restoredObjects[guid]; 55 66 } else { 56 Type type = Type.GetType( node.Attributes["Type"].Value, true);67 Type type = Type.GetType(reader["Type"], true); 57 68 IStorable instance = (IStorable)Activator.CreateInstance(type); 58 69 restoredObjects.Add(guid, instance); 59 instance.Populate(node, restoredObjects); 70 instance.Populate(reader, restoredObjects); 71 reader.ReadEndElement(); 60 72 return instance; 61 73 } … … 79 91 public static IStorable Load(Stream stream) { 80 92 XmlDocument doc = new XmlDocument(); 81 doc.Load(stream); 82 return PersistenceManager.Restore(doc.ChildNodes[1], new Dictionary<Guid, IStorable>()); 93 XmlTextReader reader = new XmlTextReader(stream); 94 reader.WhitespaceHandling = WhitespaceHandling.None; 95 reader.MoveToContent(); // read "<?xml version="1.0"?/> 96 return PersistenceManager.RestoreElement(reader, new Dictionary<Guid, IStorable>()); 83 97 } 84 98 -
branches/XmlTextReaderBranch/HeuristicLab.Core/Scope.cs
r63 r121 290 290 return node; 291 291 } 292 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 293 base.Populate(node, restoredObjects); 294 myName = node.Attributes["Name"].Value; 295 296 XmlNode variables = node.SelectSingleNode("Variables"); 297 foreach (XmlNode variableNode in variables.ChildNodes) { 298 IVariable variable = (IVariable)PersistenceManager.Restore(variableNode, restoredObjects); 292 //public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 293 // base.Populate(node, restoredObjects); 294 // myName = node.Attributes["Name"].Value; 295 296 // XmlNode variables = node.SelectSingleNode("Variables"); 297 // foreach(XmlNode variableNode in variables.ChildNodes) { 298 // IVariable variable = (IVariable)PersistenceManager.Restore(variableNode, restoredObjects); 299 // AddVariable(variable); 300 // } 301 302 // XmlNode aliases = node.SelectSingleNode("Aliases"); 303 // if(aliases != null) { 304 // foreach(XmlNode aliasNode in aliases.ChildNodes) 305 // AddAlias(aliasNode.Attributes["Alias"].Value, aliasNode.Attributes["Name"].Value); 306 // } 307 308 // XmlNode subScopes = node.SelectSingleNode("SubScopes"); 309 // for(int i = 0; i < subScopes.ChildNodes.Count; i++) { 310 // IScope scope = (IScope)PersistenceManager.Restore(subScopes.ChildNodes[i], restoredObjects); 311 // AddSubScope(scope); 312 // } 313 //} 314 public override void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 315 base.Populate(reader, restoredObjects); 316 myName = reader["Name"]; 317 318 reader.ReadStartElement("Variables"); 319 while(reader.IsStartElement()) { 320 IVariable variable = (IVariable)PersistenceManager.Restore(reader, restoredObjects); 299 321 AddVariable(variable); 300 322 } 301 302 XmlNode aliases = node.SelectSingleNode("Aliases"); 303 if (aliases != null) { 304 foreach (XmlNode aliasNode in aliases.ChildNodes) 305 AddAlias(aliasNode.Attributes["Alias"].Value, aliasNode.Attributes["Name"].Value); 306 } 307 308 XmlNode subScopes = node.SelectSingleNode("SubScopes"); 309 for (int i = 0; i < subScopes.ChildNodes.Count; i++) { 310 IScope scope = (IScope)PersistenceManager.Restore(subScopes.ChildNodes[i], restoredObjects); 323 reader.ReadEndElement(); 324 325 if(reader.IsStartElement() && reader.Name=="Aliases") { 326 reader.ReadStartElement("Aliases"); 327 while(reader.IsStartElement()) 328 AddAlias(reader["Alias"], reader["Name"]); 329 reader.ReadEndElement(); 330 } 331 reader.ReadStartElement("SubScopes"); 332 while(reader.IsStartElement()) { 333 IScope scope = (IScope)PersistenceManager.Restore(reader, restoredObjects); 311 334 AddSubScope(scope); 312 335 } 336 reader.ReadEndElement(); 313 337 } 314 338 #endregion -
branches/XmlTextReaderBranch/HeuristicLab.Core/StorableBase.cs
r40 r121 55 55 return node; 56 56 } 57 public virtual void Populate(Xml Node node, IDictionary<Guid,IStorable> restoredObjects) {58 myGuid = new Guid( node.Attributes["GUID"].Value);57 public virtual void Populate(XmlReader reader, IDictionary<Guid,IStorable> restoredObjects) { 58 myGuid = new Guid(reader["GUID"]); 59 59 } 60 60 } -
branches/XmlTextReaderBranch/HeuristicLab.Core/Variable.cs
r2 r121 109 109 return node; 110 110 } 111 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 112 myName = node.Attributes["Name"].Value; 113 XmlNode valueNode = node.SelectSingleNode("Value"); 114 if (valueNode != null) 115 myValue = (IItem)PersistenceManager.Restore(valueNode, restoredObjects); 111 //public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 112 // myName = node.Attributes["Name"].Value; 113 // XmlNode valueNode = node.SelectSingleNode("Value"); 114 // if(valueNode != null) 115 // myValue = (IItem)PersistenceManager.Restore(valueNode, restoredObjects); 116 //} 117 public override void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 118 myName = reader["Name"]; 119 if(reader.IsStartElement()) 120 myValue = (IItem)PersistenceManager.Restore(reader, "Value", restoredObjects); 116 121 } 117 122 #endregion -
branches/XmlTextReaderBranch/HeuristicLab.Core/VariableInfo.cs
r40 r121 137 137 return node; 138 138 } 139 public override void Populate(XmlNode node, IDictionary<Guid,IStorable> restoredObjects) { 140 myActualName = node.Attributes["ActualName"].Value; 141 myFormalName = node.Attributes["FormalName"].Value; 142 myDescription = node.Attributes["Description"].Value; 143 myDataType = Type.GetType(node.Attributes["DataType"].Value, true); 144 myKind = (VariableKind)Enum.Parse(typeof(VariableKind), node.Attributes["Kind"].Value); 145 myLocal = bool.Parse(node.Attributes["Local"].Value); 139 //public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) { 140 // myActualName = node.Attributes["ActualName"].Value; 141 // myFormalName = node.Attributes["FormalName"].Value; 142 // myDescription = node.Attributes["Description"].Value; 143 // myDataType = Type.GetType(node.Attributes["DataType"].Value, true); 144 // myKind = (VariableKind)Enum.Parse(typeof(VariableKind), node.Attributes["Kind"].Value); 145 // myLocal = bool.Parse(node.Attributes["Local"].Value); 146 //} 147 public override void Populate(XmlReader reader, IDictionary<Guid, IStorable> restoredObjects) { 148 myActualName = reader["ActualName"]; 149 myFormalName = reader["FormalName"]; 150 myDescription = reader["Description"]; 151 myDataType = Type.GetType(reader["DataType"], true); 152 myKind = (VariableKind)Enum.Parse(typeof(VariableKind), reader["Kind"]); 153 myLocal = bool.Parse(reader["Local"]); 146 154 } 147 155 #endregion
Note: See TracChangeset
for help on using the changeset viewer.