Ejemplo n.º 1
0
        private static void WriteFormat1Line(ITargetWriter output, string index, string label, IEnumerable <string> columns)
        {
            char sep = ';';

            output.Write(index);
            output.Write(sep);
            output.Write(label);
            foreach (var col in columns)
            {
                output.Write(sep);
                output.Write(col);
            }
            output.WriteLine();
        }
Ejemplo n.º 2
0
 private static void WriteFormat2Line(ITargetWriter output, string id1, string name1, string id2, string name2, string cts)
 {
     output.Write(id1);
     output.Write(';');
     output.Write(name1);
     output.Write(';');
     output.Write(id2);
     output.Write(';');
     output.Write(name2);
     output.Write(';');
     output.WriteLine(cts);
 }
Ejemplo n.º 3
0
 private static void WriteItemType(HashSet <ItemType> writtenTypes, ItemType itemType, ITargetWriter sw)
 {
     if (writtenTypes.Add(itemType))
     {
         sw.WriteLine();
         sw.Write("$ ");
         sw.WriteLine(itemType.ToString());
         sw.WriteLine();
     }
 }
Ejemplo n.º 4
0
        private void Write([NotNull, ItemNotNull] IEnumerable <Dependency> dependencies, ITargetWriter sw, List <ItemMatch> itemMatches, List <ItemMatch> itemExcludes,
                           List <DependencyMatch> indegreeMatches, List <DependencyMatch> indegreeExcludes,
                           List <DependencyMatch> outdegreeMatches, List <DependencyMatch> outdegreeExcludes,
                           bool writeOnlyIfIndegreeNotZero, bool writeOnlyIfOutdegreeNotZero, bool showMarkers, bool ignoreCase)
        {
            ISet <Item> items = Dependency.GetAllItems(dependencies, i => i.IsMatch(itemMatches, itemExcludes));

            Dictionary <Item, Dependency[]> incoming = Item.CollectIncomingDependenciesMap(dependencies,
                                                                                           i => items.Contains(i));
            Dictionary <Item, Dependency[]> outgoing = Item.CollectOutgoingDependenciesMap(dependencies,
                                                                                           i => items.Contains(i));

            List <Item> itemsAsList = items.ToList();

            itemsAsList.Sort(
                (i1, i2) =>
                string.Compare(i1.AsFullString(), i2.AsFullString(),
                               ignoreCase ? StringComparison.InvariantCultureIgnoreCase : StringComparison.InvariantCulture));

            var writtenTypes = new HashSet <ItemType>();
            int n            = 0;

            foreach (var i in itemsAsList)
            {
                ItemType itemType = i.Type;
                if (writtenTypes.Add(itemType))
                {
                    sw.Write("$ ");
                    sw.WriteLine(itemType.ToString());
                }

                int ict = GetCount(incoming, i, indegreeMatches, indegreeExcludes);
                int oct = GetCount(outgoing, i, outdegreeMatches, outdegreeExcludes);

                if (ict == 0 && writeOnlyIfIndegreeNotZero)
                {
                    // dont write
                }
                else if (oct == 0 && writeOnlyIfOutdegreeNotZero)
                {
                    // dont write
                }
                else
                {
                    n++;
                    sw.WriteLine($"{"--" + ict,7}->*--{oct + "->",-7} {(showMarkers ? i.AsFullString() : i.AsString())}");
                }
            }

            Log.WriteInfo($"... written {n} items");
        }