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 ConjugateMacroscopicNetworkLayercreateConjugate(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.MacroscopicNetworkLayerdeepClone()A network layer deep clone is expected to update interdependencies between "owned" deep cloned entities where possibledefault doublefindMaximumPaceHKm(Mode mode)Convenience method to determine the maximum pace (h/km) across the layer for a given modedefault doublefindMaximumSpeedLimitKmH(Mode mode)Convenience method to determine the maximum speed limit (km/h) across the layer for a given modeMacroscopicLinksgetLinks()Collect the linksMacroscopicLinkSegmentsgetLinkSegments()Collect the link segmentsMacroscopicLinkSegmentTypesgetLinkSegmentTypes()Provide access to registered macroscopic link segment types used across all macroscopic link segmentsNodesgetNodes()Collect the nodesMacroscopicNetworkLayershallowClone()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:
shallowClonein interfaceIdAble- Specified by:
shallowClonein interfaceNetworkLayer- Specified by:
shallowClonein interfaceTopologicalLayer- Specified by:
shallowClonein interfaceUntypedDirectedGraphLayer<Node,MacroscopicLink,MacroscopicLinkSegment>- Specified by:
shallowClonein 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:
deepClonein interfaceIdAble- Specified by:
deepClonein interfaceNetworkLayer- Specified by:
deepClonein interfaceTopologicalLayer- Specified by:
deepClonein interfaceUntypedDirectedGraphLayer<Node,MacroscopicLink,MacroscopicLinkSegment>- Specified by:
deepClonein interfaceUntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>- Returns:
- deep copy of entity
-
getLinks
MacroscopicLinks getLinks()
Collect the links- Specified by:
getLinksin interfaceUntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>- Returns:
- the links
-
getLinkSegments
MacroscopicLinkSegments getLinkSegments()
Collect the link segments- Specified by:
getLinkSegmentsin interfaceUntypedPhysicalLayer<Node,MacroscopicLink,MacroscopicLinkSegment>- Returns:
- the linkSegments
-
getNodes
Nodes getNodes()
Collect the nodes- Specified by:
getNodesin 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
-
-