Interface ServiceLeg
-
- All Superinterfaces:
Comparable<IdAble>
,DirectedEdge
,Edge
,ExternalIdAble
,GraphEntity
,IdAble
,ManagedId
,Serializable
- All Known Implementing Classes:
ServiceLegImpl
public interface ServiceLeg extends DirectedEdge
Service leg interface which extends the Edge interface. A service leg comprises one or more underlying physical links, e.g., an uninterrupted service route between two stops for example in a public transport context with scheduled stops at either end, namely the two service nodes.- Author:
- markr
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
ServiceLeg.LengthType
Types of lengths that can be queries for a service leg based on available underlying physical links
-
Field Summary
-
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 ServiceLeg
deepClone()
Deep copy, non-owned members are reference copieddefault <LS extends ServiceLegSegment>
LSgetLegSegment(boolean directionAb)
collect edgeSegment as something extending LegSegment which is to be expected for any Leg.default <LS extends ServiceLegSegment>
LSgetLegSegmentAb()
collect edgeSegment Ab as something extending LegSegment which is to be expected for any Leg.default <LS extends ServiceLegSegment>
Collection<LS>getLegSegments()
Collect all available leg segments of this legdouble
getLengthKm(ServiceLeg.LengthType lengthType)
determine length based on desired length type (in case both service leg segments are mapped to the leg and have different lengths due to different underlying physical link segments)default <LS extends ServiceLegSegment>
LSgetLinkSegmentBa()
collect edgeSegment Ba as something extending LegSegment which is to be expected for any link.default <N extends ServiceNode>
NgetServiceNodeA()
collect vertex A as something extending service node which is to be expected for any service leg.default <N extends ServiceNode>
NgetServiceNodeB()
collect vertex B as something extending service node which is to be expected for any service leg.default boolean
hasLegSegmentAb()
verify if leg Segment Ab is presentdefault boolean
hasLegSegmentBa()
verify if LegSegment BA is presentdefault boolean
hasName()
Verify if name is present on legServiceLeg
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
-
getServiceNodeA
default <N extends ServiceNode> N getServiceNodeA()
collect vertex A as something extending service node which is to be expected for any service leg. Convenience method for readability- Type Parameters:
N
- service node type- Returns:
- service node A
-
getServiceNodeB
default <N extends ServiceNode> N getServiceNodeB()
collect vertex B as something extending service node which is to be expected for any service leg. Convenience method for readability- Type Parameters:
N
- service node type- Returns:
- service node B
-
getLegSegment
default <LS extends ServiceLegSegment> LS getLegSegment(boolean directionAb)
collect edgeSegment as something extending LegSegment which is to be expected for any Leg. Convenience method for readability- Type Parameters:
LS
- leg segment type- Parameters:
directionAb
- the direction- Returns:
- leg segment in given direction
-
getLegSegmentAb
default <LS extends ServiceLegSegment> LS getLegSegmentAb()
collect edgeSegment Ab as something extending LegSegment which is to be expected for any Leg. Convenience method for readability- Type Parameters:
LS
- leg segment type- Returns:
- leg segment in given direction
-
hasLegSegmentAb
default boolean hasLegSegmentAb()
verify if leg Segment Ab is present- Returns:
- true when leg segment is present, false otherwise
-
getLinkSegmentBa
default <LS extends ServiceLegSegment> LS getLinkSegmentBa()
collect edgeSegment Ba as something extending LegSegment which is to be expected for any link. Convenience method for readability- Type Parameters:
LS
- leg segment type- Returns:
- leg segment in given direction
-
hasLegSegmentBa
default boolean hasLegSegmentBa()
verify if LegSegment BA is present- Returns:
- true when leg segment is present, false otherwise
-
hasName
default boolean hasName()
Verify if name is present on leg
-
getLegSegments
default <LS extends ServiceLegSegment> Collection<LS> getLegSegments()
Collect all available leg segments of this leg- Type Parameters:
LS
- type of leg segment- Returns:
- available leg segments
-
getLengthKm
double getLengthKm(ServiceLeg.LengthType lengthType)
determine length based on desired length type (in case both service leg segments are mapped to the leg and have different lengths due to different underlying physical link segments)- Parameters:
lengthType
- to apply- Returns:
- found length, if no underlying service leg segments are present, length is set to infinite
-
shallowClone
ServiceLeg 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
ServiceLeg 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
-
-