private ObjectInfo DirectoryArtifactInfo(DirectoryArtifact d) { if (!d.IsValid) { return(new ObjectInfo("Invalid")); } var name = d.Path.GetName(PathTable).ToString(StringTable); var kind = d.IsSharedOpaque ? "shared opaque" : d.IsOutputDirectory() ? "exclusive opaque" : "source"; var members = d.IsOutputDirectory() ? Analyzer.GetDirMembers(d, PipGraph.GetProducer(d)) : d.PartialSealId > 0 ? PipGraph.ListSealedDirectoryContents(d).Select(f => f.Path) : CollectionUtilities.EmptyArray <AbsolutePath>(); return(new ObjectInfo( preview: $"{name} [{kind}]", properties: new[] { new Property("Path", d.Path.ToString(PathTable)), new Property("PartialSealId", d.PartialSealId), new Property("Kind", kind), d.IsOutputDirectory() ? new Property("Producer", () => Analyzer.GetPip(PipGraph.GetProducer(d))) : null, new Property("Consumers", PipGraph.GetConsumingPips(d)), new Property("Members", members) } .Where(p => p != null))); }
private ObjectInfo DirectoryArtifactInfo(DirectoryArtifact d) { if (!d.IsValid) { return(new ObjectInfo("Invalid")); } var name = d.Path.GetName(PathTable).ToString(StringTable); var kind = d.IsSharedOpaque ? "shared opaque" : d.IsOutputDirectory() ? "exclusive opaque" : "source"; return(new ObjectInfoBuilder() .Preview($"{name} [{kind}]") .Prop("Path", d.Path.ToString(PathTable)) .Prop("PartialSealId", d.PartialSealId) .Prop("Kind", kind) .Prop("Producer", () => d.IsOutputDirectory() ? Analyzer.GetPip(PipGraph.TryGetProducer(d)) : null) .Prop("Consumers", PipGraph.GetConsumingPips(d)) .Prop("Members", () => d.IsOutputDirectory() ? (object)Analyzer.GetDirMembers(d) : d.PartialSealId > 0 ? PipGraph.ListSealedDirectoryContents(d).Select(f => f.Path) : CollectionUtilities.EmptyArray <AbsolutePath>()) .Build()); }