Exemplo n.º 1
0
 public void InstantiateWithDependencies(LuiObjectParameters p)
 {
     if (GetObject(p) == null)
     {
         var ordered = p.Dependencies.TopologicalSort(q => q.Dependencies);
         foreach (var q in ordered)
         {
             InstantiateWithDependencies(q);
         }
         SetObject(p, LuiObject.Create(p, p.Dependencies.Select(d => GetObject(d))));
     }
 }
Exemplo n.º 2
0
        public void InstantiateConfiguration()
        {
            if (DryRun)
            {
                return;
            }
            // The topological sort ensures dependencies are resolved in a legal order.
            // Cyclic dependencies will result in exceptions.
            var dependencyOrderedParameters = LuiObjectParameters.TopologicalSort(p => p.Dependencies);

            foreach (var p in dependencyOrderedParameters)
            {
                if (GetObject(p) == null)
                {
                    var dependencies = p.Dependencies.Select(d => GetObject(d));
                    SetObject(p, LuiObject.Create(p, dependencies));
                }
            }
        }