Class EdgeImpl

    • Field Detail

      • externalId

        protected String externalId
        External Id of the physical link
      • xmlId

        protected String xmlId
        Xml Id of the physical link
      • lineGeometry

        protected org.locationtech.jts.geom.LineString lineGeometry
        The line geometry of this link if set
      • inputProperties

        protected Map<String,​Object> inputProperties
        Generic input property storage
      • name

        protected String name
        Name of the edge
      • lengthInKm

        protected double lengthInKm
        Length of edge
    • Constructor Detail

      • EdgeImpl

        protected EdgeImpl​(IdGroupingToken groupId,
                           Vertex vertexA,
                           Vertex vertexB,
                           double lengthKm)
                    throws PlanItException
        Constructor which injects link lengths directly
        Parameters:
        groupId - , contiguous id generation within this group for instances of this class
        vertexA - first vertex in the link
        vertexB - second vertex in the link
        lengthKm - length of the link
        Throws:
        PlanItException - thrown if there is an error
      • EdgeImpl

        protected EdgeImpl​(EdgeImpl edgeImpl)
        Copy constructor, input properties are not copied because shallow copy is considered dangerous at this point
        Parameters:
        edgeImpl - to copy
    • Method Detail

      • generateEdgeId

        protected static long generateEdgeId​(IdGroupingToken groupId)
        Generate edge id
        Parameters:
        groupId - , contiguous id generation within this group for instances of this class
        Returns:
        id of this Edge object
      • setId

        protected void setId​(long id)
        set id on this edge
        Parameters:
        id - to set
      • setVertexB

        protected void setVertexB​(Vertex vertexB)
        set vertex B
        Parameters:
        vertexB - to set
      • setVertexA

        protected void setVertexA​(Vertex vertexA)
        set vertex A
        Parameters:
        vertexA - to set
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • setExternalId

        public void setExternalId​(String externalId)
        set the external id
        Specified by:
        setExternalId in interface ExternalIdable
        Parameters:
        externalId - to set
      • getXmlId

        public String getXmlId()
        the id exposed to users as the "normal" id in the PLANit native xml format
        Specified by:
        getXmlId in interface ExternalIdable
        Returns:
        xmlId
      • setXmlId

        public void setXmlId​(String xmlId)
        set the external id
        Specified by:
        setXmlId in interface ExternalIdable
        Parameters:
        xmlId - to set
      • hasExternalId

        public boolean hasExternalId()
        check if external id is available or not
        Specified by:
        hasExternalId in interface ExternalIdable
        Returns:
        true when nont null, false otherwise
      • getGeometry

        public org.locationtech.jts.geom.LineString getGeometry()
        Collect the geometry of this line
        Specified by:
        getGeometry in interface Edge
        Returns:
        lineString
      • setGeometry

        public void setGeometry​(org.locationtech.jts.geom.LineString lineString)
        set the geometry of this link as a line string
        Specified by:
        setGeometry in interface Edge
        Parameters:
        lineString - to set
      • removeVertex

        public boolean removeVertex​(Vertex vertex)
        Remove vertex from edge
        Specified by:
        removeVertex in interface Edge
        Parameters:
        vertex - to remove
        Returns:
        true when successful false otherwise
      • removeVertexB

        public boolean removeVertexB()
        remove vertex B by setting it to null
        Returns:
        true
      • removeVertexA

        public boolean removeVertexA()
        remove vertex A by setting it to null
        Returns:
        true
      • addInputProperty

        public void addInputProperty​(String key,
                                     Object value)
        Add a property from the original input that is not part of the readily available link members
        Specified by:
        addInputProperty in interface Edge
        Parameters:
        key - (name) of input property
        value - of input property
      • getInputProperty

        public Object getInputProperty​(String key)
        Get input property by its key
        Specified by:
        getInputProperty in interface Edge
        Parameters:
        key - of input property
        Returns:
        value retrieved value of input property
      • getLengthKm

        public double getLengthKm()
        Return length of this edge in km
        Specified by:
        getLengthKm in interface Edge
        Returns:
        length of this edge in km
      • setLengthKm

        public void setLengthKm​(double lengthInKm)
        set length of this edge in km
        Specified by:
        setLengthKm in interface Edge
        Parameters:
        lengthInKm - of this edge in km
      • getId

        public long getId()
        collect id of the entity
        Specified by:
        getId in interface Idable
        Returns:
        id
      • getVertexA

        public Vertex getVertexA()
        Vertex A of the edge
        Specified by:
        getVertexA in interface Edge
        Returns:
        vertex A
      • getVertexB

        public Vertex getVertexB()
        Vertex B of the edge
        Specified by:
        getVertexB in interface Edge
        Returns:
        vertex B
      • getName

        public String getName()
        get the name of the edge
        Specified by:
        getName in interface Edge
        Returns:
        name
      • setName

        public void setName​(String name)
        set the name of the edge
        Specified by:
        setName in interface Edge
        Parameters:
        name - to set
      • replace

        public boolean replace​(Vertex vertexToReplace,
                               Vertex vertexToReplaceWith)
                        throws PlanItException
        Replace one of the vertices of the link
        Specified by:
        replace in interface Edge
        Parameters:
        vertexToReplace - the vertex to replace
        vertexToReplaceWith - the vertex to replace with
        Returns:
        true when replaced, false otherwise
        Throws:
        PlanItException - thrown if error
      • clone

        public EdgeImpl clone()
        Clone the edge as is, all shared members are shallow copied, fully owned members are deep copied
        Specified by:
        clone in interface Edge
        Overrides:
        clone in class Object
        Returns:
        copy of this edge
      • validate

        public boolean validate()
        validate the contents of this edge
        Specified by:
        validate in interface Edge
        Returns:
        true when valid, false otherwise