- java.lang.Object
-
- xyz.cofe.collection.graph.SimpleSDGraph<N,E>
-
- Type Parameters:
N- Тип вершиныE- Тип ребра
- All Implemented Interfaces:
DirectedGraph,Graph<N,E>,SingleDirectedGraph<N,E>,SingleGraph<N,E>,GetReadLock,GetWriteLock,ReadWriteLockSupport,LongScn<SimpleSDGraph<N,E>,Void>,Scn<SimpleSDGraph<N,E>,Long,Void>
- Direct Known Subclasses:
SimpleSDGraphSender
public class SimpleSDGraph<N,E> extends Object implements SingleDirectedGraph<N,E>, ReadWriteLockSupport, LongScn<SimpleSDGraph<N,E>,Void>
Однонаправленный граф. Примитивная реализация с переборными алгоритмами.- 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Список вершин
-
Constructor Summary
Constructors Constructor Description SimpleSDGraph()КонструкторSimpleSDGraph(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)Возвращает ребра из вершины БEget(N a, N b)Возвращает ребро между вершинамиEgetEdge(N a, N b)Возвращает ребро между вершинамиEterable<Edge<N,E>>getEdges()Возвращает Ребра и вершины графаList<E>getEdges(N a, N b)Возвращает ребра между вершинамиEterable<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)Удаление ребраListenersHelper<ScnListener<SimpleSDGraph<N,E>,Long,Void>,ScnEvent<SimpleSDGraph<N,E>,Long,Void>>scnListenerHelper()Возвращает помощника издателя для поддержи событийvoidset(N a, N b, E e)Устанавливает/Сбрасывает ребро между вершинамиvoidsetEdge(N a, N b, E edge)Установка ребра между вершинамиvoidsetEdges(N a, N b, Iterable<E> edges)Установка ребр между вершинами-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface xyz.cofe.ecolls.ReadWriteLockSupport
getReadLock, getWriteLock, readLock, readLock, writeLock, writeLock
-
Methods inherited from interface xyz.cofe.scn.Scn
addScnChangedListener, addScnChangedListener, fireScnChanged, fireScnChanged, getScnChangedListeners, hasScnChangedListener, onScn, removeAllScnChangedListeners, removeScnChangedListener, scn, scn
-
-
-
-
Field Detail
-
factory
protected GraphFactory<N,E> factory
Фабрика
-
edges
protected Collection<Edge<N,E>> edges
Список ребр
-
nodes
protected Collection<N> nodes
Список вершин
-
-
Constructor Detail
-
SimpleSDGraph
public SimpleSDGraph()
Конструктор
-
SimpleSDGraph
public SimpleSDGraph(GraphFactory<N,E> factory)
Конструктор- Parameters:
factory- Фабрика графа
-
-
Method Detail
-
scnListenerHelper
public ListenersHelper<ScnListener<SimpleSDGraph<N,E>,Long,Void>,ScnEvent<SimpleSDGraph<N,E>,Long,Void>> scnListenerHelper()
Возвращает помощника издателя для поддержи событий- Specified by:
scnListenerHelperin interfaceScn<SimpleSDGraph<N,E>,Long,Void>- Returns:
- помощник издателя
-
getNodes
public Eterable<N> getNodes()
Description copied from interface:GraphВозвращает вершины графа
-
getEdges
public Eterable<Edge<N,E>> getEdges()
Description copied from interface:GraphВозвращает Ребра и вершины графа
-
getEdges
public List<E> getEdges(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:
- Ребра
-
hasEdge
public boolean hasEdge(N a, N b)
Description copied from interface:GraphПроверка наличия ребра между вершинами
-
getEdge
public E getEdge(N a, N b)
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 если таковой нет в списке
-
onNodeRemoved
protected void onNodeRemoved(N node)
Срабатывает при удалении вершины из графа- Parameters:
node- Вершина
-
onEdgeRemoved
protected void onEdgeRemoved(Edge<N,E> es)
Срабатывает при удалении ребра из графа- Parameters:
es- Ребро
-
onNodeAdded
protected void onNodeAdded(N node)
Срабатывает при добавлении вершины в граф- Parameters:
node- Вершина
-
onEdgeAdded
protected void onEdgeAdded(Edge<N,E> es)
Срабатывает при добавлении ребра в граф- Parameters:
es- Ребро
-
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Удалес все ребра и вершины
-
get
public E get(N a, N b)
Description copied from interface:SingleGraphВозвращает ребро между вершинами- Specified by:
getin interfaceSingleGraph<N,E>- Parameters:
a- Вершина Аb- Вершина Б- Returns:
- Ребро
-
set
public void set(N a, N b, E e)
Description copied from interface:SingleGraphУстанавливает/Сбрасывает ребро между вершинами- Specified by:
setin interfaceSingleGraph<N,E>- Parameters:
a- Вершина Аb- Вершина Бe- Ребро
-
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Установка ребр между вершинами
-
-