private AssemblyGroup()

in scripts/configuration/AssemblyGroup.cake [28:68]


    private AssemblyGroup(XmlNode groupNode, AssemblyGroup parent = null)
    {
        AssemblyPaths = new List<string>();
        Subgroups = new List<AssemblyGroup>();
        Id = groupNode.Attributes.GetNamedItem("id").Value;
        var buildGroup = groupNode.Attributes.GetNamedItem("buildGroup")?.Value;
        var platformString = Statics.Context.IsRunningOnUnix() ? "mac" : "windows";
        if (buildGroup != null)
        {
            Download = (buildGroup != platformString);
        }
        else if (parent != null)
        {
            Download = parent.Download;
        }
        var parentFolder = parent?.Folder ?? string.Empty;
        Folder = groupNode.Attributes.GetNamedItem("folder")?.Value ?? string.Empty;
        Folder = System.IO.Path.Combine(parentFolder, Folder);
        if (!Folder.StartsWith(Statics.TemporaryPrefix))
        {
            Folder = Statics.TemporaryPrefix + Folder;
        }
        for (int i = 0; i < groupNode.ChildNodes.Count; ++i)
        {
            var childNode = groupNode.ChildNodes.Item(i);
            if (childNode.Name == "assembly")
            {
                var assemblyName = childNode.Attributes.GetNamedItem("path").Value;
                AssemblyPaths.Add(assemblyName);
                if (System.IO.Path.GetExtension(assemblyName) == ".dll")
                {
                    var docName = System.IO.Path.ChangeExtension(assemblyName, "xml");
                    AssemblyPaths.Add(docName);
                }
            }
            else if (childNode.Name == "group")
            {
                Subgroups.Add(new AssemblyGroup(childNode, this));
            }
        }
    }