Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/14/08 21:51:15 (16 years ago)
Author:
gkronber
Message:

created a branch that uses XmlTextReader instead of XMLDocument to load documents. Investigating ticket #103. (...work in progress!)

Location:
branches/XmlTextReaderBranch
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/XmlTextReaderBranch/HeuristicLab.Core/Scope.cs

    r63 r121  
    290290      return node;
    291291    }
    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);
    299321        AddVariable(variable);
    300322      }
    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);
    311334        AddSubScope(scope);
    312335      }
     336      reader.ReadEndElement();
    313337    }
    314338    #endregion
Note: See TracChangeset for help on using the changeset viewer.