Class SimpleMDGraph<N,​E>

java.lang.Object
xyz.cofe.collection.graph.SimpleMDGraph<N,​E>
Type Parameters:
N - Тип вершины графа
E - Тип ребра между вершинами
All Implemented Interfaces:
DirectedGraph, Graph<N,​E>, MultiGraph<N,​E>, MultipleDirectedGraph<N,​E>
Direct Known Subclasses:
SimpleMDGraphSender

public class SimpleMDGraph<N,​E>
extends java.lang.Object
implements MultipleDirectedGraph<N,​E>
Направленый мультграф граф
Author:
GoCha
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.util.Collection<Edge<N,​E>> edges
    Ребра
    protected GraphFactory<N,​E> factory
    Фабрика графа
    protected java.util.Collection<N> nodes
    Вершины
    protected java.lang.Object sync
    Объект для синхронизации
  • Constructor Summary

    Constructors 
    Constructor Description
    SimpleMDGraph()
    Конструктор
    SimpleMDGraph​(GraphFactory<N,​E> factory)
    Конструктор
  • Method Summary

    Modifier and Type Method Description
    void add​(N node)
    Добавляет вершину к графу
    protected void add​(Edge<N,​E> es)
    Добавление ребра
    void clearAll()
    Удалес все ребра и вершины
    void clearEdges()
    Удаляет все ребра
    boolean contains​(N node)
    Проверяет наличае вершины
    java.util.Collection<Edge<N,​E>> edgesOf​(N node)
    Возвращает ребра указанной вершины
    java.util.Collection<Edge<N,​E>> edgesOfNodeA​(N node)
    Возвращает ребра из вершины А
    java.util.Collection<Edge<N,​E>> edgesOfNodeB​(N node)
    Возвращает ребра из вершины Б
    java.util.Collection<E> get​(N a, N b)
    Возвращает ребра между вершинами
    E getEdge​(N a, N b)
    Возвращает ребро между вершинами
    java.lang.Iterable<Edge<N,​E>> getEdges()
    Возвращает Ребра и вершины графа
    java.lang.Iterable<E> getEdges​(N a, N b)
    Возвращает ребра между вершинами
    java.lang.Iterable<N> getNodes()
    Возвращает вершины графа
    boolean hasEdge​(N a, N b)
    Проверка наличия ребра между вершинами
    protected int indexOf​(N node)
    Возвращает индекс вершины в списке вершин
    protected void onEdgeAdded​(Edge<N,​E> es)
    Срабатывает при добавлении ребра в граф
    protected void onEdgeRemoved​(Edge<N,​E> es)
    Срабатывает при удалении ребра из графа
    protected void onNodeAdded​(N node)
    Срабатывает при добавлении вершины в граф
    protected void onNodeRemoved​(N node)
    Срабатывает при удалении вершины из графа
    void remove​(N node)
    Удаляет вершину из графа
    protected void remove​(Edge<N,​E> es)
    Удаление ребра
    void removeEdge​(N a, N b)
    Удаление ребра
    void set​(N a, N b, java.lang.Iterable<E> e)
    Устанавливает/Сбрасывает ребра между вершинами
    void setEdge​(N a, N b, E edge)
    Установка ребра между вершинами
    void setEdges​(N a, N b, java.lang.Iterable<E> edges)
    Установка ребр между вершинами

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • factory

      protected GraphFactory<N,​E> factory
      Фабрика графа
    • edges

      protected java.util.Collection<Edge<N,​E>> edges
      Ребра
    • nodes

      protected java.util.Collection<N> nodes
      Вершины
    • sync

      protected final java.lang.Object sync
      Объект для синхронизации
  • Constructor Details

    • SimpleMDGraph

      public SimpleMDGraph()
      Конструктор
    • SimpleMDGraph

      public SimpleMDGraph​(GraphFactory<N,​E> factory)
      Конструктор
      Parameters:
      factory - Фабрика графа
  • Method Details

    • getNodes

      public java.lang.Iterable<N> getNodes()
      Description copied from interface: Graph
      Возвращает вершины графа
      Specified by:
      getNodes in interface Graph<N,​E>
      Returns:
      вершины
    • getEdges

      public java.lang.Iterable<Edge<N,​E>> getEdges()
      Description copied from interface: Graph
      Возвращает Ребра и вершины графа
      Specified by:
      getEdges in interface Graph<N,​E>
      Returns:
      Ребра и вершины
    • contains

      public boolean contains​(N node)
      Description copied from interface: Graph
      Проверяет наличае вершины
      Specified by:
      contains in interface Graph<N,​E>
      Parameters:
      node - Вершина
      Returns:
      true -вершина содержиться в графе
    • indexOf

      protected int indexOf​(N node)
      Возвращает индекс вершины в списке вершин
      Parameters:
      node - Вершина
      Returns:
      индекс или -1 если таковой нет в списке
    • getEdge

      public E getEdge​(N a, N b)
      Description copied from interface: Graph
      Возвращает ребро между вершинами
      Specified by:
      getEdge in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      Returns:
      Ребро
    • getEdges

      public java.lang.Iterable<E> getEdges​(N a, N b)
      Description copied from interface: Graph
      Возвращает ребра между вершинами
      Specified by:
      getEdges in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      Returns:
      Ребра
    • hasEdge

      public boolean hasEdge​(N a, N b)
      Description copied from interface: Graph
      Проверка наличия ребра между вершинами
      Specified by:
      hasEdge in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      Returns:
      Флаг наличия ребра
    • edgesOf

      public java.util.Collection<Edge<N,​E>> edgesOf​(N node)
      Description copied from interface: Graph
      Возвращает ребра указанной вершины
      Specified by:
      edgesOf in interface Graph<N,​E>
      Parameters:
      node - Вершина
      Returns:
      ребра
    • edgesOfNodeA

      public java.util.Collection<Edge<N,​E>> edgesOfNodeA​(N node)
      Description copied from interface: Graph
      Возвращает ребра из вершины А
      Specified by:
      edgesOfNodeA in interface Graph<N,​E>
      Parameters:
      node - Вершина А
      Returns:
      Ребра
    • edgesOfNodeB

      public java.util.Collection<Edge<N,​E>> edgesOfNodeB​(N node)
      Description copied from interface: Graph
      Возвращает ребра из вершины Б
      Specified by:
      edgesOfNodeB in interface Graph<N,​E>
      Parameters:
      node - Вершина Б
      Returns:
      Ребра
    • onEdgeRemoved

      protected void onEdgeRemoved​(Edge<N,​E> es)
      Срабатывает при удалении ребра из графа
      Parameters:
      es - Ребро
    • onEdgeAdded

      protected void onEdgeAdded​(Edge<N,​E> es)
      Срабатывает при добавлении ребра в граф
      Parameters:
      es - Ребро
    • onNodeAdded

      protected void onNodeAdded​(N node)
      Срабатывает при добавлении вершины в граф
      Parameters:
      node - Вершина
    • onNodeRemoved

      protected void onNodeRemoved​(N node)
      Срабатывает при удалении вершины из графа
      Parameters:
      node - Вершина
    • get

      public java.util.Collection<E> get​(N a, N b)
      Description copied from interface: MultiGraph
      Возвращает ребра между вершинами
      Specified by:
      get in interface MultiGraph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      Returns:
      ребра
    • set

      public void set​(N a, N b, java.lang.Iterable<E> e)
      Description copied from interface: MultiGraph
      Устанавливает/Сбрасывает ребра между вершинами
      Specified by:
      set in interface MultiGraph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      e - Ребра
    • remove

      protected void remove​(Edge<N,​E> es)
      Удаление ребра
      Parameters:
      es - Ребро
    • add

      protected void add​(Edge<N,​E> es)
      Добавление ребра
      Parameters:
      es - Ребро
    • add

      public void add​(N node)
      Description copied from interface: Graph
      Добавляет вершину к графу
      Specified by:
      add in interface Graph<N,​E>
      Parameters:
      node - Вершина
    • remove

      public void remove​(N node)
      Description copied from interface: Graph
      Удаляет вершину из графа
      Specified by:
      remove in interface Graph<N,​E>
      Parameters:
      node - Вершина
    • clearEdges

      public void clearEdges()
      Description copied from interface: Graph
      Удаляет все ребра
      Specified by:
      clearEdges in interface Graph<N,​E>
    • clearAll

      public void clearAll()
      Description copied from interface: Graph
      Удалес все ребра и вершины
      Specified by:
      clearAll in interface Graph<N,​E>
    • setEdge

      public void setEdge​(N a, N b, E edge)
      Description copied from interface: Graph
      Установка ребра между вершинами
      Specified by:
      setEdge in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      edge - Ребро
    • setEdges

      public void setEdges​(N a, N b, java.lang.Iterable<E> edges)
      Description copied from interface: Graph
      Установка ребр между вершинами
      Specified by:
      setEdges in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      edges - Ребра
    • removeEdge

      public void removeEdge​(N a, N b)
      Description copied from interface: Graph
      Удаление ребра
      Specified by:
      removeEdge in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б