Class LinkType

    • Constructor Detail

      • LinkType

        public LinkType​(String id,
                        LinkType parent,
                        GTUCompatibility<LinkType> compatibility,
                        Network network)
        Create a new Link type with compatibility set.
        Parameters:
        id - String; the id of the lane type (may not be null)
        parent - LinkType; the parent type (may be null)
        compatibility - the collection of compatible GTUTypes for this LinkType; can be null (resulting in a LinkType that is inaccessible to all GTU types). This constructor makes a deep copy of the compatibility.
        network - Network; The network to which the LinkType belongs
    • Method Detail

      • isOfType

        public boolean isOfType​(LinkType.DEFAULTS type)
        Whether this, or any of the parent types, equals the given type.
        Parameters:
        type - DEFAULTS; type
        Returns:
        whether this, or any of the parent types, equals the given type
      • isCompatible

        public Boolean isCompatible​(GTUType gtuType,
                                    GTUDirectionality directionality)
        Test if a GTUType can travel over the infrastructure.
        Specified by:
        isCompatible in interface Compatibility<GTUType,​LinkType>
        Parameters:
        gtuType - G; the type of the GTU
        directionality - GTUDirectionality; the direction of the GTU with respect to the design direction of the infrastructure
        Returns:
        boolean; true if the GTU can travel over the infrastructure in the given direction; false if the GTU can not travel over the infrastructure in the given direction; null if the decision should be made by calling isCompatible on a higher level in the infrastructure hierarchy
      • getCompatibility

        public GTUCompatibility<LinkType> getCompatibility()
        This method won't work correctly in a ReverseLinkType; it should only be used to clone a network; nowhere else.
        Returns:
        GTUCompatibility<LinkType>; the GTU compatibility for this LinkType
      • reverse

        public final LinkType reverse()
        Returns a link type with directionality reversed.
        Returns:
        LinkType; link type with directionality reversed
      • isNone

        public final boolean isNone()
        Returns:
        whether this is NONE
      • isRoad

        public final boolean isRoad()
        Returns:
        whether this is ROAD
      • isWaterWay

        public final boolean isWaterWay()
        Returns:
        whether this is WATER_WAY
      • isRailWay

        public final boolean isRailWay()
        Returns:
        whether this is RAIL_WAY
      • isConnector

        public final boolean isConnector()
        Returns:
        whether this is CONNECTOR
      • getNetwork

        public Network getNetwork()
        Returns:
        the network to which the LinkType belongs
      • getDirectionality

        public LongitudinalDirectionality getDirectionality​(GTUType gtuType,
                                                            boolean tryParentsOfGTUType)
        Retrieve the allowed driving directions for a GTUType. If there is no match for the specified GTUType in this infrastructure type, this method will recursively check the parent types of the infrastructure element until either a match is found or the root parental type of the infrastructure is reached. When the latter happens without finding a match, what happens next depends on the value of tryParentsOfGTUType.
        If 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.
        Specified by:
        getDirectionality in interface Compatibility<GTUType,​LinkType>
        Parameters:
        gtuType - G; type of the GTU
        tryParentsOfGTUType - boolean; if true; the parents of the GTUType are tried if no match was found for the given GTUType
        Returns:
        LongitudinalDirectionality; the driving directions for the GTUType, or LongitudinalDirectionality.DIR_NONE if neither the GTUType or any of its parents specifies a directionality