Package org.goplanit.network.layers
Class ServiceNetworkLayersImpl
- java.lang.Object
-
- org.goplanit.utils.wrapper.MapWrapperImpl<Long,V>
-
- org.goplanit.utils.wrapper.LongMapWrapperImpl<E>
-
- org.goplanit.utils.id.ManagedIdEntitiesImpl<T>
-
- org.goplanit.network.layers.TransportLayersImpl<T>
-
- org.goplanit.network.layers.TopologicalLayersImpl<ServiceNetworkLayer>
-
- org.goplanit.network.layers.ServiceNetworkLayersImpl
-
- All Implemented Interfaces:
Iterable<ServiceNetworkLayer>
,ManagedIdEntities<ServiceNetworkLayer>
,NetworkLayers<ServiceNetworkLayer>
,ServiceNetworkLayers
,TopologicalLayers<ServiceNetworkLayer>
,LongMapWrapper<ServiceNetworkLayer>
,MapWrapper<Long,ServiceNetworkLayer>
public class ServiceNetworkLayersImpl extends TopologicalLayersImpl<ServiceNetworkLayer> implements ServiceNetworkLayers
Implementation of container and factory to manage service network layers. In this network type, all layers are of the ServiceNetworkLayer type- Author:
- markr
-
-
Field Summary
Fields Modifier and Type Field Description protected ServiceNetworkLayerFactory
factory
factory to use for creating layer instances-
Fields inherited from class org.goplanit.utils.id.ManagedIdEntitiesImpl
managedIdClass
-
-
Constructor Summary
Constructors Constructor Description ServiceNetworkLayersImpl(ServiceNetworkLayersImpl other, boolean deepCopy, BiConsumer<ServiceNetworkLayer,ServiceNetworkLayer> mapper)
Copy constructor, also creates new factory with this as its underlying containerServiceNetworkLayersImpl(IdGroupingToken idToken, MacroscopicNetwork parentNetwork)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ServiceNetworkLayersImpl
deepClone()
Deep clone implementationServiceNetworkLayersImpl
deepCloneWithMapping(BiConsumer<ServiceNetworkLayer,ServiceNetworkLayer> mapper)
Deep clone implementation where the mapping for its internal copies is captured by the provided mapperServiceNetworkLayerFactory
getFactory()
Factory to create instance of managed id entity (for this container class)MacroscopicNetwork
getParentNetwork()
The parent networkServiceNetworkLayersImpl
shallowClone()
Each map wrapper should be cloneable where the contents are references of the original where possible but the underlying map itself is newly created-
Methods inherited from class org.goplanit.network.layers.TransportLayersImpl
get, getByXmlId, getIdToken
-
Methods inherited from class org.goplanit.utils.id.ManagedIdEntitiesImpl
getManagedIdClass, recreateIds, reset, updateIdMapping
-
Methods inherited from class org.goplanit.utils.wrapper.LongMapWrapperImpl
containsKey, get, remove
-
Methods inherited from class org.goplanit.utils.wrapper.MapWrapperImpl
clear, containsValue, createEmptyInstance, firstMatch, get, getKeyByValue, getMap, getValueToKey, isEmpty, iterator, register, remove, removeIf, setMap, size, toCollection, valuesAsNewSet
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
-
Methods inherited from interface org.goplanit.utils.wrapper.LongMapWrapper
get, remove
-
Methods inherited from interface org.goplanit.utils.id.ManagedIdEntities
containsKey, getManagedIdClass, groupBy, recreateIds, recreateIds, reset, streamSortedBy
-
Methods inherited from interface org.goplanit.utils.wrapper.MapWrapper
addAll, clear, containsValue, firstMatch, forEachIn, get, getFirst, getKeyByValue, isEmpty, register, remove, removeAll, removeIf, size, stream, streamSorted, toCollection, toMap, valuesAsNewSet
-
Methods inherited from interface org.goplanit.utils.network.layers.NetworkLayers
get, get, getByXmlId, getLayersOfType, getSupportedModes, isEachLayerEmpty
-
-
-
-
Field Detail
-
factory
protected final ServiceNetworkLayerFactory factory
factory to use for creating layer instances
-
-
Constructor Detail
-
ServiceNetworkLayersImpl
public ServiceNetworkLayersImpl(IdGroupingToken idToken, MacroscopicNetwork parentNetwork)
Constructor- Parameters:
idToken
- for id generationparentNetwork
- the layers are built upon
-
ServiceNetworkLayersImpl
public ServiceNetworkLayersImpl(ServiceNetworkLayersImpl other, boolean deepCopy, BiConsumer<ServiceNetworkLayer,ServiceNetworkLayer> mapper)
Copy constructor, also creates new factory with this as its underlying container- Parameters:
other
- to copydeepCopy
- when true, create a deep copy, shallow copy otherwisemapper
- apply to each mapping from original to copy
-
-
Method Detail
-
getParentNetwork
public MacroscopicNetwork getParentNetwork()
The parent network- Returns:
- parent network
-
shallowClone
public ServiceNetworkLayersImpl shallowClone()
Each map wrapper should be cloneable where the contents are references of the original where possible but the underlying map itself is newly created- Specified by:
shallowClone
in interfaceManagedIdEntities<ServiceNetworkLayer>
- Specified by:
shallowClone
in interfaceMapWrapper<Long,ServiceNetworkLayer>
- Specified by:
shallowClone
in interfaceNetworkLayers<ServiceNetworkLayer>
- Specified by:
shallowClone
in interfaceServiceNetworkLayers
- Specified by:
shallowClone
in interfaceTopologicalLayers<ServiceNetworkLayer>
- Specified by:
shallowClone
in classTopologicalLayersImpl<ServiceNetworkLayer>
- Returns:
- copy
-
deepClone
public ServiceNetworkLayersImpl deepClone()
Deep clone implementation- Specified by:
deepClone
in interfaceManagedIdEntities<ServiceNetworkLayer>
- Specified by:
deepClone
in interfaceNetworkLayers<ServiceNetworkLayer>
- Specified by:
deepClone
in interfaceServiceNetworkLayers
- Specified by:
deepClone
in interfaceTopologicalLayers<ServiceNetworkLayer>
- Specified by:
deepClone
in classTopologicalLayersImpl<ServiceNetworkLayer>
- Returns:
- deep copy of entities
-
deepCloneWithMapping
public ServiceNetworkLayersImpl deepCloneWithMapping(BiConsumer<ServiceNetworkLayer,ServiceNetworkLayer> mapper)
Deep clone implementation where the mapping for its internal copies is captured by the provided mapper- Specified by:
deepCloneWithMapping
in interfaceManagedIdEntities<ServiceNetworkLayer>
- Specified by:
deepCloneWithMapping
in interfaceNetworkLayers<ServiceNetworkLayer>
- Specified by:
deepCloneWithMapping
in classTopologicalLayersImpl<ServiceNetworkLayer>
- Parameters:
mapper
- to apply to each mapping between original and copy- Returns:
- copy
-
getFactory
public ServiceNetworkLayerFactory getFactory()
Factory to create instance of managed id entity (for this container class)- Specified by:
getFactory
in interfaceManagedIdEntities<ServiceNetworkLayer>
- Specified by:
getFactory
in interfaceServiceNetworkLayers
- Returns:
- entity factory
-
-