Package org.goplanit.zoning
Class UndirectedConnectoidsImpl
- java.lang.Object
-
- org.goplanit.utils.wrapper.MapWrapperImpl<Long,V>
-
- org.goplanit.utils.wrapper.LongMapWrapperImpl<E>
-
- org.goplanit.utils.id.ManagedIdEntitiesImpl<T>
-
- org.goplanit.zoning.ConnectoidsImpl<UndirectedConnectoid>
-
- org.goplanit.zoning.UndirectedConnectoidsImpl
-
- All Implemented Interfaces:
Iterable<UndirectedConnectoid>
,EventListener
,EventListener
,ManagedIdEntities<UndirectedConnectoid>
,LongMapWrapper<UndirectedConnectoid>
,MapWrapper<Long,UndirectedConnectoid>
,Connectoids<UndirectedConnectoid>
,ZoningModifierListener
,UndirectedConnectoids
public class UndirectedConnectoidsImpl extends ConnectoidsImpl<UndirectedConnectoid> implements UndirectedConnectoids
Implementation of Connectoids class- Author:
- markr
-
-
Field Summary
-
Fields inherited from class org.goplanit.utils.id.ManagedIdEntitiesImpl
managedIdClass
-
-
Constructor Summary
Constructors Constructor Description UndirectedConnectoidsImpl(IdGroupingToken groupId)
ConstructorUndirectedConnectoidsImpl(IdGroupingToken groupId, UndirectedConnectoidFactory undirectedConnectoidFactory)
ConstructorUndirectedConnectoidsImpl(UndirectedConnectoidsImpl other, boolean deepCopy, BiConsumer<UndirectedConnectoid,UndirectedConnectoid> mapper)
Copy constructor, also creates new factory with this as its underlying container
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description UndirectedConnectoidsImpl
deepClone()
Deep clone implementationUndirectedConnectoidsImpl
deepCloneWithMapping(BiConsumer<UndirectedConnectoid,UndirectedConnectoid> mapper)
Deep clone implementation where the mapping for its internal copies is captured by the provided mapperUndirectedConnectoidFactory
getFactory()
Factory to create instance of managed id entity (for this container class)void
recreateIds(boolean resetManagedIdClass)
Recreate the ids for all registered entities with or without resetting, this includes child managed ids, i.e., nested magedidentities containers if so indicatedUndirectedConnectoidsImpl
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.zoning.ConnectoidsImpl
createIndexByAccessZone, getKnownSupportedEventTypes, onZoningModifierEvent, updateConnectoidAccessZoneIdReferences
-
Methods inherited from class org.goplanit.utils.id.ManagedIdEntitiesImpl
getManagedIdClass, 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 org.goplanit.utils.zoning.Connectoids
createIndexByAccessZone
-
Methods inherited from interface org.goplanit.utils.event.EventListener
getKnownSupportedEventTypes, hasKnownSupportedEventTypes
-
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, 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.zoning.modifier.event.ZoningModifierListener
onZoningModifierEvent
-
-
-
-
Constructor Detail
-
UndirectedConnectoidsImpl
public UndirectedConnectoidsImpl(IdGroupingToken groupId)
Constructor- Parameters:
groupId
- to use for creating ids for instances
-
UndirectedConnectoidsImpl
public UndirectedConnectoidsImpl(IdGroupingToken groupId, UndirectedConnectoidFactory undirectedConnectoidFactory)
Constructor- Parameters:
groupId
- to use for creating ids for instancesundirectedConnectoidFactory
- the factory to use
-
UndirectedConnectoidsImpl
public UndirectedConnectoidsImpl(UndirectedConnectoidsImpl other, boolean deepCopy, BiConsumer<UndirectedConnectoid,UndirectedConnectoid> mapper)
Copy constructor, also creates new factory with this as its underlying container- Parameters:
other
- to copydeepCopy
- when true, create a eep copy, shallow copy otherwisemapper
- to use for tracking mapping between original and copied entity (may be null)
-
-
Method Detail
-
getFactory
public UndirectedConnectoidFactory getFactory()
Factory to create instance of managed id entity (for this container class)- Specified by:
getFactory
in interfaceManagedIdEntities<UndirectedConnectoid>
- Specified by:
getFactory
in interfaceUndirectedConnectoids
- Returns:
- entity factory
-
recreateIds
public void recreateIds(boolean resetManagedIdClass)
Recreate the ids for all registered entities with or without resetting, this includes child managed ids, i.e., nested magedidentities containers if so indicated- Specified by:
recreateIds
in interfaceManagedIdEntities<UndirectedConnectoid>
- Overrides:
recreateIds
in classManagedIdEntitiesImpl<UndirectedConnectoid>
- Parameters:
resetManagedIdClass
- when true we reset the managedId's counter to zero (via its id class) before recreating the ids, otherwise we simply recreate the managed id by starting with the next available id without resetting
-
shallowClone
public UndirectedConnectoidsImpl 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 interfaceConnectoids<UndirectedConnectoid>
- Specified by:
shallowClone
in interfaceManagedIdEntities<UndirectedConnectoid>
- Specified by:
shallowClone
in interfaceMapWrapper<Long,UndirectedConnectoid>
- Specified by:
shallowClone
in interfaceUndirectedConnectoids
- Specified by:
shallowClone
in classConnectoidsImpl<UndirectedConnectoid>
- Returns:
- copy
-
deepClone
public UndirectedConnectoidsImpl deepClone()
Deep clone implementation- Specified by:
deepClone
in interfaceConnectoids<UndirectedConnectoid>
- Specified by:
deepClone
in interfaceManagedIdEntities<UndirectedConnectoid>
- Specified by:
deepClone
in interfaceUndirectedConnectoids
- Specified by:
deepClone
in classConnectoidsImpl<UndirectedConnectoid>
- Returns:
- deep copy of entities
-
deepCloneWithMapping
public UndirectedConnectoidsImpl deepCloneWithMapping(BiConsumer<UndirectedConnectoid,UndirectedConnectoid> mapper)
Deep clone implementation where the mapping for its internal copies is captured by the provided mapper- Specified by:
deepCloneWithMapping
in interfaceConnectoids<UndirectedConnectoid>
- Specified by:
deepCloneWithMapping
in interfaceManagedIdEntities<UndirectedConnectoid>
- Specified by:
deepCloneWithMapping
in interfaceUndirectedConnectoids
- Specified by:
deepCloneWithMapping
in classConnectoidsImpl<UndirectedConnectoid>
- Parameters:
mapper
- to apply to each mapping between original and copy- Returns:
- copy
-
-