protected CatalogSubject(SystemResourceScheme Scheme, string host, string Name, INodeCatalogSubject Parent = null) { this.Parent = Parent; this.Scheme = Scheme; this.IsRoot = Parent == null; this.SymbolicHost = host; this.Name = IsRoot ? $"/{host}/{Name}" : Name; this.Lineage = DeriveLineage().ToList(); this.RelativeLocation = IsRoot ? this.Name : DeriveRelativeLocation(); this.Urn = DeriveUrn(); this.LineageSegments = Urn.NonSchemeComponents.Zip(RelativeLocation.Split('/'), (x, y) => (x, y)).ToList(); this.Segment = (Urn.ToString(), RelativeLocation.ToString()); }
public static SystemResourceUrn FromComponents(SystemResourceScheme scheme, params object[] Components) => new SystemResourceUrn(scheme, Components);
public SystemResourceUrn(SystemResourceScheme scheme, params object[] Components) : base(scheme, Components) { }
public SystemResourceUrn(SystemResourceScheme scheme, string Identifier) : base(scheme, Identifier) { }
protected override SystemResourceUrn New(SystemResourceScheme scheme, string EverythingButScheme) => new SystemResourceUrn(scheme, EverythingButScheme);