Example #1
0
        public MemoryIndexTest()
        {
            Snapshot snapshot = new Snapshot();

            snapshot.StartTransaction();
            ObjectValue object1 = snapshot.CreateObject(null);
            ObjectValue object2 = snapshot.CreateObject(null);

            snapshot.CommitTransaction();

            variableA         = VariableIndex.Create("a", 0);
            variableA2        = VariableIndex.Create("a", 0);
            variableB         = VariableIndex.Create("b", 0);
            undefinedVariable = VariableIndex.CreateUnknown(0);

            fieldA  = ObjectIndex.Create(object1, "a");
            fieldA2 = ObjectIndex.Create(object1, "a");
            fieldB  = ObjectIndex.Create(object1, "b");
            fieldInDifferentTree = ObjectIndex.Create(object2, "a");
            undefinedField       = ObjectIndex.CreateUnknown(object1);

            indexA  = variableA.CreateIndex("a");
            indexA2 = variableA.CreateIndex("a");
            indexB  = variableA.CreateIndex("b");
            indexInDifferentTree = variableB.CreateIndex("a");
            undefinedIndex       = variableA.CreateUnknownIndex();

            doubleIndex = indexA.CreateIndex("1");

            indexInField = fieldA.CreateIndex("1");
        }
Example #2
0
        public void Try_LoadDefaultEcoSpace()
        {
            ObjectIndex.Clear();
            var res = DomainSerializer <EcoSpaceDocument> .LoadFromJsonFile(@"c:\temp\ecospace\broobu.json");

            WriteEcoSpace(res, true);
        }
Example #3
0
        /// <summary>
        /// Tests the and create implicit object.
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="values">The values.</param>
        private void testAndCreateImplicitObject(MemoryCollectorNode node, HashSet <Value> values)
        {
            if (node.HasNewImplicitObject)
            {
                ObjectValue value = Snapshot.MemoryAssistant.CreateImplicitObject();
                values.Add(value);

                IObjectValueContainerBuilder objectValues = Structure.GetObjects(node.TargetIndex).Builder(Structure);
                objectValues.Add(value);
                Structure.SetObjects(node.TargetIndex, objectValues.Build(Structure));

                IObjectDescriptor        oldDescriptor = Structure.GetDescriptor(value);
                IObjectDescriptorBuilder builder       = oldDescriptor.Builder(Structure);

                foreach (var newChild in node.ImplicitObjectNode.UndefinedChildren)
                {
                    string childName = newChild.Item1;
                    MemoryCollectorNode childNode = newChild.Item2;

                    MemoryIndex index = ObjectIndex.Create(value, childName);
                    childNode.TargetIndex = index;

                    builder.AddIndex(childName, index);
                }

                IObjectDescriptor newDescriptor = builder.Build(Structure);
                Structure.SetDescriptor(value, newDescriptor);

                enqueueChildNodes(node.ImplicitObjectNode);
            }
        }
Example #4
0
        public void Try_SaveDefaultEcoSpace()
        {
            ObjectIndex.Clear();
            var res = EcoSpaceFactory.MasterEcoSpace;

            DomainSerializer <IEcoSpaceDocument> .SaveToJsonFile(@"c:\temp\ecospace\broobu.json", res);

            WriteEcoSpace(res, true);
        }
Example #5
0
            public void VisitObjectIndex(ObjectIndex index)
            {
                currentNode = rootNode.GetOrCreateObjectNode(collector, index.Object);

                processIndexName(index);
                processIndexPath(index);

                processAlias(index);
            }
Example #6
0
        public void Try_SaveDefaultEcoSpaceToBigD()
        {
            ObjectIndex.Clear();
            var res = EcoSpaceFactory.MasterEcoSpace;

            res = Provider <EcoSpaceDocument>
                  .Save(res);

            WriteEcoSpace(res);
        }
Example #7
0
        public bool Equals(Pickup other)
        {
            if (other == null)
            {
                return(false);
            }

            return(Type.Equals(other.Type) &&
                   HasBeenPickedUp.Equals(other.HasBeenPickedUp) &&
                   Value.Equals(other.Value) &&
                   ObjectIndex.Equals(other.ObjectIndex) &&
                   RegenerationTime.Equals(other.RegenerationTime) &&
                   ModelIndex.Equals(other.ModelIndex) &&
                   PoolIndex.Equals(other.PoolIndex) &&
                   Position.Equals(other.Position));
        }
Example #8
0
        public async Task TestLoadFromGit()
        {
            ObjectIndex index = new ObjectIndex();

            string[] urls = new string[]
            {
                "https://raw.githubusercontent.com/azure-ad-b2c/samples/master/policies/change-sign-in-name/policy/TrustFrameworkExtensions.xml",
                "https://raw.githubusercontent.com/azure-ad-b2c/samples/master/policies/change-sign-in-name/policy/TrustFrameworkBase.xml",
                "https://raw.githubusercontent.com/azure-ad-b2c/samples/master/policies/change-sign-in-name/policy/SignUpOrSignin.xml",
                "https://raw.githubusercontent.com/azure-ad-b2c/samples/master/policies/change-sign-in-name/policy/ChangeSignInName.xml"
            };
            var policies = await PolicyLoader.LoadFromUrls(index, urls);

            Assert.IsTrue(policies.Count > 0);
            Assert.IsNotNull(index.GetPolicyReference("B2C_1A_ChangeSignInName"));
            Assert.IsNotNull(index.GetPolicyReference("B2C_1A_ChangeSignInName").RelyingParty);
            Assert.IsNotNull(index.GetPolicyReference("B2C_1A_ChangeSignInName").RelyingParty.DefaultUserJourney);
        }
