java.lang.Object
xyz.cofe.collection.BasicTree<SELF>
- Type Parameters:
SELF- SELF тип производный от BasicTree
- All Implemented Interfaces:
GetTreeParent<SELF>,ImTree<SELF>,ImTreeWalk<SELF>,IndexTree<SELF>,Tree<SELF>,TreeNotify<SELF>,UpTree<SELF>
public abstract class BasicTree<SELF extends BasicTree<SELF>> extends java.lang.Object implements Tree<SELF>, UpTree<SELF>, IndexTree<SELF>
Базовая реализация tree
-
Nested Class Summary
Nested classes/interfaces inherited from interface xyz.cofe.collection.ImTreeWalk
ImTreeWalk.Walk<A extends ImTree<? extends A>> -
Field Summary
Fields Modifier and Type Field Description protected java.util.List<SELF>childrenListprotected ListenersHelper<TreeEvent.Listener<SELF>,TreeEvent<SELF>>listenersHelperПомощь для работы с подписчикамиprotected intnodesCountprotected SELFparent -
Constructor Summary
Constructors Constructor Description BasicTree() -
Method Summary
Modifier and Type Method Description java.lang.AutoCloseableaddTreeListener(boolean weak, TreeEvent.Listener<SELF> ls)Добавляет подписчика на измененияjava.lang.AutoCloseableaddTreeListener(TreeEvent.Listener<SELF> ls)Добавляет подписчика на измененияvoidappend(SELF node)Добавляет дочерний узелvoidappends(java.lang.Iterable<SELF> nodes)Добавляет дочерние узлыvoidappends(SELF... nodes)Добавляет дочерние узлыprotected voidchanges(int idx, SELF old, SELF cur)Уведомление о изменении списка дочерних узловprotected java.util.List<SELF>children()voidclear()Удаляет дочерние узлыbooleancompareAndSetParent(SELF parent, SELF newparent)intcount()Возвращает кол-во дочерних элементовvoiddelete(SELF node)Удаляет дочерние узлыvoiddeletes(java.lang.Iterable<SELF> nodes)Удаляет дочерние узлыvoiddeletes(SELF... nodes)Удаляет дочерние узлыSELFget(int idx)Возвращает дочерний элемент по его индексуSELFgetNextSibling()Возвращает следующий соседний узелintgetNodesCount()Возвращает кол-во узлов включая себя и всех вложенныхSELFgetParent()Возвращает родитеский узлер текущего узлаSELFgetPreviousSibling()Возвращает предыдущий соседний узелintgetSibIndex()Возвращает индекс узла в списке дочерних узлов по отношению к родителюjava.util.Set<TreeEvent.Listener<SELF>>getTreeListeners()Возвращает всех одписчиковvoidinsert(int idx, SELF node)Добавляет дочерний узелvoidinserts(int idx, java.lang.Iterable<SELF> nodes)Добавляет дочерние узлыvoidinserts(int idx, SELF... nodes)Добавляет дочерние узлы<EV extends TreeEvent<SELF>>
java.lang.AutoCloseablelisten(java.lang.Class<EV> eventClass, java.util.function.Consumer<EV> listener)Добавляет подписчика на событие определенного типаEterable<SELF>nodes()Возвращает дочерние элементыvoidremove(int index)Удаляет дочерний узелvoidremoveAllTreeListeners()Удалеяет всех подписчиковvoidremoves(int... indexes)Удаляет дочерние узлыvoidremoves(java.lang.Iterable<java.lang.Integer> indexes)Удаляет дочерние узлыvoidremoveTreeListener(TreeEvent.Listener<SELF> ls)Удаляет подписчикаvoidset(int idx, SELF node)Указывает/заменяет узлыvoidsetParent(SELF parent)voidsets(int idx, java.lang.Iterable<SELF> nodes)Указывает/заменяет узлыvoidsets(int idx, SELF... nodes)Указывает/заменяет узлыSELFsibling(int offset)Переходит соседнему узлуvoidtreeNotify(TreeEvent<SELF> event)Уведомляет о изменении дерева
-
Field Details
-
parent
-
childrenList
-
listenersHelper
protected final ListenersHelper<TreeEvent.Listener<SELF extends BasicTree<SELF>>,TreeEvent<SELF extends BasicTree<SELF>>> listenersHelperПомощь для работы с подписчиками -
nodesCount
protected int nodesCount
-
-
Constructor Details
-
BasicTree
public BasicTree()
-
-
Method Details
-
getParent
Description copied from interface:GetTreeParentВозвращает родитеский узлер текущего узла -
setParent
-
compareAndSetParent
- Specified by:
compareAndSetParentin interfaceUpTree<SELF extends BasicTree<SELF>>
-
children
-
changes
Уведомление о изменении списка дочерних узлов- Parameters:
idx- индекс дочернего узлаold- старый узелcur- новый узел
-
treeNotify
Description copied from interface:TreeNotifyУведомляет о изменении дерева- Specified by:
treeNotifyin interfaceIndexTree<SELF extends BasicTree<SELF>>- Specified by:
treeNotifyin interfaceTreeNotify<SELF extends BasicTree<SELF>>- Parameters:
event- событие
-
addTreeListener
Description copied from interface:TreeNotifyДобавляет подписчика на изменения- Specified by:
addTreeListenerin interfaceTreeNotify<SELF extends BasicTree<SELF>>- Parameters:
ls- подписчик- Returns:
- отписка от уведомлений
-
listen
public <EV extends TreeEvent<SELF>> java.lang.AutoCloseable listen(java.lang.Class<EV> eventClass, java.util.function.Consumer<EV> listener)Description copied from interface:TreeNotifyДобавляет подписчика на событие определенного типа- Specified by:
listenin interfaceTreeNotify<SELF extends BasicTree<SELF>>- Type Parameters:
EV- тип события- Parameters:
eventClass- тип событияlistener- подписчик- Returns:
- отписка от уведомлений
-
addTreeListener
Description copied from interface:TreeNotifyДобавляет подписчика на изменения- Specified by:
addTreeListenerin interfaceTreeNotify<SELF extends BasicTree<SELF>>- Parameters:
weak- true - добавить подписчика как weak ссылкуls- подписчик- Returns:
- отписка от уведомлений
-
removeTreeListener
Description copied from interface:TreeNotifyУдаляет подписчика- Specified by:
removeTreeListenerin interfaceTreeNotify<SELF extends BasicTree<SELF>>- Parameters:
ls- подписчик
-
getTreeListeners
Description copied from interface:TreeNotifyВозвращает всех одписчиков- Specified by:
getTreeListenersin interfaceTreeNotify<SELF extends BasicTree<SELF>>- Returns:
- подписчики
-
removeAllTreeListeners
public void removeAllTreeListeners()Description copied from interface:TreeNotifyУдалеяет всех подписчиков- Specified by:
removeAllTreeListenersin interfaceTreeNotify<SELF extends BasicTree<SELF>>
-
count
public int count()Возвращает кол-во дочерних элементов -
getNodesCount
public int getNodesCount()Возвращает кол-во узлов включая себя и всех вложенных- Specified by:
getNodesCountin interfaceIndexTree<SELF extends BasicTree<SELF>>- Returns:
- кол-во узлов (всегда больше 0)
-
get
Возвращает дочерний элемент по его индексу -
nodes
Возвращает дочерние элементы -
getSibIndex
public int getSibIndex()Возвращает индекс узла в списке дочерних узлов по отношению к родителю- Specified by:
getSibIndexin interfaceUpTree<SELF extends BasicTree<SELF>>- Returns:
- индекс или -1
-
sibling
Переходит соседнему узлу -
getPreviousSibling
Возвращает предыдущий соседний узел- Specified by:
getPreviousSiblingin interfaceUpTree<SELF extends BasicTree<SELF>>- Returns:
- Узел или null в случаи достижения края
-
getNextSibling
Возвращает следующий соседний узел- Specified by:
getNextSiblingin interfaceUpTree<SELF extends BasicTree<SELF>>- Returns:
- Узел или null в случаи достижения края
-
append
Добавляет дочерний узел -
appends
Добавляет дочерние узлы -
appends
Добавляет дочерние узлы -
insert
Добавляет дочерний узел -
inserts
Добавляет дочерние узлы -
inserts
Добавляет дочерние узлы -
set
Указывает/заменяет узлы -
sets
Указывает/заменяет узлы -
sets
Указывает/заменяет узлы -
remove
public void remove(int index)Удаляет дочерний узел -
removes
public void removes(int... indexes)Удаляет дочерние узлы -
removes
public void removes(java.lang.Iterable<java.lang.Integer> indexes)Удаляет дочерние узлы -
delete
Удаляет дочерние узлы -
deletes
Удаляет дочерние узлы -
deletes
Удаляет дочерние узлы -
clear
public void clear()Удаляет дочерние узлы
-