Record Class ReleaseCascade
- Record Components:
repos- cascade nodes in topological order; nevernull
release-cascade.yaml manifests by CascadeAssembler
(IKE-Network/ike-issues#402, #420).
No project authors this ordering. Each project version-controls
only its own upstream/downstream edges; the
assembler traverses those edges and topologically orders the
result. The repos() list is that order: a node always
follows every node it consumes.
Helper methods answer the questions the release goals ask:
downstreamOf(String)— "I just released this artifact; what is now stale?"find(String)/findByCoordinates(String, String)— resolve a cascade node from a project's own POM coordinates.
Identity is the groupId:artifactId pair, NOT
groupId alone. Foundation members can share a groupId
(e.g., network.ike.tooling:ike-tooling and
network.ike.tooling:ike-workspace-extension both live
under the same group but are independent cascade heads with
different downstream edges). Lookups take the GA string
("groupId:artifactId") — see
CascadeRepo.ga() — or both coordinates explicitly via
findByCoordinates(String, String)
(IKE-Network/ike-issues#466).
-
Constructor Summary
ConstructorsConstructorDescriptionReleaseCascade(List<CascadeRepo> repos) Canonical constructor — defensively copiesreposand substitutes an empty list fornull. -
Method Summary
Modifier and TypeMethodDescriptionbooleanTests whether agaparticipates in the cascade.downstreamOf(String ga) Returns the cascade members reachable downstream ofga, in cascade (topological) order.final booleanIndicates whether some other object is "equal to" this one.Looks up a cascade node by its"groupId:artifactId"GA string.findByCoordinates(String groupId, String artifactId) Convenience overload — wraps the two-String pair into aMavenCoordinateand delegates.findByCoordinates(MavenCoordinate coordinate) Looks up a cascade node by exactMavenCoordinate.final inthashCode()Returns a hash code value for this object.repos()Returns the value of thereposrecord component.final StringtoString()Returns a string representation of this record class.
-
Constructor Details
-
ReleaseCascade
Canonical constructor — defensively copiesreposand substitutes an empty list fornull.
-
-
Method Details
-
find
Looks up a cascade node by its"groupId:artifactId"GA string.- Parameters:
ga- theCascadeRepo.ga()of the node to find- Returns:
- the matching node, or empty if
gais not a cascade member
-
findByCoordinates
Looks up a cascade node by exactMavenCoordinate.- Parameters:
coordinate- the project's coordinate- Returns:
- the matching node, or empty if the coordinate is not a cascade member
-
findByCoordinates
Convenience overload — wraps the two-String pair into aMavenCoordinateand delegates.- Parameters:
groupId- the project's groupIdartifactId- the project's artifactId- Returns:
- the matching node, or empty if the coordinates are not a cascade member
-
contains
Tests whether agaparticipates in the cascade.- Parameters:
ga- theCascadeRepo.ga()to test- Returns:
- true if
gais a cascade member
-
downstreamOf
Returns the cascade members reachable downstream ofga, in cascade (topological) order.These are exactly the repos that go stale when
gais released: each one consumes, directly or through an intermediate, its artifacts. The traversal follows thedownstreamedges of each node.- Parameters:
ga- theCascadeRepo.ga()that was (or will be) released- Returns:
- downstream nodes in release order; empty if
gahas no consumers or is not a member
-
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. All components in this record class are compared withObjects::equals(Object,Object). -
repos
-