- java.lang.Object
-
- xyz.cofe.iter.TreeIterator<A>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTreeIterator.PushStep<A>Данные для вставки узла в список рабочих узлов
-
Field Summary
Fields Modifier and Type Field Description protected Predicate<TreeStep<A>>allowprotected Function<A,Iterable<? extends A>>followprotected Function<List<TreeStep<A>>,TreeStep<A>>pollprotected Consumer<TreeIterator.PushStep<A>>pushprotected Function<Supplier<Object>,Object>syncWorksetprotected ObjectsyncWorksetObjectprotected List<TreeStep<A>>worksetInstance
-
Constructor Summary
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <A> Predicate<TreeStep<A>>checkCycles()Создает фильтр, который не допускает наличие циклов при проходе по деревуFunction<Supplier<Object>,Object>getSyncWorkset()protected List<TreeStep<A>>getWorkset()booleanhasNext()TreeStep<A>next()static <A> Eterable<TreeStep<A>>of(A init, Function<A,Iterable<? extends A>> follow)Конструкторstatic <A> Eterable<TreeStep<A>>of(A init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push)Конструкторstatic <A> Eterable<TreeStep<A>>of(Iterable<? extends A> init, Function<A,Iterable<? extends A>> follow)Конструкторstatic <A> Eterable<TreeStep<A>>of(Iterable<? extends A> init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push)Конструкторstatic <A> Function<List<TreeStep<A>>,TreeStep<A>>pollFirst()Создает функцию для извлечения первого узла из очередиstatic <A> Function<List<TreeStep<A>>,TreeStep<A>>pollLast()Создает функцию для извлечения последнего узла из очередиstatic <A> Consumer<TreeIterator.PushStep<A>>pushFirst()Создает функцию для добвления узлов в начало очереди обработкиstatic <A> Consumer<TreeIterator.PushStep<A>>pushLast()Создает функцию для добвления узлов в конец очереди обработкиstatic <A> Consumer<TreeIterator.PushStep<A>>pushOrdered()Создает фуркцию для добавления узлов в очередь обратки, согласно порядку следованияvoidsetSyncWorkset(Function<Supplier<Object>,Object> syncWorkset)protected voidsyncWorkset(Runnable code)protected <R> RsyncWorkset(Supplier<R> code)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Iterator
forEachRemaining, remove
-
-
-
-
Field Detail
-
syncWorksetObject
protected volatile Object syncWorksetObject
-
push
protected final Consumer<TreeIterator.PushStep<A>> push
-
-
Constructor Detail
-
TreeIterator
public TreeIterator(Iterable<? extends A> init, Function<A,Iterable<? extends A>> follow)
Конструктор- Parameters:
init- начальный узелfollow- функция перехода к дочерним узлам
-
TreeIterator
public TreeIterator(Iterable<? extends A> init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push)
Конструктор- Parameters:
init- начальный узелfollow- функция перехода к дочерним узламpoll- функция выбора узла из рабочего набора узловpush- функция помещения очередного узла в рабочий набор
-
TreeIterator
public TreeIterator(Iterable<? extends A> init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push, Predicate<TreeStep<A>> allow)
Конструктор- Parameters:
init- начальный узелfollow- функция перехода к дочерним узламpoll- функция выбора узла из рабочего набора узловpush- функция помещения очередного узла в рабочий наборallow- функция проверки допустимости перехода к указанному узлу
-
TreeIterator
public TreeIterator(A init, Function<A,Iterable<? extends A>> follow)
Конструктор- Parameters:
init- начальный узелfollow- функция перехода к дочерним узлам
-
TreeIterator
public TreeIterator(A init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push)
Конструктор- Parameters:
init- начальный узелfollow- функция перехода к дочерним узламpoll- функция выбора узла из рабочего набора узловpush- функция помещения очередного узла в рабочий набор
-
TreeIterator
public TreeIterator(A init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push, Predicate<TreeStep<A>> allow)
Конструктор- Parameters:
init- начальный узелfollow- функция перехода к дочерним узламpoll- (nullable) функция выбора узла из рабочего набора узловpush- (nullable) функция помещения очередного узла в рабочий наборallow- (nullable) функция проверки допустимости перехода к указанному узлу
-
TreeIterator
public TreeIterator(A init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push, Predicate<TreeStep<A>> allow, Object syncObj)
Конструктор- Parameters:
init- начальный узелfollow- функция перехода к дочерним узламpoll- (nullable) функция выбора узла из рабочего набора узловpush- (nullable) функция помещения очередного узла в рабочий наборallow- (nullable) функция проверки допустимости перехода к указанному узлуsyncObj- (nullable) объект который используеться для синхронизации workset
-
TreeIterator
public TreeIterator(A init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push, Predicate<TreeStep<A>> allow, Object syncObj, Function<Supplier<Object>,Object> syncWs)
Конструктор- Parameters:
init- начальный узелfollow- функция перехода к дочерним узламpoll- (nullable) функция выбора узла из рабочего набора узловpush- (nullable) функция помещения очередного узла в рабочий наборallow- (nullable) функция проверки допустимости перехода к указанному узлуsyncObj- (nullable) объект который используеться для синхронизации worksetsyncWs- (nullable) функция синхронизации
-
-
Method Detail
-
of
public static <A> Eterable<TreeStep<A>> of(Iterable<? extends A> init, Function<A,Iterable<? extends A>> follow)
Конструктор- Type Parameters:
A- тип узлов- Parameters:
init- начальный узелfollow- функция перехода к дочерним узлам- Returns:
- итератор
-
of
public static <A> Eterable<TreeStep<A>> of(Iterable<? extends A> init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push)
Конструктор- Type Parameters:
A- тип узлов- Parameters:
init- начальный узелfollow- функция перехода к дочерним узламpoll- функция выбора узла из рабочего набора узловpush- функция помещения очередного узла в рабочий набор- Returns:
- итератор
-
of
public static <A> Eterable<TreeStep<A>> of(A init, Function<A,Iterable<? extends A>> follow)
Конструктор- Type Parameters:
A- тип узлов- Parameters:
init- начальный узелfollow- функция перехода к дочерним узлам- Returns:
- итератор
-
of
public static <A> Eterable<TreeStep<A>> of(A init, Function<A,Iterable<? extends A>> follow, Function<List<TreeStep<A>>,TreeStep<A>> poll, Consumer<TreeIterator.PushStep<A>> push)
Конструктор- Type Parameters:
A- тип узлов- Parameters:
init- начальный узелfollow- функция перехода к дочерним узламpoll- функция выбора узла из рабочего набора узловpush- функция помещения очередного узла в рабочий набор- Returns:
- итератор
-
syncWorkset
protected <R> R syncWorkset(Supplier<R> code)
-
syncWorkset
protected void syncWorkset(Runnable code)
-
pollFirst
public static <A> Function<List<TreeStep<A>>,TreeStep<A>> pollFirst()
Создает функцию для извлечения первого узла из очереди- Type Parameters:
A- Тип узла дерева- Returns:
- функция извлечения
-
pollLast
public static <A> Function<List<TreeStep<A>>,TreeStep<A>> pollLast()
Создает функцию для извлечения последнего узла из очереди- Type Parameters:
A- Тип узла дерева- Returns:
- функция извлечения
-
pushLast
public static <A> Consumer<TreeIterator.PushStep<A>> pushLast()
Создает функцию для добвления узлов в конец очереди обработки- Type Parameters:
A- Тип узла дерева- Returns:
- функция вставки
-
pushFirst
public static <A> Consumer<TreeIterator.PushStep<A>> pushFirst()
Создает функцию для добвления узлов в начало очереди обработки- Type Parameters:
A- Тип узла дерева- Returns:
- функция вставки
-
pushOrdered
public static <A> Consumer<TreeIterator.PushStep<A>> pushOrdered()
Создает фуркцию для добавления узлов в очередь обратки, согласно порядку следования- Type Parameters:
A- Тип узла дерева- Returns:
- функция вставки
-
checkCycles
public static <A> Predicate<TreeStep<A>> checkCycles()
Создает фильтр, который не допускает наличие циклов при проходе по дереву- Type Parameters:
A- Тип узла дерева- Returns:
- фильтр
-
-