Record Class CascadeEdge

java.lang.Object
java.lang.Record
network.ike.workspace.cascade.CascadeEdge
Record Components:
coordinate - the neighbour's reactor-root coordinate; the primary identity key
repo - the neighbour's on-disk directory / GitHub repo name; defaults to MavenCoordinate.artifactId() when blank
url - the neighbour's canonical upstream git URL, or null when unknown
kind - the Maven model site this edge was derived from; defaults to EdgeKind.DEPENDENCY when null

public record CascadeEdge(MavenCoordinate coordinate, String repo, String url, EdgeKind kind) extends Record
A directed edge in the IKE release cascade — a pointer from one project to one of its cascade neighbours.

An edge carries the neighbour's reactor-root Maven MavenCoordinate, an on-disk repo name, a git url, and an EdgeKind naming the POM site the edge was derived from. The version property the alignment step rewrites — once ${G·A} naming is universal — is mechanical: MavenCoordinate.versionProperty() returns groupId·artifactId, so no field stores it separately. The pre-derivation per-project release-cascade.yaml manifests carried a version-property value here; the derivation pipeline introduced by IKE-Network/ike-issues#496 replaces it.

  • Constructor Details

    • CascadeEdge

      public CascadeEdge(MavenCoordinate coordinate, String repo, String url, EdgeKind kind)
      Canonical constructor — validates the coordinate, defaults repo to the artifactId, and defaults kind to EdgeKind.DEPENDENCY.
    • CascadeEdge

      public CascadeEdge(String groupId, String artifactId, String repo, String url)
      Convenience constructor accepting raw groupId / artifactId strings. Wraps them into a MavenCoordinate. Defaults kind to EdgeKind.DEPENDENCY.
      Parameters:
      groupId - the Maven groupId
      artifactId - the Maven artifactId
      repo - the on-disk directory / GitHub repo name
      url - the canonical upstream git URL
    • CascadeEdge

      public CascadeEdge(String groupId, String artifactId, String repo, String url, EdgeKind kind)
      Convenience constructor accepting raw groupId / artifactId strings plus an explicit kind.
      Parameters:
      groupId - the Maven groupId
      artifactId - the Maven artifactId
      repo - the on-disk directory / GitHub repo name
      url - the canonical upstream git URL
      kind - the edge kind
  • Method Details

    • groupId

      public String groupId()
      Returns the coordinate's groupId. Delegates to MavenCoordinate.groupId() for compatibility with the pre-record API.
      Returns:
      the groupId
    • artifactId

      public String artifactId()
      Returns the coordinate's artifactId. Delegates to MavenCoordinate.artifactId() for compatibility with the pre-record API.
      Returns:
      the artifactId
    • ga

      public String ga()
      Returns the "groupId:artifactId" display form.
      Returns:
      the G:A string
    • versionProperty

      public String versionProperty()
      Returns the canonical IKE version-property name in the typed-marker family form (<G>__GA__<A>__VERSION). Derived from the coordinate; see MavenCoordinate.versionProperty(). Callers operating during the transition period should fall back to versionPropertyLegacy() when this name resolves to no value.
      Returns:
      the canonical typed-marker version-property name
    • versionPropertyLegacy

      public String versionPropertyLegacy()
      Returns the legacy version-property name (G·A) used by the pre-#525 convention. Transition-period read fallback only.
      Returns:
      the legacy version-property name
    • policyProperty

      public String policyProperty()
      Returns the canonical release-policy property name in the typed-marker family form (<G>__GA__<A>__POLICY).
      Returns:
      the canonical typed-marker policy property name
    • policyPropertyLegacy

      public String policyPropertyLegacy()
      Returns the legacy release-policy property name (G·A·policy). Transition-period read fallback only.
      Returns:
      the legacy policy property name
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      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 with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • coordinate

      public MavenCoordinate coordinate()
      Returns the value of the coordinate record component.
      Returns:
      the value of the coordinate record component
    • repo

      public String repo()
      Returns the value of the repo record component.
      Returns:
      the value of the repo record component
    • url

      public String url()
      Returns the value of the url record component.
      Returns:
      the value of the url record component
    • kind

      public EdgeKind kind()
      Returns the value of the kind record component.
      Returns:
      the value of the kind record component