- 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 Object implements MultipleDirectedGraph<N,E>
Направленый мультграф граф- Author:
- GoCha
-
-
Field Summary
Fields Modifier and Type Field Description protected Collection<Edge<N,E>>edgesРебраprotected GraphFactory<N,E>factoryФабрика графаprotected Collection<N>nodesВершиныprotected ObjectsyncОбъект для синхронизации
-
Constructor Summary
Constructors Constructor Description SimpleMDGraph()КонструкторSimpleMDGraph(GraphFactory<N,E> factory)Конструктор
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(N node)Добавляет вершину к графуprotected voidadd(Edge<N,E> es)Добавление ребраvoidclearAll()Удалес все ребра и вершиныvoidclearEdges()Удаляет все ребраbooleancontains(N node)Проверяет наличае вершиныCollection<Edge<N,E>>edgesOf(N node)Возвращает ребра указанной вершиныCollection<Edge<N,E>>edgesOfNodeA(N node)Возвращает ребра из вершины АCollection<Edge<N,E>>edgesOfNodeB(N node)Возвращает ребра из вершины БCollection<E>get(N a, N b)Возвращает ребра между вершинамиEgetEdge(N a, N b)Возвращает ребро между вершинамиIterable<Edge<N,E>>getEdges()Возвращает Ребра и вершины графаIterable<E>getEdges(N a, N b)Возвращает ребра между вершинамиIterable<N>getNodes()Возвращает вершины графаbooleanhasEdge(N a, N b)Проверка наличия ребра между вершинамиprotected intindexOf(N node)Возвращает индекс вершины в списке вершинprotected voidonEdgeAdded(Edge<N,E> es)Срабатывает при добавлении ребра в графprotected voidonEdgeRemoved(Edge<N,E> es)Срабатывает при удалении ребра из графаprotected voidonNodeAdded(N node)Срабатывает при добавлении вершины в графprotected voidonNodeRemoved(N node)Срабатывает при удалении вершины из графаvoidremove(N node)Удаляет вершину из графаprotected voidremove(Edge<N,E> es)Удаление ребраvoidremoveEdge(N a, N b)Удаление ребраvoidset(N a, N b, Iterable<E> e)Устанавливает/Сбрасывает ребра между вершинамиvoidsetEdge(N a, N b, E edge)Установка ребра между вершинамиvoidsetEdges(N a, N b, Iterable<E> edges)Установка ребр между вершинами
-
-
-
Field Detail
-
factory
protected GraphFactory<N,E> factory
Фабрика графа
-
edges
protected Collection<Edge<N,E>> edges
Ребра
-
nodes
protected Collection<N> nodes
Вершины
-
sync
protected final Object sync
Объект для синхронизации
-
-
Constructor Detail
-
SimpleMDGraph
public SimpleMDGraph()
Конструктор
-
SimpleMDGraph
public SimpleMDGraph(GraphFactory<N,E> factory)
Конструктор- Parameters:
factory- Фабрика графа
-
-
Method Detail
-
getNodes
public Iterable<N> getNodes()
Description copied from interface:GraphВозвращает вершины графа
-
getEdges
public Iterable<Edge<N,E>> getEdges()
Description copied from interface:GraphВозвращает Ребра и вершины графа
-
contains
public boolean contains(N node)
Description copied from interface:GraphПроверяет наличае вершины
-
indexOf
protected int indexOf(N node)
Возвращает индекс вершины в списке вершин- Parameters:
node- Вершина- Returns:
- индекс или -1 если таковой нет в списке
-
getEdge
public E getEdge(N a, N b)
Description copied from interface:GraphВозвращает ребро между вершинами
-
getEdges
public Iterable<E> getEdges(N a, N b)
Description copied from interface:GraphВозвращает ребра между вершинами
-
hasEdge
public boolean hasEdge(N a, N b)
Description copied from interface:GraphПроверка наличия ребра между вершинами
-
edgesOf
public Collection<Edge<N,E>> edgesOf(N node)
Description copied from interface:GraphВозвращает ребра указанной вершины
-
edgesOfNodeA
public Collection<Edge<N,E>> edgesOfNodeA(N node)
Description copied from interface:GraphВозвращает ребра из вершины А- Specified by:
edgesOfNodeAin interfaceGraph<N,E>- Parameters:
node- Вершина А- Returns:
- Ребра
-
edgesOfNodeB
public Collection<Edge<N,E>> edgesOfNodeB(N node)
Description copied from interface:GraphВозвращает ребра из вершины Б- Specified by:
edgesOfNodeBin interfaceGraph<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 Collection<E> get(N a, N b)
Description copied from interface:MultiGraphВозвращает ребра между вершинами- Specified by:
getin interfaceMultiGraph<N,E>- Parameters:
a- Вершина Аb- Вершина Б- Returns:
- ребра
-
set
public void set(N a, N b, Iterable<E> e)
Description copied from interface:MultiGraphУстанавливает/Сбрасывает ребра между вершинами- Specified by:
setin interfaceMultiGraph<N,E>- Parameters:
a- Вершина Аb- Вершина Бe- Ребра
-
remove
public void remove(N node)
Description copied from interface:GraphУдаляет вершину из графа
-
clearEdges
public void clearEdges()
Description copied from interface:GraphУдаляет все ребра- Specified by:
clearEdgesin interfaceGraph<N,E>
-
clearAll
public void clearAll()
Description copied from interface:GraphУдалес все ребра и вершины
-
setEdge
public void setEdge(N a, N b, E edge)
Description copied from interface:GraphУстановка ребра между вершинами
-
setEdges
public void setEdges(N a, N b, Iterable<E> edges)
Description copied from interface:GraphУстановка ребр между вершинами
-
-