I
- infrastructure type, e.g. LinkType or LaneType, or water way typepublic class GTUCompatibility<I extends HierarchicalType<I> & Compatibility<GTUType,I>> extends Object implements Compatibility<GTUType,I>
Copyright (c) 2013-2018 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
Constructor and Description |
---|
GTUCompatibility(GTUCompatibility<I> original)
Construct a new Compatibility and deep copy the allowed and forbidden sets for both directions from an existing
Compatibility.
|
GTUCompatibility(I infrastructure)
Construct a new Compatibility object with empty allowed and forbidden sets for both directions.
|
Modifier and Type | Method and Description |
---|---|
GTUCompatibility<I> |
addAllowedGTUType(GTUType gtuType,
LongitudinalDirectionality directionality)
Add a GTUType to this GTUCompatibility.
|
boolean |
equals(Object obj) |
LongitudinalDirectionality |
getDirectionality(GTUType gtuType,
boolean tryParentsOfGTUType)
Retrieve the allowed driving directions for a GTUType.
|
int |
hashCode() |
Boolean |
isCompatible(GTUType gtuType,
GTUDirectionality directionality)
Determine if this Compatibility allows or denies a particular GTUType.
|
void |
isCompatibleWith(Compatibility<GTUType,?> parentCompatibility,
boolean tryParentsOfGTUType)
Check if a GTUCompatibility does not allow things that the GTUCompatibility of a parent object disallows, e.g.
|
GTUCompatibility<I> |
removeAllowedGTUType(GTUType gtuType,
LongitudinalDirectionality directionality)
Remove a GTUType from the allowed set of this Compatibility.
|
String |
toString() |
public GTUCompatibility(I infrastructure)
infrastructure
- I; the infrastructure type, e.g. LinkType, LaneType, SensorType.public GTUCompatibility(GTUCompatibility<I> original)
original
- Compatibility; the Compatibility from which the allowed and forbidden sets for both directions will be
copiedpublic final Boolean isCompatible(GTUType gtuType, GTUDirectionality directionality)
isCompatible
in interface Compatibility<GTUType,I extends HierarchicalType<I> & Compatibility<GTUType,I>>
gtuType
- GTUType; the GTUType to checkdirectionality
- GTUDirectionality; the GTUDirectionality in which the GTUType wants to movepublic final GTUCompatibility<I> addAllowedGTUType(GTUType gtuType, LongitudinalDirectionality directionality) throws NullPointerException
gtuType
- GTUType; the GTUType to add to the allowed set of this Compatibilitydirectionality
- LongitudinalDirectionality; directionality for which the GTUType must be addedNullPointerException
- when directionality
is nullpublic final GTUCompatibility<I> removeAllowedGTUType(GTUType gtuType, LongitudinalDirectionality directionality)
gtuType
- GTUType; the GTUType to remove from the allowed setdirectionality
- LongitudinalDirectionality; the longitudinal directionality for which the GTUType must be removedpublic final void isCompatibleWith(Compatibility<GTUType,?> parentCompatibility, boolean tryParentsOfGTUType) throws GTUException
parentCompatibility
- GTUCompatibility<?>; the GTUCompatibility of the parent objecttryParentsOfGTUType
- whether to try parent GTU typesGTUException
- if a conflict is foundpublic final LongitudinalDirectionality getDirectionality(GTUType gtuType, boolean tryParentsOfGTUType)
tryParentsOfGTUType
. tryParentsOfGTUType
is false, the value null is returned. If true; the parent of the GTUType is used and
the search is repeated, etc. If none of the parents of the GTUType yields a result, this method returns
LongitudinalDirectionality.DIR_NONE
.getDirectionality
in interface Compatibility<GTUType,I extends HierarchicalType<I> & Compatibility<GTUType,I>>
gtuType
- GTUType; type of the GTUtryParentsOfGTUType
- boolean; if true; the parents of the GTUType are tried if no match was found for the given
GTUTypeLongitudinalDirectionality.DIR_NONE
if neither the GTUType or any of its parents specifies a
directionalityCopyright © 2014–2018 Delft University of Technology. All rights reserved.