Uses of Interface
org.goplanit.utils.zoning.TransferZone
-
-
Uses of TransferZone in org.goplanit.converter.zoning
Methods in org.goplanit.converter.zoning with parameters of type TransferZone Modifier and Type Method Description static DirectedConnectoid
ZoningConverterUtils. createAndRegisterDirectedConnectoid(Zoning zoning, TransferZone accessZone, boolean downstreamAccessNode, MacroscopicLinkSegment linkSegment, Set<Mode> allowedModes)
create directed connectoid for the link segment provided, all related to the given transfer zone and with access modes provided.static Collection<DirectedConnectoid>
ZoningConverterUtils. createAndRegisterDirectedConnectoids(Zoning zoning, TransferZone transferZone, Node accessNode, Iterable<? extends MacroscopicLinkSegment> linkSegments, Set<Mode> allowedModes)
create directed connectoids, one per link segment provided, all related to the given transfer zone and with access modes provided. -
Uses of TransferZone in org.goplanit.geoio.converter.zoning.featurecontext
Constructor parameters in org.goplanit.geoio.converter.zoning.featurecontext with type arguments of type TransferZone Constructor Description PlanitTransferZoneFeatureTypeContext(Function<TransferZone,String> zoneIdMapper, Class<T> geometryType)
Constructor -
Uses of TransferZone in org.goplanit.gtfs.converter.intermodal
Methods in org.goplanit.gtfs.converter.intermodal with parameters of type TransferZone Modifier and Type Method Description Set<DirectedConnectoid>
GtfsServicesAndZoningIntegratorData. getConnectoidsByAccessZone(TransferZone transferZone)
-
Uses of TransferZone in org.goplanit.gtfs.converter.zoning
Methods in org.goplanit.gtfs.converter.zoning that return types with arguments of type TransferZone Modifier and Type Method Description Function<String,TransferZone>
GtfsZoningReader. getGtfsStopIdToTransferZoneMapping()
Provide mapping between GTFS Stop id and its found/created PLANit transfer zone (if any) -
Uses of TransferZone in org.goplanit.gtfs.converter.zoning.handler
Methods in org.goplanit.gtfs.converter.zoning.handler that return TransferZone Modifier and Type Method Description TransferZone
GtfsZoningHandlerTransferZoneData.GtfsStopIdToTransferZone. apply(String gtfsStopId)
TransferZone
GtfsZoningHandlerData. getMappedTransferZone(GtfsStop gtfsStop)
Get the transfer zone that the GTFS stop was already mapped to (if any)TransferZone
GtfsZoningHandlerTransferZoneData. getMappedTransferZone(GtfsStop gtfsStop)
Get the transfer zone that the GTFS stop was already mapped to (if any)Methods in org.goplanit.gtfs.converter.zoning.handler that return types with arguments of type TransferZone Modifier and Type Method Description Function<String,TransferZone>
GtfsZoningHandlerData. createGtfsStopToTransferZoneMappingFunction()
Create mapping function while hiding how the mapping is storedFunction<String,TransferZone>
GtfsZoningHandlerTransferZoneData. createGtfsStopToTransferZonesMappingFunction()
Create mapping function while hiding how the mapping is storedMap<String,TransferZone>
GtfsZoningHandlerData. getPreExistingTransferZonesByExternalId()
Get all the existing transfer zones by their external idMap<String,TransferZone>
GtfsZoningHandlerTransferZoneData. getPreExistingTransferZonesByExternalId()
Get all the existing transfer zones by their external idMethods in org.goplanit.gtfs.converter.zoning.handler with parameters of type TransferZone Modifier and Type Method Description Set<Mode>
GtfsZoningHandlerData. getSupportedPtModesIn(TransferZone planitTransferZone, Set<Mode> modesFilter)
The pt services modes supported on the given transfer zoneSet<Mode>
GtfsZoningHandlerTransferZoneData. getSupportedPtModesIn(TransferZone planitTransferZone, Set<Mode> modesFilter)
The pt services modes supported on the given transfer zoneSet<DirectedConnectoid>
GtfsZoningHandlerData. getTransferZoneConnectoids(TransferZone transferZone)
Connectoids related to Pt activated modes available for this transfer zoneSet<DirectedConnectoid>
GtfsZoningHandlerTransferZoneData. getTransferZoneConnectoids(TransferZone transferZone)
Connectoids related to Pt activated modes available for this transfer zoneboolean
GtfsZoningHandlerData. hasMappedGtfsStop(TransferZone transferZone)
Check if transfer zone already has a mapped GTFS stopboolean
GtfsZoningHandlerTransferZoneData. hasMappedGtfsStop(TransferZone transferZone)
Check if transfer zone already has a mapped GTFS stopvoid
GtfsZoningHandlerData. registerMappedGtfsStop(GtfsStop gtfsStop, TransferZone transferZone)
Register transfer as mapped to a GTFS stop, index it by its GtfsStopId, and register the stops mode as supported on the PLANit transfer zone (if not already present)void
GtfsZoningHandlerTransferZoneData. registerMappedGtfsStop(GtfsStop gtfsStop, TransferZone transferZone)
Register transfer as mapped to a GTFS stop, index it by its GtfsStopId, and register the stops as mappedvoid
GtfsZoningHandlerData. registerTransferZoneToConnectoidModes(TransferZone transferZone, DirectedConnectoid directedConnectoid, Set<Mode> activatedPlanitModes)
Update registered and activated pt modes and their access information on transfer zonevoid
GtfsZoningHandlerTransferZoneData. registerTransferZoneToConnectoidModes(TransferZone transferZone, DirectedConnectoid directedConnectoid, Collection<Mode> activatedPlanitModes)
Update registered and activated pt modes and their access information on transfer zone -
Uses of TransferZone in org.goplanit.gtfs.util
Methods in org.goplanit.gtfs.util that return TransferZone Modifier and Type Method Description static TransferZone
GtfsTransferZoneHelper. createAndRegisterNewTransferZone(GtfsStop gtfsStop, org.locationtech.jts.geom.Point projectedGtfsStopLocation, TransferZoneType type, GtfsZoningHandlerData data)
Helper method to create and register a new transfer zone based on a GTFS stopMethods in org.goplanit.gtfs.util that return types with arguments of type TransferZone Modifier and Type Method Description static Collection<TransferZone>
GtfsTransferZoneHelper. findNearbyTransferZones(org.locationtech.jts.geom.Point location, double pointSearchRadiusMeters, GtfsZoningHandlerData data)
Find nearby zones based on a given search radiusstatic Pair<TransferZone,Double>
GtfsTransferZoneHelper. findTransferZoneStopLocationClosestTo(org.locationtech.jts.geom.Coordinate gtfsStopLocation, Collection<TransferZone> nearbyTransferZones, GtfsZoningHandlerData data)
find the transfer zone (underlying stop locations if any) closest to the provided GTFS stop location.Methods in org.goplanit.gtfs.util with parameters of type TransferZone Modifier and Type Method Description static Collection<DirectedConnectoid>
GtfsDirectedConnectoidHelper. createAndRegisterDirectedConnectoids(TransferZone transferZone, MacroscopicNetworkLayer networkLayer, Node accessNode, Iterable<? extends EdgeSegment> linkSegments, Set<Mode> allowedModes, GtfsZoningHandlerData data)
create directed connectoids, one per link segment provided, all related to the given transfer zone and with access modes provided.static String
GtfsTransferZoneHelper. getLastTransferZoneExternalId(TransferZone transferZone)
extract last entry from Transfer zone external id based on comma separationstatic boolean
GtfsTransferZoneHelper. isGtfsStopOnCorrectSideOfTransferZoneAccessLinkSegments(GtfsStop gtfsStop, Mode gtfsMode, TransferZone transferZone, GtfsZoningHandlerData data, boolean allConnectoidsMustMatch)
Verify based on driving direction and orientation of the access link segment(s) whether the GTFS stop is a viable match for the found transfer zone in terms of being on the correct side of the road.Method parameters in org.goplanit.gtfs.util with type arguments of type TransferZone Modifier and Type Method Description static Pair<TransferZone,Double>
GtfsTransferZoneHelper. findTransferZoneStopLocationClosestTo(org.locationtech.jts.geom.Coordinate gtfsStopLocation, Collection<TransferZone> nearbyTransferZones, GtfsZoningHandlerData data)
find the transfer zone (underlying stop locations if any) closest to the provided GTFS stop location. -
Uses of TransferZone in org.goplanit.osm.converter.zoning
Methods in org.goplanit.osm.converter.zoning that return TransferZone Modifier and Type Method Description TransferZone
OsmZoningReaderPlanitData. addTransferZoneByOsmId(de.topobyte.osm4j.core.model.iface.EntityType entityType, long osmEntityId, TransferZone transferZone)
add a incomplete transfer zone to the tracking containerTransferZone
OsmZoningReaderPlanitData. getCompleteTransferZoneByOsmId(de.topobyte.osm4j.core.model.iface.EntityType entityType, long osmEntityId)
Collect the complete transfer zone by entity type and osm idTransferZone
OsmZoningReaderPlanitData. getIncompleteTransferZoneByOsmId(de.topobyte.osm4j.core.model.iface.EntityType entityType, long osmEntityId)
Collect the potentially incomplete transfer zone by entity type and osm idTransferZone
OsmZoningReaderPlanitData. getTransferZoneByOsmId(de.topobyte.osm4j.core.model.iface.EntityType type, long osmId)
Find transfer zone either incomplete or complete by osm isMethods in org.goplanit.osm.converter.zoning that return types with arguments of type TransferZone Modifier and Type Method Description SortedSet<TransferZone>
OsmZoningReaderPlanitData. getTransferZonesByOsmId(de.topobyte.osm4j.core.model.iface.EntityType entityType)
Collect the transfer zones by entity type, unmodifiableCollection<TransferZone>
OsmZoningReaderPlanitData. getTransferZonesSpatially(org.locationtech.jts.geom.Envelope boundingBox)
Collect the transfer zones by spatial bounding box.Methods in org.goplanit.osm.converter.zoning with parameters of type TransferZone Modifier and Type Method Description void
OsmZoningReaderPlanitData. addConnectoidByTransferZone(TransferZone transferZone, DirectedConnectoid connectoid)
Register a known mapping from transfer zone to connectoidTransferZone
OsmZoningReaderPlanitData. addTransferZoneByOsmId(de.topobyte.osm4j.core.model.iface.EntityType entityType, long osmEntityId, TransferZone transferZone)
add a incomplete transfer zone to the tracking containerCollection<DirectedConnectoid>
OsmZoningReaderPlanitData. getConnectoidsByTransferZone(TransferZone transferZone)
Collect transfer zone's registered connectoidsInteger
OsmZoningReaderPlanitData. getTransferZoneVerticalLayerIndex(TransferZone transferZone)
Collect vertical layer index for this transfer zoneboolean
OsmZoningReaderPlanitData. hasConnectoids(TransferZone transferZone)
Verify if transfer zone has connectoids presentvoid
OsmZoningReaderPlanitData. registerTransferZoneVerticalLayerIndex(TransferZone transferZone, de.topobyte.osm4j.core.model.iface.OsmEntity osmEntity, Map<String,String> tags)
Given a transfer zone and the OSM entity it is based on (including tags), we register its vertical layer index if explicitly tagged. -
Uses of TransferZone in org.goplanit.osm.converter.zoning.handler.helper
Methods in org.goplanit.osm.converter.zoning.handler.helper that return TransferZone Modifier and Type Method Description TransferZone
TransferZoneHelper. createAndRegisterTransferZoneWithConnectoidsAtOsmNode(de.topobyte.osm4j.core.model.iface.OsmNode osmNode, Map<String,String> tags, String defaultOsmMode, TransferZoneType defaultTransferZoneType, PlanitJtsCrsUtils geoUtils)
Method that will attempt to create both a transfer zone and its connectoids at the location of the OSM node.TransferZone
TransferZoneHelper. createAndRegisterTransferZoneWithoutConnectoidsFindAccessModes(de.topobyte.osm4j.core.model.iface.OsmEntity osmEntity, Map<String,String> tags, TransferZoneType transferZoneType, String defaultOsmMode, PlanitJtsCrsUtils geoUtils)
Attempt to create a new transfer zone and register it, do not yet create connectoids for it.TransferZone
TransferZoneHelper. createAndRegisterTransferZoneWithoutConnectoidsSetAccessModes(de.topobyte.osm4j.core.model.iface.OsmEntity osmEntity, Map<String,String> tags, TransferZoneType transferZoneType, SortedSet<String> eligibleOsmModes, PlanitJtsCrsUtils geoUtils)
Attempt to create a new transfer zone and register it, do not create connectoids for it.Methods in org.goplanit.osm.converter.zoning.handler.helper that return types with arguments of type TransferZone Modifier and Type Method Description Set<TransferZone>
TransferZoneHelper. filterModeCompatibleTransferZones(Collection<String> eligibleOsmModes, Collection<TransferZone> potentialTransferZones, boolean allowPseudoModeMatches, boolean allowModelessTransferZoneMatches)
Find all transfer zones with at least one compatible mode (and PLANit mode mapped) based on the passed in reference osm modes In case no eligible modes are provided (null), we allow any transfer zone with at least one valid mapped modeCollection<TransferZone>
TransferZoneHelper. findTransferZonesForStopPosition(de.topobyte.osm4j.core.model.iface.OsmNode osmNode, Map<String,String> tags, SortedSet<String> eligibleOsmModes, boolean suppressLogging)
Identical to the one with transfer zone group parameter, only here no stop_position is not part of transfer zone group and therefore we only can find matches spatiallyCollection<TransferZone>
TransferZoneHelper. findTransferZonesForStopPosition(de.topobyte.osm4j.core.model.iface.OsmNode osmNode, Map<String,String> tags, SortedSet<String> eligibleOsmModes, TransferZoneGroup transferZoneGroup, boolean suppressLogging)
Find the transfer zone(s) for a given stop_position, either the user overwritten mapping, or conditioned on mode,reference/name/spatially, or just the closest one in absence of eligible modes.Methods in org.goplanit.osm.converter.zoning.handler.helper with parameters of type TransferZone Modifier and Type Method Description Collection<DirectedConnectoid>
OsmConnectoidHelper. createAndRegisterDirectedConnectoidsOnTopOfTransferZone(TransferZone transferZone, MacroscopicNetworkLayer networkLayer, PredefinedModeType planitModeType, PlanitJtsCrsUtils geoUtils)
Create directed connectoids for transfer zones that reside on OSM ways.boolean
OsmConnectoidHelper. extractDirectedConnectoidsForMode(de.topobyte.osm4j.core.model.iface.OsmNode osmNode, boolean locationIsKnownOsmStopPosition, TransferZone transferZone, PredefinedModeType planitModeType, boolean suppressLogging, PlanitJtsCrsUtils geoUtils)
boolean
OsmConnectoidHelper. extractDirectedConnectoidsForMode(org.locationtech.jts.geom.Point location, boolean locationIsKnownOsmStopPosition, TransferZone transferZone, PredefinedModeType planitModeType, boolean suppressLogging, PlanitJtsCrsUtils geoUtils)
create and/or update directed connectoids for the given mode and layer based on the passed in location where the connectoids access link segments are extracted for.void
OsmConnectoidHelper. extractDirectedConnectoidsForStandAloneTransferZoneByPlanitLink(long osmWaitingAreaId, org.locationtech.jts.geom.Geometry waitingAreaGeometry, MacroscopicLink accessLink, TransferZone transferZone, PredefinedModeType planitAccessModeType, double maxAllowedStopToTransferZoneDistanceMeters, MacroscopicNetworkLayer networkLayer, boolean suppressLogging)
create connectoids not based on OSM node location but based on auto-generated geographic location on the provided link's link segments by finding either a close enough existing coordinate (OSM node), or if not close enough a newly created coordinate at the appropriate position.Collection<MacroscopicLink>
TransferZoneHelper. filterVerticalLayerCompatibleLinks(TransferZone transferZone, Collection<MacroscopicLink> linksToFilter, boolean assumeDefaultLayerForZoneIfAbsent)
Filter (retain) only the links that are vertical layer index compatible, i.e., have the same vertical layer index (or both adopt the default).org.locationtech.jts.geom.Point
OsmConnectoidHelper. findConnectoidLocationForStandAloneTransferZoneOnLink(TransferZone transferZone, MacroscopicLink accessLink, PredefinedModeType planitModeType, double maxAllowedDistanceMeters)
find a suitable connectoid location on the given link based on the constraints that it must be able to reside on a link segment that is in the correct relative position to the transfer zone and supports the access mode on at least one of the designated link segment(s) that is eligible (if any).Method parameters in org.goplanit.osm.converter.zoning.handler.helper with type arguments of type TransferZone Modifier and Type Method Description boolean
OsmConnectoidHelper. extractDirectedConnectoids(de.topobyte.osm4j.core.model.iface.OsmNode osmNode, boolean locationIsKnownOsmStopPosition, Collection<TransferZone> transferZones, Collection<PredefinedModeType> planitModeTypes, TransferZoneGroup transferZoneGroup, boolean suppressLogging)
create and/or update directed connectoids for the transfer zones and mode combinations when eligible, based on the passed in OSM node where the connectoids access link segments are extracted from -
Uses of TransferZone in org.goplanit.osm.util
Methods in org.goplanit.osm.util that return TransferZone Modifier and Type Method Description static TransferZone
PlanitTransferZoneUtils. findTransferZoneClosestByTransferGroup(de.topobyte.osm4j.core.model.iface.OsmEntity osmEntity, Collection<? extends TransferZoneGroup> transferZoneGroups, Map<Long,de.topobyte.osm4j.core.model.iface.OsmNode> osmNodes, boolean suppressLogging, PlanitJtsCrsUtils geoUtils)
Find the zone (within any of the transfer zone groups) closest to the passed in OSM EntityMethods in org.goplanit.osm.util with parameters of type TransferZone Modifier and Type Method Description static SortedSet<String>
PlanitTransferZoneUtils. getRegisteredOsmModesForTransferZone(TransferZone transferZone)
Collect any prior registered eligible OSM modes on a PLANit transfer zone (unmodifiable)static String
PlanitTransferZoneUtils. getTransferZoneStationName(TransferZone transferZone)
Collect the station name for a transfer zone (if any)static boolean
PlanitTransferZoneUtils. isTransferZoneAtLocation(TransferZone transferZone, org.locationtech.jts.geom.Point location)
Verify if the geometry of the transfer zone equates to the provided locationstatic void
PlanitTransferZoneUtils. registerOsmModesOnTransferZone(TransferZone transferZone, SortedSet<String> eligibleOsmModes)
While PLANit does not require access modes on transfer zones because it is handled by connectoids, OSM stop_positions (connectoids) might lack the required tagging to identify their mode access in which case we revert to the related transfer zone to deduce it.static void
PlanitTransferZoneUtils. updateTransferZoneStationName(TransferZone transferZone, Map<String,String> tags)
process an osm entity that is classified as a (train) station. -
Uses of TransferZone in org.goplanit.utils.zoning
Fields in org.goplanit.utils.zoning with type parameters of type TransferZone Modifier and Type Field Description static Class<TransferZone>
TransferZone. TRANSFER_ZONE_ID_CLASS
the class to use for the id generationMethods in org.goplanit.utils.zoning with type parameters of type TransferZone Modifier and Type Method Description static <G extends TransferZoneGroup,Z extends TransferZone>
voidTransferZoneGroupUtils. updateTransferZoneMapping(Iterable<G> transferZoneGroups, Function<Z,Z> zoneToZoneMapping, boolean removeMissingMappings)
Update the transfer zones of all transfer zone groups based on the mapping provided (if any)Methods in org.goplanit.utils.zoning that return TransferZone Modifier and Type Method Description TransferZone
TransferZoneGroup. addTransferZone(TransferZone transferZone)
Add a transferZone and also register this group on this transfer zone at the same timeTransferZone
TransferZoneFactory. createNew()
Create a new transfer zone without registeringdefault TransferZone
TransferZoneFactory. createNew(TransferZoneType type, boolean syncXmlIdToId)
Create a new transfer zone without registering and set its XML id and typeTransferZone
TransferZone. deepClone()
An id entity should always support a deep copy, i.e., all "owned" members will be deep copied when a clone of this instance is created via this call.default TransferZone
TransferZoneGroup. getFirst()
Collect first transfer zone that would be returned by the iteratorTransferZone
TransferZoneFactory. registerNew()
Create and register new transfer zoneTransferZone
TransferZoneFactory. registerNew(TransferZoneType type, boolean syncXmlIdToId)
Register a new transfer zone without registering and set its XML id and typeTransferZone
TransferZoneGroup. removeTransferZone(TransferZone transferZone)
remove a transfer zone from the group, and also remove the reference on the transfer zone at the same timeTransferZone
TransferZone. shallowClone()
Create a shallow copy of this entityMethods in org.goplanit.utils.zoning that return types with arguments of type TransferZone Modifier and Type Method Description default Class<TransferZone>
TransferZone. getTransferZoneIdClass()
Collection<TransferZone>
TransferZoneGroup. getTransferZones()
create a view of the registered transfer zones.Methods in org.goplanit.utils.zoning with parameters of type TransferZone Modifier and Type Method Description TransferZone
TransferZoneGroup. addTransferZone(TransferZone transferZone)
Add a transferZone and also register this group on this transfer zone at the same timeboolean
TransferZoneGroup. hasTransferZone(TransferZone transferZone)
Verify if transfer zone is presentTransferZone
TransferZoneGroup. removeTransferZone(TransferZone transferZone)
remove a transfer zone from the group, and also remove the reference on the transfer zone at the same timeMethod parameters in org.goplanit.utils.zoning with type arguments of type TransferZone Modifier and Type Method Description default void
TransferZoneGroup. addAllTransferZones(Collection<TransferZone> transferZonesToAdd)
Add all transferZones providedTransferZones
TransferZones. deepCloneWithMapping(BiConsumer<TransferZone,TransferZone> mapper)
Deep clone implementation where the mapping for its internal copies is captured by the provided mapperTransferZones
TransferZones. deepCloneWithMapping(BiConsumer<TransferZone,TransferZone> mapper)
Deep clone implementation where the mapping for its internal copies is captured by the provided mapper -
Uses of TransferZone in org.goplanit.zoning
Classes in org.goplanit.zoning that implement TransferZone Modifier and Type Class Description class
TransferZoneImpl
A transfer zoneFields in org.goplanit.zoning with type parameters of type TransferZone Modifier and Type Field Description protected Map<Long,TransferZone>
TransferZoneGroupImpl. transferZoneMap
Map storing all the transfer zones in the groupMethods in org.goplanit.zoning that return TransferZone Modifier and Type Method Description TransferZone
TransferZoneGroupImpl. addTransferZone(TransferZone transferZone)
Add a transferZone and also register this group on this transfer zone at the same timeTransferZone
TransferZoneFactoryImpl. createNew()
Create a new transfer zone without registeringTransferZone
TransferZoneFactoryImpl. registerNew()
Create and register new transfer zoneTransferZone
TransferZoneFactoryImpl. registerNew(TransferZoneType type, boolean syncXmlIdToId)
Register a new transfer zone without registering and set its XML id and typeTransferZone
TransferZoneGroupImpl. removeTransferZone(TransferZone transferZone)
remove a transfer zone from the group, and also remove the reference on the transfer zone at the same timeMethods in org.goplanit.zoning that return types with arguments of type TransferZone Modifier and Type Method Description Collection<TransferZone>
TransferZoneGroupImpl. getTransferZones()
create a view of the registered transfer zones.Iterator<TransferZone>
TransferZoneGroupImpl. iterator()
Methods in org.goplanit.zoning with parameters of type TransferZone Modifier and Type Method Description TransferZone
TransferZoneGroupImpl. addTransferZone(TransferZone transferZone)
Add a transferZone and also register this group on this transfer zone at the same timeboolean
TransferZoneGroupImpl. hasTransferZone(TransferZone transferZone)
Verify if transfer zone is presentTransferZone
TransferZoneGroupImpl. removeTransferZone(TransferZone transferZone)
remove a transfer zone from the group, and also remove the reference on the transfer zone at the same timeMethod parameters in org.goplanit.zoning with type arguments of type TransferZone Modifier and Type Method Description TransferZonesImpl
TransferZonesImpl. deepCloneWithMapping(BiConsumer<TransferZone,TransferZone> mapper)
Deep clone implementation where the mapping for its internal copies is captured by the provided mapperTransferZonesImpl
TransferZonesImpl. deepCloneWithMapping(BiConsumer<TransferZone,TransferZone> mapper)
Deep clone implementation where the mapping for its internal copies is captured by the provided mapperConstructor parameters in org.goplanit.zoning with type arguments of type TransferZone Constructor Description TransferZonesImpl(TransferZonesImpl other, boolean deepCopy, BiConsumer<TransferZone,TransferZone> mapper)
Copy constructor, also creates new factory with this as its underlying containerTransferZonesImpl(TransferZonesImpl other, boolean deepCopy, BiConsumer<TransferZone,TransferZone> mapper)
Copy constructor, also creates new factory with this as its underlying container
-