Example #9
0
        /// <inheritdoc />
        public void VisitObjectIndex(ObjectIndex index)
        {
            MemoryIndexTreeNode root = null;

            if (!objectTreeRoots.TryGetValue(index.Object, out root))
            {
                root = new MemoryIndexTreeNode();
                objectTreeRoots[index.Object] = root;
            }

            if (index.MemoryRoot.IsAny)
            {
                addToRoot(index, root.GetOrCreateAny());
            }
            else
            {
                addToRoot(index, root.GetOrCreateChild(index.MemoryRoot.Name));
            }
        }
Example #10
0
        /// <summary>
        /// Processes the object.
        /// </summary>
        /// <param name="objectValue">The object value.</param>
        /// <param name="node">The node.</param>
        private void processObject(ObjectValue objectValue, ContainerCollectorNode node)
        {
            if (node.HasUndefinedChildren)
            {
                IObjectDescriptor        oldDescriptor = Structure.GetDescriptor(objectValue);
                IObjectDescriptorBuilder builder       = oldDescriptor.Builder(Structure);
                foreach (var newChild in node.UndefinedChildren)
                {
                    string childName = newChild.Item1;
                    MemoryCollectorNode childNode = newChild.Item2;

                    MemoryIndex index = ObjectIndex.Create(objectValue, childName);
                    childNode.TargetIndex = index;

                    builder.AddIndex(childName, index);
                }

                IObjectDescriptor newDescriptor = builder.Build(Structure);
                Structure.SetDescriptor(objectValue, newDescriptor);
            }
            enqueueChildNodes(node);
        }
Example #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EcoSpaceDocument" /> class.
 /// </summary>
 public EcoSpaceDocument()
 {
     Icon = Resources.EcoSpace;
     ObjectIndex.Clear();
 }
Example #12
0
 private void Awake()
 {
     instance = this;
 }
Example #13
0
 /// <inheritdoc />
 public MemoryIndex createMemoryIndex(string name)
 {
     return(ObjectIndex.Create(objectDescriptor.ObjectValue, name));
 }
Example #14
0
        public int Count(string objectFullName, ObjectFindOptions options, ObjectIndex[] indexes)
        {
            int returnValue = 0;

            if (null != _cache)
            {
                var parameters = new object[3 + ((null == indexes) ? 0 : indexes.Length)];
                parameters[0] = objectFullName;
                parameters[1] = options;
                parameters[2] = "C";
                if (null != indexes)
                {
                    for (int i = 0; indexes.Length > i; i++)
                    {
                        parameters[i + 3] = indexes[i];
                    }
                }
                int[] cacheValue = _cache.Get(parameters);
                if (cacheValue != null && cacheValue.Length == 1)
                {
                    returnValue = cacheValue[0];
                }
                else
                {
                    returnValue = _indexer.Count(objectFullName, options, indexes);
                    _cache.Set(new int[] { returnValue }, parameters);
                }
            }
            else
            {
                returnValue = _indexer.Count(objectFullName, options, indexes);
            }
            return returnValue;
        }
Example #15
0
 public void IndexObject(string objectFullName, int objectId, ObjectIndex[] indexes)
 {
     _indexer.UpsertIndexValues(objectFullName, objectId, indexes);
 }
Example #16
0
        internal int[] Find(string objectFullName, ObjectFindOptions options, ObjectIndex[] indexes)
        {
            int[] returnValue = null;

            if (null != _cache)
            {
                var parameters = new object[3 + ((null == indexes) ? 0 : indexes.Length)];
                parameters[0] = objectFullName;
                parameters[1] = options;
                parameters[2] = "F";
                if (null != indexes)
                {
                    for (int i = 0; indexes.Length > i; i++)
                    {
                        parameters[i + 3] = indexes[i];
                    }
                }
                returnValue = _cache.Get(parameters);
                if (null == returnValue)
                {
                    var order = options.Order;
                    if (null != order && null != order.Indexes)
                    {
                        if (!_ValidateIndexNames(null, order.Indexes))
                        {
                            throw new ArgumentException("Invalid index name supplied in OrderOptions.");
                        }
                    }

                    returnValue = _indexer.Find(objectFullName, options, indexes);
                    _cache.Set(returnValue, parameters);
                }
            }
            else
            {
                returnValue = _indexer.Find(objectFullName, options, indexes);
            }
            return returnValue;
        }
Example #17
0
        /// <summary>
        /// Creates the merge operation for all fields of specified object.
        /// </summary>
        /// <param name="objectValue">The object value.</param>
        private void mergeObject(ObjectValue objectValue)
        {
            IObjectDescriptorBuilder builder =
                Factories.StructuralContainersFactories.ObjectDescriptorFactory.CreateObjectDescriptor(writeableStrucure, objectValue, null, ObjectIndex.CreateUnknown(objectValue))
                .Builder(writeableStrucure);

            ContainerOperations collectVariables = new ContainerOperations(this, builder, builder.UnknownIndex, builder.UnknownIndex);

            foreach (Snapshot snapshot in sourceSnapshots)
            {
                IObjectDescriptor descriptor;
                if (snapshot.Structure.Readonly.TryGetDescriptor(objectValue, out descriptor))
                {
                    collectVariables.CollectIndexes(snapshot, builder.UnknownIndex, descriptor);
                    builder.SetType(descriptor.Type);
                }
                else
                {
                    collectVariables.SetUndefined();
                }
            }

            collectVariables.MergeContainers();
            writeableStrucure.SetDescriptor(objectValue, builder.Build(writeableStrucure));
        }