Interface Link
-
- All Superinterfaces:
Comparable<IdAble>
,DirectedEdge
,Edge
,ExternalIdAble
,GraphEntity
,IdAble
,ManagedId
,Serializable
- All Known Subinterfaces:
MacroscopicLink
- All Known Implementing Classes:
LinkImpl
,MacroscopicLinkImpl
public interface Link extends DirectedEdge
Link interface which extends the Edge interface with a unique id (not all edges are links) as well as an external id- Author:
- markr
-
-
Field Summary
Fields Modifier and Type Field Description static Class<Link>
LINK_ID_CLASS
id class for generating ids-
Fields inherited from interface org.goplanit.utils.graph.Edge
EDGE_ID_CLASS
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Link
deepClone()
Deep copy, non-owned members are reference copiedlong
getLinkId()
Return id of this instance.default Class<? extends Link>
getLinkIdClass()
Return class used to generate unique link ids via the id generatordefault LinkSegment
getLinkSegment(boolean directionAb)
collect edgeSegment as something extending LinkSegment which is to be expected for any link.default LinkSegment
getLinkSegmentAb()
collect edgeSegment Ab as something extending LinkSegment which is to be expected for any link.default LinkSegment
getLinkSegmentBa()
collect edgeSegment Ba as something extending LinkSegment which is to be expected for any link.default Collection<? extends LinkSegment>
getLinkSegments()
collect all available link segments of this linkdefault <N extends Node>
NgetNodeA()
collect vertex A as something extending node which is to be expected for any link.default <N extends Node>
NgetNodeB()
collect vertex A as something extending node which is to be expected for any link.default boolean
hasLinkSegmentAb()
verify if linkSegment Ab is presentdefault boolean
hasLinkSegmentBa()
verify if linkSegment Ba is presentdefault boolean
hasName()
verify if name is present on linkLink
shallowClone()
Shallow copy-
Methods inherited from interface org.goplanit.utils.graph.directed.DirectedEdge
forEachSegment, getEdgeSegment, getEdgeSegmentAb, getEdgeSegmentBa, getEdgeSegments, getVertexA, getVertexB, hasEdgeSegment, hasEdgeSegmentAb, hasEdgeSegmentBa, registerEdgeSegment, registerEdgeSegment, removeEdgeSegment, removeEdgeSegmentAb, removeEdgeSegmentBa, removeEdgeSegments, replace
-
Methods inherited from interface org.goplanit.utils.graph.Edge
addInputProperty, createEnvelope, getGeometry, getIdClass, getInputProperty, getLengthKm, getName, hasGeometry, hasVertex, hasVertexA, hasVertexB, hasVertices, isGeometryInAbDirection, isGeometryInAbDirection, isVertexA, populateBasicGeometry, removeVertex, replace, setGeometry, setLengthKm, setName, transformGeometry, updateGeometryInjectCoordinateAtProjectedLocation, validate
-
Methods inherited from interface org.goplanit.utils.id.ExternalIdAble
appendExternalId, appendExternalId, getExternalId, getIdsAsString, getSplitExternalId, getSplitExternalId, getXmlId, hasExternalId, hasXmlId, setExternalId, setXmlId, setXmlId
-
Methods inherited from interface org.goplanit.utils.id.IdAble
compareTo, getId, idEquals, idHashCode
-
Methods inherited from interface org.goplanit.utils.id.ManagedId
recreateManagedIds, resetChildManagedIdEntities
-
-
-
-
Method Detail
-
getLinkId
long getLinkId()
Return id of this instance. This id is expected to be generated using the org.planit.utils.misc.IdGenerator- Returns:
- linkId
-
getLinkIdClass
default Class<? extends Link> getLinkIdClass()
Return class used to generate unique link ids via the id generator- Returns:
- class type
-
getNodeA
default <N extends Node> N getNodeA()
collect vertex A as something extending node which is to be expected for any link. Convenience method for readability- Type Parameters:
N
- node type- Returns:
- nodeA
-
getNodeB
default <N extends Node> N getNodeB()
collect vertex A as something extending node which is to be expected for any link. Convenience method for readability- Type Parameters:
N
- node type- Returns:
- nodeA
-
getLinkSegment
default LinkSegment getLinkSegment(boolean directionAb)
collect edgeSegment as something extending LinkSegment which is to be expected for any link. Convenience method for readability- Parameters:
directionAb
- the direction- Returns:
- link segment in given direction
-
getLinkSegmentAb
default LinkSegment getLinkSegmentAb()
collect edgeSegment Ab as something extending LinkSegment which is to be expected for any link. Convenience method for readability- Returns:
- link segment in given direction
-
hasLinkSegmentAb
default boolean hasLinkSegmentAb()
verify if linkSegment Ab is present- Returns:
- true when link segment is present, false otherwise
-
getLinkSegmentBa
default LinkSegment getLinkSegmentBa()
collect edgeSegment Ba as something extending LinkSegment which is to be expected for any link. Convenience method for readability- Returns:
- link segment in given direction
-
hasLinkSegmentBa
default boolean hasLinkSegmentBa()
verify if linkSegment Ba is present- Returns:
- true when link segment is present, false otherwise
-
hasName
default boolean hasName()
verify if name is present on link
-
getLinkSegments
default Collection<? extends LinkSegment> getLinkSegments()
collect all available link segments of this link- Returns:
- available link segments
-
shallowClone
Link shallowClone()
Shallow copy- Specified by:
shallowClone
in interfaceDirectedEdge
- Specified by:
shallowClone
in interfaceEdge
- Specified by:
shallowClone
in interfaceGraphEntity
- Specified by:
shallowClone
in interfaceIdAble
- Returns:
- copy of this edge
-
deepClone
Link deepClone()
Deep copy, non-owned members are reference copied- Specified by:
deepClone
in interfaceDirectedEdge
- Specified by:
deepClone
in interfaceEdge
- Specified by:
deepClone
in interfaceGraphEntity
- Specified by:
deepClone
in interfaceIdAble
- Returns:
- copy of this edge
-
-