Package org.goplanit.utils.network.layer
Interface MacroscopicNetworkLayer
-
- All Superinterfaces:
Comparable<IdAble>
,ExternalIdAble
,IdAble
,ManagedId
,NetworkLayer
,TopologicalLayer
,UntypedDirectedGraphLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
,UntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
- All Known Implementing Classes:
MacroscopicNetworkLayerImpl
public interface MacroscopicNetworkLayer extends UntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
Macroscopic physical network layer consisting of nodes, links and macroscopic link segments- Author:
- markr
-
-
Field Summary
-
Fields inherited from interface org.goplanit.utils.network.layer.NetworkLayer
NETWORK_LAYER_ID_CLASS
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description ConjugateMacroscopicNetworkLayer
createConjugate(IdGroupingToken idToken, ConjugateVirtualNetwork conjugateVirtualNetwork)
Create a conjugate version of this layer, also known as the edge-to-vertex-dual representation, where all edges become vertices and all two adjacent edges (turns) become the edges on the conjugate version.MacroscopicNetworkLayer
deepClone()
A network layer deep clone is expected to update interdependencies between "owned" deep cloned entities where possibledefault double
findMaximumPaceHKm(Mode mode)
Convenience method to determine the maximum pace (h/km) across the layer for a given modedefault double
findMaximumSpeedLimitKmH(Mode mode)
Convenience method to determine the maximum speed limit (km/h) across the layer for a given modeMacroscopicLinks
getLinks()
Collect the linksMacroscopicLinkSegments
getLinkSegments()
Collect the link segmentsMacroscopicLinkSegmentTypes
getLinkSegmentTypes()
Provide access to registered macroscopic link segment types used across all macroscopic link segmentsNodes
getNodes()
Collect the nodesMacroscopicNetworkLayer
shallowClone()
Create a shallow copy of this entity-
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
-
Methods inherited from interface org.goplanit.utils.network.layer.NetworkLayer
getFirstSupportedMode, getIdClass, getSupportedModes, hasSupportedModes, isEmpty, logInfo, registerSupportedMode, registerSupportedModes, reset, supports, supports, supportsPredefinedMode, validate
-
Methods inherited from interface org.goplanit.utils.network.layer.TopologicalLayer
createBoundingBox, transform
-
Methods inherited from interface org.goplanit.utils.network.layer.UntypedDirectedGraphLayer
getLayerIdGroupingToken, getLayerModifier
-
Methods inherited from interface org.goplanit.utils.network.layer.physical.UntypedPhysicalLayer
getNumberOfLinks, getNumberOfLinkSegments, getNumberOfNodes
-
-
-
-
Method Detail
-
shallowClone
MacroscopicNetworkLayer shallowClone()
Create a shallow copy of this entity- Specified by:
shallowClone
in interfaceIdAble
- Specified by:
shallowClone
in interfaceNetworkLayer
- Specified by:
shallowClone
in interfaceTopologicalLayer
- Specified by:
shallowClone
in interfaceUntypedDirectedGraphLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
- Specified by:
shallowClone
in interfaceUntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
- Returns:
- shallow copy of entity
-
deepClone
MacroscopicNetworkLayer deepClone()
A network layer deep clone is expected to update interdependencies between "owned" deep cloned entities where possible- Specified by:
deepClone
in interfaceIdAble
- Specified by:
deepClone
in interfaceNetworkLayer
- Specified by:
deepClone
in interfaceTopologicalLayer
- Specified by:
deepClone
in interfaceUntypedDirectedGraphLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
- Specified by:
deepClone
in interfaceUntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
- Returns:
- deep copy of entity
-
getLinks
MacroscopicLinks getLinks()
Collect the links- Specified by:
getLinks
in interfaceUntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
- Returns:
- the links
-
getLinkSegments
MacroscopicLinkSegments getLinkSegments()
Collect the link segments- Specified by:
getLinkSegments
in interfaceUntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
- Returns:
- the linkSegments
-
getNodes
Nodes getNodes()
Collect the nodes- Specified by:
getNodes
in interfaceUntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>
- Returns:
- the nodes
-
getLinkSegmentTypes
MacroscopicLinkSegmentTypes getLinkSegmentTypes()
Provide access to registered macroscopic link segment types used across all macroscopic link segments- Returns:
- link segment types container class
-
findMaximumSpeedLimitKmH
default double findMaximumSpeedLimitKmH(Mode mode)
Convenience method to determine the maximum speed limit (km/h) across the layer for a given mode- Parameters:
mode
- to use- Returns:
- found maximum applied speed limit
-
findMaximumPaceHKm
default double findMaximumPaceHKm(Mode mode)
Convenience method to determine the maximum pace (h/km) across the layer for a given mode- Parameters:
mode
- to use- Returns:
- found maximum applied speed limit
-
createConjugate
ConjugateMacroscopicNetworkLayer createConjugate(IdGroupingToken idToken, ConjugateVirtualNetwork conjugateVirtualNetwork)
Create a conjugate version of this layer, also known as the edge-to-vertex-dual representation, where all edges become vertices and all two adjacent edges (turns) become the edges on the conjugate version. When the provided id token is the same as an existing layer, vertex,edge,edge segmentids will continue numbering which might not be ideal. It is reocmmended to have a separate idToken for all conjugate layers such that all conjugate vertices, edges, edge segments are numbered uniquely within the context.- Parameters:
idToken
- to use for generating ids within the layerconjugateVirtualNetwork
- to use for encountered connections to zones, when null connectoid edges/edge segments are ignored- Returns:
- conjugate version of this layer
-
-