- Timestamp:
- 08/01/08 16:50:58 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.CEDMA.Core/DatabaseOperatorLibrary.cs
r417 r418 5 5 using HeuristicLab.Core; 6 6 using HeuristicLab.CEDMA.DB.Interfaces; 7 using HeuristicLab.Operators; 7 8 8 9 namespace HeuristicLab.CEDMA.Core { … … 29 30 30 31 public void Save() { 31 Dictionary<IOperator, long> newKnownOperators = new Dictionary<IOperator, long>();32 Dictionary<IOperator, long> newKnownOperators = new Dictionary<IOperator, long>(); 32 33 foreach(IOperator op in group.Operators) { 33 34 if(knownOperators.ContainsKey(op)) { 34 35 // update 35 long id = knownOperators[op];36 long id = knownOperators[op]; 36 37 Database.UpdateOperator(id, op.Name, PersistenceManager.SaveToGZip(op)); 37 38 knownOperators.Remove(op); … … 47 48 Database.DeleteOperator(id); 48 49 } 49 50 50 51 knownOperators = newKnownOperators; 51 52 } … … 62 63 group.AddOperator(op); 63 64 } 65 66 // patch all OperatorLinks 67 foreach(IOperator op in group.Operators) { 68 PatchLinks(op); 69 } 70 } 71 72 private void PatchLinks(IOperator op) { 73 if(op is OperatorLink) { 74 OperatorLink link = op as OperatorLink; 75 link.Operator = FindOperator(link.Id); 76 } 77 else if(op is CombinedOperator) { 78 CombinedOperator combinedOp = op as CombinedOperator; 79 foreach(IOperator internalOp in combinedOp.OperatorGraph.Operators) { 80 PatchLinks(internalOp); 81 } 82 } 83 } 84 85 private IOperator FindOperator(long id) { 86 foreach(KeyValuePair<IOperator, long> p in knownOperators) if(p.Value == id) return p.Key; 87 return null; 64 88 } 65 89 … … 80 104 return new DatabaseOperatorLibraryView(this); 81 105 } 106 107 internal long GetId(IOperator op) { 108 return knownOperators[op]; 109 } 82 110 } 83 111 }
Note: See TracChangeset
for help on using the changeset viewer.