| Modifier and Type | Class and Description |
|---|---|
static interface |
GraphIterator.StoredState<N,E>
Интерфейс для восстановления рание сохраненного состояния
|
| Modifier and Type | Field and Description |
|---|---|
protected ConcurrentLinkedQueue<GraphIteratorEvent<N,E>> |
eventQueue
Очередь сообщений
|
protected boolean |
fetchFinishSended |
protected NodesExtracter<N,Pair<N,E>> |
follow
Функция извлечения исходящих/следующих верших из указанной вершины
|
protected ListenersHelper<GraphIteratorListener,GraphIteratorEvent<N,E>> |
listeners
Подписки
|
protected List<Path<N,E>> |
paths
Текущий список рабочих путей
|
protected GraphIteratorPoller<N,E> |
poller
Функция вытаскивания (выбор и удаление) пути из списка рабочих путей
|
protected GraphIteratorPusher<N,E> |
pusher
Функция помещаюшая пути в список рабочих
|
protected Iterator<N> |
startIterator
Итератор верщин в графе
|
protected Object |
sync
Объект для синхронизации
|
protected Set<N> |
visited
Набор посещенных вершин
|
| Constructor and Description |
|---|
GraphIterator(GraphIterator.StoredState<N,E> sstate,
Object sync)
Конструктор восстановления
|
GraphIterator(Iterable<N> starts,
NodesExtracter<N,Pair<N,E>> follow)
Конструктор.
|
GraphIterator(Iterable<N> starts,
NodesExtracter<N,Pair<N,E>> follow,
GraphIteratorPoller<N,E> poller,
GraphIteratorPusher<N,E> pusher)
Конструктор
|
GraphIterator(Iterable<N> starts,
NodesExtracter<N,Pair<N,E>> follow,
GraphIteratorPusher<N,E> pusher)
Конструктор.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addEvent(GraphIteratorEvent<N,E> event)
Добавляет событие в очередь
|
Closeable |
addListener(GraphIteratorListener listener)
Добавление подписчика на события
|
Closeable |
addListener(GraphIteratorListener listener,
boolean weakLink)
Добавление подписчика на события
|
protected List<Path<N,E>> |
fetchStartPaths()
Извлечение начальных путей из списка вершин
|
protected void |
fireEvent(GraphIteratorEvent<N,E> event)
Уведомление о событии подписчиков
|
protected List<Path<N,E>> |
followPaths(Path<N,E> path)
Извлечение полследующих путей из указанного
|
NodesExtracter<N,Pair<N,E>> |
getFollow()
Функция извлечения исходящих/следующих верших из указанной вершины
|
Set<GraphIteratorListener> |
getListeners()
Возвращает подписчиков
|
GraphIteratorPoller<N,E> |
getPoller()
Функция выборки очередного пути из списка возможных
|
GraphIteratorPusher<N,E> |
getPusher()
Функция добавления списка путей к существующему списку
|
Iterator<N> |
getStartIterator()
Возвращает итератор по вершинам с которых начинается обход
|
Set<N> |
getVisited()
Возвращает набор посещенных узлов
|
List<Path<N,E>> |
getWorkPaths()
Возвращает рабочий набор путей
|
boolean |
hasListener(GraphIteratorListener listener)
Проверяет наличие подписчика на события
|
boolean |
hasNext()
Проверка наличия очередного пути в графе
|
protected Path<N,E> |
join(Path<N,E> path,
N nextNode,
E nextEdge)
Создает путь (конкретенация) содержащий указанный и последующие за ним вершину + ребро
|
<EventType extends GraphIteratorEvent> |
listen(Class<EventType> evType,
Reciver<EventType> listener)
Добавляет подписчика на событие определенного типа
|
Path<N,E> |
next()
Получение очередного пути
|
protected Path<N,E> |
poll(List<Path<N,E>> paths)
Извлечение пути из списка.
|
protected void |
push(List<Path<N,E>> pushPaths)
Помещение путей в список
|
void |
remove()
Пустая функция
|
void |
removeListener(GraphIteratorListener listener)
Отписка от событий
|
void |
sendEvents()
Рассылает события из очереди подписчикам
|
protected void |
sendFetchFinish()
Добавляет событие FetchFinish, если оно небыло еще добавлено
|
protected Path<N,E> |
startPath(N from)
Создает начальный путь
|
protected Path<N,E> |
startPath(N from,
N to,
E e)
Создает начальный путь
|
void |
sync(Reciver<GraphIterator<N,E>> syncCode)
Выполняет код синхронно (блокируя другие операции)
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitforEachRemainingprotected final Object sync
protected final NodesExtracter<N,Pair<N,E>> follow
protected final GraphIteratorPusher<N,E> pusher
protected final GraphIteratorPoller<N,E> poller
protected final ListenersHelper<GraphIteratorListener,GraphIteratorEvent<N,E>> listeners
protected final ConcurrentLinkedQueue<GraphIteratorEvent<N,E>> eventQueue
protected boolean fetchFinishSended
public GraphIterator(Iterable<N> starts, NodesExtracter<N,Pair<N,E>> follow)
starts - Список вершин с которых происходит обход графаfollow - Функция извлечения исходящих/следующих верших из указанной вершиныpublic GraphIterator(Iterable<N> starts, NodesExtracter<N,Pair<N,E>> follow, GraphIteratorPusher<N,E> pusher)
starts - Список вершин с которых происходит обход графаfollow - Функция извлечения исходящих/следующих верших из указанной вершиныpusher - Функция добавления списка путей к существующему спискуpublic GraphIterator(Iterable<N> starts, NodesExtracter<N,Pair<N,E>> follow, GraphIteratorPoller<N,E> poller, GraphIteratorPusher<N,E> pusher)
starts - Список вершин с которых происходит обход графаfollow - Функция извлечения исходящих/следующих верших из указанной вершиныpoller - Функция выборки очередного пути из списка возможныхpusher - Функция добавления списка путей к существующему спискуpublic GraphIterator(GraphIterator.StoredState<N,E> sstate, Object sync)
sstate - ранение сохраненноное состояниеsync - объект для синронизации графаpublic boolean hasListener(GraphIteratorListener listener)
listener - подписчикpublic Set<GraphIteratorListener> getListeners()
public Closeable addListener(GraphIteratorListener listener)
listener - подписчикpublic Closeable addListener(GraphIteratorListener listener, boolean weakLink)
listener - подписчикweakLink - true - добавить подписчика на weak ссылкуpublic void removeListener(GraphIteratorListener listener)
listener - подписчикprotected void fireEvent(GraphIteratorEvent<N,E> event)
event - событиеpublic <EventType extends GraphIteratorEvent> Closeable listen(Class<EventType> evType, Reciver<EventType> listener)
EventType - Тип событияevType - Тип событияlistener - Подписчикpublic void addEvent(GraphIteratorEvent<N,E> event)
event - событиеpublic void sendEvents()
public NodesExtracter<N,Pair<N,E>> getFollow()
public GraphIteratorPusher<N,E> getPusher()
public GraphIteratorPoller<N,E> getPoller()
public List<Path<N,E>> getWorkPaths()
public Iterator<N> getStartIterator()
public void sync(Reciver<GraphIterator<N,E>> syncCode)
syncCode - кодprotected List<Path<N,E>> fetchStartPaths()
protected Path<N,E> startPath(N from, N to, E e)
from - начала путиto - конец путиe - реброprotected Path<N,E> startPath(N from)
from - начала путиprotected Path<N,E> join(Path<N,E> path, N nextNode, E nextEdge)
path - путьnextNode - вершинаnextEdge - реброprotected List<Path<N,E>> followPaths(Path<N,E> path)
path - путьprotected void sendFetchFinish()
public boolean hasNext()
protected Path<N,E> poll(List<Path<N,E>> paths)
paths - список вариантовCopyright © 2018. All rights reserved.