Record Class ProjectCascade
java.lang.Object
java.lang.Record
network.ike.workspace.cascade.ProjectCascade
- Record Components:
schema- the manifest schema version (currently1)head-trueiff this project declares noupstreamedge — the cascade headupstream- edges to the projects this one consumes; the version property each edge pins is derived fromG·AviaCascadeEdge.versionProperty(); nevernullterminal-trueiff this project declares nodownstreamedge — the cascade terminusdownstream- edges to the projects that consume this one; nevernull
public record ProjectCascade(int schema, boolean head, List<CascadeEdge> upstream, boolean terminal, List<CascadeEdge> downstream)
extends Record
One project's own
src/main/cascade/release-cascade.yaml —
its edges in the IKE release cascade (IKE-Network/ike-issues#420).
The cascade is modelled as a loosely-coupled distributed system:
every project version-controls this file in its own git tree and
declares only its own upstream and downstream
edges. No project authors the global ordering; the full graph is
assembled by CascadeAssembler traversing these files.
The head and terminal markers are asserted, not
inferred. A project at the head of the cascade has no
upstream edge, and one at the end has no downstream
edge — but an omitted edge looks identical to a genuine
endpoint, so each endpoint must positively declare itself. The
canonical constructor rejects a marker that disagrees with the
corresponding edge list, turning a forgotten edge into a manifest
error rather than an invisible omission.
-
Constructor Summary
ConstructorsConstructorDescriptionProjectCascade(int schema, boolean head, List<CascadeEdge> upstream, boolean terminal, List<CascadeEdge> downstream) Canonical constructor — defensively copies the edge lists, substitutes empty lists fornull, and verifies thehead/terminalmarkers agree with the edge lists. -
Method Summary
Modifier and TypeMethodDescriptionReturns the value of thedownstreamrecord component.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.booleanhead()Returns the value of theheadrecord component.intschema()Returns the value of theschemarecord component.booleanterminal()Returns the value of theterminalrecord component.final StringtoString()Returns a string representation of this record class.upstream()Returns the value of theupstreamrecord component.
-
Constructor Details
-
ProjectCascade
public ProjectCascade(int schema, boolean head, List<CascadeEdge> upstream, boolean terminal, List<CascadeEdge> downstream) Canonical constructor — defensively copies the edge lists, substitutes empty lists fornull, and verifies thehead/terminalmarkers agree with the edge lists. The per-edgeversion-propertycheck that the legacy YAML schema needed is gone: every edge derives its canonicalG·Aversion-property from its coordinates, so it is always non-blank (IKE-Network/ike-issues#496).
-
-
Method Details
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
schema
-
head
-
upstream
-
terminal
-
downstream
Returns the value of thedownstreamrecord component.- Returns:
- the value of the
downstreamrecord component
-