Class GraphicNode

All Implemented Interfaces:
Iterable<Edge>, Element, Node

public class GraphicNode
extends GraphicElement
implements Node
Graphical node.

A graphic node defines a position (x,y,z), a string label, and a style from the style sheet.

See Also:
GraphicGraph
  • Field Details

    • x

      public double x
      The position of the node. In graph units.
    • y

      public double y
      The position of the node. In graph units.
    • z

      public double z
      The position of the node. In graph units.
    • positionned

      public boolean positionned
  • Constructor Details

  • Method Details

    • getSelectorType

      public Selector.Type getSelectorType()
      Description copied from class: GraphicElement
      Type of selector for the graphic element (Node, Edge, Sprite ?).
      Specified by:
      getSelectorType in class GraphicElement
    • getX

      public double getX()
      Description copied from class: GraphicElement
      Abscissa of the element, always in GU (graph units). For edges this is the X of the "from" node.
      Specified by:
      getX in class GraphicElement
    • getY

      public double getY()
      Description copied from class: GraphicElement
      Ordinate of the element, always in GU (graph units). For edges this is the Y of the "from" node.
      Specified by:
      getY in class GraphicElement
    • getZ

      public double getZ()
      Description copied from class: GraphicElement
      Depth of the element, always in GU (graph units). For edges this is the Z of the "from" node.
      Specified by:
      getZ in class GraphicElement
    • move

      public void move​(double x, double y, double z)
      Description copied from class: GraphicElement
      Try to force the element to move at the give location in graph units (GU). For edges, this may move the two attached nodes.
      Specified by:
      move in class GraphicElement
      Parameters:
      x - The new X.
      y - The new Y.
      z - the new Z.
    • getBreadthFirstIterator

      public Iterator<Node> getBreadthFirstIterator()
      Not implemented.
      Specified by:
      getBreadthFirstIterator in interface Node
      Returns:
      An iterator able to explore the graph in a breadth first way starting at this node.
    • getBreadthFirstIterator

      public Iterator<Node> getBreadthFirstIterator​(boolean directed)
      Not implemented.
      Specified by:
      getBreadthFirstIterator in interface Node
      Parameters:
      directed - If false, the iterator will ignore edge orientation (the default is "True").
      Returns:
      An iterator able to explore the graph in a breadth first way starting at this node.
    • getDepthFirstIterator

      public Iterator<Node> getDepthFirstIterator()
      Not implemented.
      Specified by:
      getDepthFirstIterator in interface Node
      Returns:
      An iterator able to explore the graph in a depth first way starting at this node.
    • getDepthFirstIterator

      public Iterator<Node> getDepthFirstIterator​(boolean directed)
      Not implemented.
      Specified by:
      getDepthFirstIterator in interface Node
      Parameters:
      directed - If false, the iterator will ignore edge orientation (the default is "True").
      Returns:
      An iterator able to explore the graph in a depth first way starting at this node.
    • getDegree

      public int getDegree()
      Description copied from interface: Node
      Total number of relations with other nodes or this node.
      Specified by:
      getDegree in interface Node
      Returns:
      The number of edges/relations/links.
    • getEdge

      public Edge getEdge​(int i)
      Description copied from interface: Node
      I-th edge. Edges are stored in no given order.

      However this method allows to iterate very quickly on all edges, or to choose a given edge with direct access.

      This method is implicitly generic and return something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdge(i);
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdge in interface Node
      Parameters:
      i - Index of the edge.
      Returns:
      The i-th edge.
    • getEdgeBetween

      public Edge getEdgeBetween​(String id)
      Description copied from interface: Node
      Retrieve an edge between this node and the node 'id', if it exits.

      This method selects directed or undirected edges. If the edge is directed, its direction is not important and leaving or entering edges will be selected.

      This method is implicitly generic and return something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdgeBetween("...");
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdgeBetween in interface Node
      Parameters:
      id - Identifier of the opposite node.
      Returns:
      Edge between node 'id' and this node if it exists, else null.
    • getEdgeFrom

      public Edge getEdgeFrom​(String id)
      Description copied from interface: Node
      Retrieve an edge that leaves node 'id' toward this node.

      This method selects only edges leaving node 'id' an pointing at this node (this also selects undirected edges).

      This method is implicitly generic and return something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdgeFrom("...");
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdgeFrom in interface Node
      Parameters:
      id - Identifier of the source node.
      Returns:
      Directed edge going from node 'id' to this node, or undirected edge if it exists, else null.
    • edges

      public Stream<Edge> edges()
      Description copied from interface: Node
      Stream over all entering and leaving edges.
      Specified by:
      edges in interface Node
      Returns:
      A stream over all directed and undirected edges, leaving or entering.
    • iterator

      public Iterator<Edge> iterator()
      Specified by:
      iterator in interface Iterable<Edge>
      Specified by:
      iterator in interface Node
    • getEdgeToward

      public Edge getEdgeToward​(String id)
      Description copied from interface: Node
      Retrieve an edge that leaves this node toward 'id'.

      This method selects only edges leaving this node an pointing at node 'id' (this also selects undirected edges).

      This method is implicitly generic and return something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdgeToward("...");
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdgeToward in interface Node
      Parameters:
      id - Identifier of the target node.
      Returns:
      Directed edge going from this node to 'id', or undirected edge if it exists, else null.
    • getGraph

      public Graph getGraph()
      Description copied from interface: Node
      Parent graph. Some elements are not able to give their parent graph.
      Specified by:
      getGraph in interface Node
      Returns:
      The graph containing this node or null if unknown.
    • getGraphName

      public String getGraphName()
    • getHost

      public String getHost()
    • getInDegree

      public int getInDegree()
      Description copied from interface: Node
      Number of entering edges.
      Specified by:
      getInDegree in interface Node
      Returns:
      the count of edges that only enter this node plus all undirected edges.
    • getOutDegree

      public int getOutDegree()
      Description copied from interface: Node
      Number of leaving edges.
      Specified by:
      getOutDegree in interface Node
      Returns:
      the count of edges that only leave this node plus all undirected edges.
    • hasEdgeBetween

      public boolean hasEdgeBetween​(String id)
      Description copied from interface: Node
      True if an edge exists between this node and node 'id'.
      Specified by:
      hasEdgeBetween in interface Node
      Parameters:
      id - Identifier of another node.
      Returns:
      True if a edge exists between this node and node 'id'.
    • hasEdgeFrom

      public boolean hasEdgeFrom​(String id)
      Description copied from interface: Node
      True if an edge enters this node from node 'id'.
      Specified by:
      hasEdgeFrom in interface Node
      Parameters:
      id - Identifier of the source node.
      Returns:
      True if a directed edge goes from this node to 'id' or if an undirected edge exists.
    • hasEdgeToward

      public boolean hasEdgeToward​(String id)
      Description copied from interface: Node
      True if an edge leaves this node toward node 'id'.
      Specified by:
      hasEdgeToward in interface Node
      Parameters:
      id - Identifier of the target node.
      Returns:
      True if a directed edge goes from this node to 'id' or if an undirected edge exists.
    • isDistributed

      public boolean isDistributed()
    • setGraph

      public void setGraph​(Graph graph)
    • setGraphName

      public void setGraphName​(String newHost)
    • setHost

      public void setHost​(String newHost)
    • getEdgeBetween

      public Edge getEdgeBetween​(Node Node)
      Description copied from interface: Node
      Retrieves an edge between this node and and another node if one exists.

      This method selects directed or undirected edges. If the edge is directed, its direction is not important and leaving or entering edges will be selected.

      This method is implicitly generic and return something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdgeBetween(...);
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdgeBetween in interface Node
      Parameters:
      Node - The opposite node.
      Returns:
      Edge between this node and the parameter node if it exists, else null.
    • getEdgeBetween

      public Edge getEdgeBetween​(int index)
      Description copied from interface: Node
      Retrieves an edge between this node and the node with index i if one exists.

      This method selects directed or undirected edges. If the edge is directed, its direction is not important and leaving or entering edges will be selected.

      This method is implicitly generic and return something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdgeBetween(...);
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdgeBetween in interface Node
      Parameters:
      index - The index of the opposite node.
      Returns:
      Edge between node with index i and this node if it exists, else null.
    • getEdgeFrom

      public Edge getEdgeFrom​(Node Node)
      Description copied from interface: Node
      Retrieves an edge that leaves given node toward this node.

      This method selects only edges leaving the other node an pointing at this node (this also selects undirected edges).

      This method is implicitly generic and returns something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdgeFrom(...);
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdgeFrom in interface Node
      Parameters:
      Node - The source node.
      Returns:
      Directed edge going from the parameter node to this node, or undirected edge if it exists, else null.
    • getEdgeFrom

      public Edge getEdgeFrom​(int index)
      Description copied from interface: Node
      Retrieves an edge that leaves node with given index toward this node.

      This method selects only edges leaving the other node an pointing at this node (this also selects undirected edges).

      This method is implicitly generic and returns something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdgeFrom("...");
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdgeFrom in interface Node
      Parameters:
      index - Index of the source node.
      Returns:
      Directed edge going from the parameter node to this node, or undirected edge if it exists, else null.
    • getEdgeToward

      public Edge getEdgeToward​(Node Node)
      Description copied from interface: Node
      Retrieves an edge that leaves this node toward another node.

      This method selects only edges leaving this node an pointing at the parameter node (this also selects undirected edges).

      This method is implicitly generic and returns something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdgeToward(...);
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdgeToward in interface Node
      Parameters:
      Node - The target node.
      Returns:
      Directed edge going from this node to the parameter node, or undirected edge if it exists, else null.
    • getEdgeToward

      public Edge getEdgeToward​(int index)
      Description copied from interface: Node
      Retrieves an edge that leaves this node toward the node with given index.

      This method selects only edges leaving this node an pointing at the parameter node (this also selects undirected edges).

      This method is implicitly generic and returns something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEdgeToward(...);
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEdgeToward in interface Node
      Parameters:
      index - Index of the target node.
      Returns:
      Directed edge going from this node to the parameter node, or undirected edge if it exists, else null.
    • getEnteringEdge

      public Edge getEnteringEdge​(int i)
      Description copied from interface: Node
      I-th entering edge. Edges are stored in no given order.

      However this method allows to iterate very quickly on all entering edges, or to choose a given entering edge with direct access.

      This method is implicitly generic and return something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getEnteringEdge(i);
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getEnteringEdge in interface Node
      Parameters:
      i - Index of the edge.
      Returns:
      The i-th entering edge.
    • getLeavingEdge

      public Edge getLeavingEdge​(int i)
      Description copied from interface: Node
      I-th leaving edge. Edges are stored in no given order.

      However this method allows to iterate very quickly on all leaving edges, or to choose a given leaving edge with direct access.

      This method is implicitly generic and return something which extends Edge. The return type is the one of the left part of the assignment. For example, in the following call :

       ExtendedEdge e = node.getLeavingEdge(i);
       
      the method will return an ExtendedEdge. If no left part exists, method will just return an Edge.

      Specified by:
      getLeavingEdge in interface Node
      Parameters:
      i - Index of the edge.
      Returns:
      The i-th leaving edge.