Ejemplo n.º 1
0
 private void InitializePredicateStorage()
 {
     for (int i = 0; i < template.Members.Length; i++)
     {
         predicateTables[i] = new TypeAwareHashtable();
     }
 }
Ejemplo n.º 2
0
        public object Clone()
        {
            TypeAwareHashtable[] newPredicateTables = new TypeAwareHashtable[predicateTables.Length];
            for (int i = 0; i < predicateTables.Length; i++)
            {
                newPredicateTables[i] = predicateTables[i].DeepClone();
            }

            return(new HashtableMatchedFactStorage(template, (Hashtable)factTable.Clone(), newPredicateTables));
        }
Ejemplo n.º 3
0
            public TypeAwareHashtable DeepClone()
            {
                TypeAwareHashtable clone = new TypeAwareHashtable();

                foreach (Hashtable storageTable in typesTable.Values)
                {
                    foreach (object key in storageTable.Keys)
                    {
                        clone.InternalAdd(key, ((ICloneable)storageTable[key]).Clone());
                    }
                }

                return(clone);
            }
Ejemplo n.º 4
0
        public object Clone()
        {
            TypeAwareHashtable[] newPredicateTables = new TypeAwareHashtable[predicateTables.Length];
            for(int i=0; i<predicateTables.Length; i++) newPredicateTables[i] = predicateTables[i].DeepClone();

            return new HashtableMatchedFactStorage(template, (Hashtable)factTable.Clone(), newPredicateTables);
        }
Ejemplo n.º 5
0
 private HashtableMatchedFactStorage(Atom template, Hashtable factTable, TypeAwareHashtable[] predicateTables)
 {
     this.template = template;
     this.factTable = factTable;
     this.predicateTables = predicateTables;
 }
Ejemplo n.º 6
0
            public TypeAwareHashtable DeepClone()
            {
                TypeAwareHashtable clone = new TypeAwareHashtable();

                foreach(Hashtable storageTable in typesTable.Values) {
                    foreach(object key in storageTable.Keys) {
                        clone.InternalAdd(key, ((ICloneable)storageTable[key]).Clone());
                    }
                }

                return clone;
            }
Ejemplo n.º 7
0
 private void InitializePredicateStorage()
 {
     for (int i=0; i<template.Members.Length; i++) predicateTables[i] = new TypeAwareHashtable();
 }