Module xyz.cofe.ecolls
Package xyz.cofe.collection
Class MutableTree<SELF extends MutableTree<SELF>>
java.lang.Object
xyz.cofe.collection.MutableTree<SELF>
- Type Parameters:
SELF- Собыственный тип дерева (в дочерних класса должен содержать сам класс)
- All Implemented Interfaces:
GetTreeParent<SELF>,ImTree<SELF>,ImTreeWalk<SELF>,Tree<SELF>,TreeNotify<SELF>,UpTree<SELF>
public abstract class MutableTree<SELF extends MutableTree<SELF>> extends java.lang.Object implements Tree<SELF>, GetTreeParent<SELF>, UpTree<SELF>
Мутериуемое дерево
-
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.lang.IntegercacheCountКол-во дочерних узлов включая вложенныеprotected java.util.List<SELF>childrenprotected ListenersHelper<TreeEvent.Listener<SELF>,TreeEvent<SELF>>listenersПодписчики на события дереваprotected SELFparent -
Constructor Summary
Constructors Constructor Description MutableTree() -
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)Добавляет дочерние узлы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)Добавляет дочерние узлыintlevel()Возвращает вложенность узла начиная от корня<EV extends TreeEvent<SELF>>
java.lang.AutoCloseablelisten(java.lang.Class<EV> eventClass, java.util.function.Consumer<EV> listener)Добавляет подписчика на события изменения дереваEterable<SELF>nodes()Возвращает дочерние элементыjava.util.List<SELF>path()Возвращает путь от корняvoidremove(int index)Удаляет дочерний узелvoidremoveAllTreeListeners()Удалеяет всех подписчиковvoidremoves(int... indexes)Удаляет дочерние узлыvoidremoves(java.lang.Iterable<java.lang.Integer> indexes)Удаляет дочерние узлыvoidremoves(java.util.List<java.lang.Integer> indexes, boolean mutateIndexes)Удаляет дочерние узлыvoidremoveTreeListener(TreeEvent.Listener<SELF> ls)Отписка от уведомленийvoidset(int idx, SELF node)Указывает/заменяет узлыvoidsetNodesCount(java.lang.Integer count)Указывает кол-во дочерних узлов включая вложенныеvoidsetParent(SELF parent)Укзывает родитеский узлер текущего узлаvoidsets(int idx, java.lang.Iterable<SELF> nodes)Указывает/заменяет дочерние узлыvoidsets(int idx, SELF... nodes)Указывает/заменяет узлыSELFsibling(int offset)Переходит соседнему узлуvoidtreeNotify(TreeEvent<SELF> event)Уведомляет о изменении дереваImTreeWalk.Walk<SELF>walk()Обход дочерних элементов
-
Field Details
-
cacheCount
protected java.lang.Integer cacheCountКол-во дочерних узлов включая вложенные -
listeners
protected final ListenersHelper<TreeEvent.Listener<SELF extends MutableTree<SELF>>,TreeEvent<SELF extends MutableTree<SELF>>> listenersПодписчики на события дерева -
parent
-
children
-
-
Constructor Details
-
MutableTree
public MutableTree()
-
-
Method Details
-
getNodesCount
public int getNodesCount()Возвращает кол-во дочерних узлов включая вложенные- Returns:
- кол-во дочерних узлов
-
setNodesCount
public void setNodesCount(java.lang.Integer count)Указывает кол-во дочерних узлов включая вложенные- Parameters:
count- кол-во дочерних узлов
-
treeNotify
Уведомляет о изменении дерева- Specified by:
treeNotifyin interfaceTreeNotify<SELF extends MutableTree<SELF>>- Parameters:
event- событие
-
addTreeListener
Добавляет подписчика на события изменения дерева- Specified by:
addTreeListenerin interfaceTreeNotify<SELF extends MutableTree<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)Добавляет подписчика на события изменения дерева- Specified by:
listenin interfaceTreeNotify<SELF extends MutableTree<SELF>>- Type Parameters:
EV- тип события- Parameters:
eventClass- класс событийlistener- подписчик- Returns:
- отписка от уведомлений
-
addTreeListener
Добавляет подписчика на события изменения дерева- Specified by:
addTreeListenerin interfaceTreeNotify<SELF extends MutableTree<SELF>>- Parameters:
ls- подписчикweak- true - добавить подписчика как weak ссылку- Returns:
- отписка от уведомлений
-
removeTreeListener
Отписка от уведомлений- Specified by:
removeTreeListenerin interfaceTreeNotify<SELF extends MutableTree<SELF>>- Parameters:
ls- подписчик
-
getTreeListeners
Возвращает всех одписчиков- Specified by:
getTreeListenersin interfaceTreeNotify<SELF extends MutableTree<SELF>>- Returns:
- подписчики
-
removeAllTreeListeners
public void removeAllTreeListeners()Удалеяет всех подписчиков- Specified by:
removeAllTreeListenersin interfaceTreeNotify<SELF extends MutableTree<SELF>>
-
getSibIndex
public int getSibIndex()Возвращает индекс узла в списке дочерних узлов по отношению к родителю- Specified by:
getSibIndexin interfaceUpTree<SELF extends MutableTree<SELF>>- Returns:
- индекс или -1
-
sibling
Переходит соседнему узлу- Specified by:
siblingin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
offset- смещение от текущего- Returns:
- узел или null
-
getPreviousSibling
Возвращает следующий соседний узел- Specified by:
getPreviousSiblingin interfaceUpTree<SELF extends MutableTree<SELF>>- Returns:
- Узел или null в случаи достижения края
-
getNextSibling
Возвращает следующий соседний узел- Specified by:
getNextSiblingin interfaceUpTree<SELF extends MutableTree<SELF>>- Returns:
- Узел или null в случаи достижения края
-
getParent
Возвращает родитеский узлер текущего узла- Specified by:
getParentin interfaceGetTreeParent<SELF extends MutableTree<SELF>>- Specified by:
getParentin interfaceUpTree<SELF extends MutableTree<SELF>>- Returns:
- Родительский узел или null
-
setParent
Укзывает родитеский узлер текущего узла- Specified by:
setParentin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
parent- родитеский узлер текущего узла
-
compareAndSetParent
Устанавливает новый родительский узел, если текущий узел совпадает с указаным- Specified by:
compareAndSetParentin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
parent- проверяемыйnewparent- новое значение- Returns:
- true - значение установлено, false - проверяемый и фактический родительские узелы не совпадают
-
children
Возвращает список дочерних узлов- Returns:
- список дочерних узлов
-
count
public int count()Возвращает кол-во дочерних узлов- Specified by:
countin interfaceTree<SELF extends MutableTree<SELF>>- Returns:
- кол-во дочерних узлов
-
get
Возвращает дочерний элемент по его индексу- Specified by:
getin interfaceTree<SELF extends MutableTree<SELF>>- Parameters:
idx- индекс дочернего элемента- Returns:
- дочерний элемент
-
nodes
Возвращает дочерние элементы- Specified by:
nodesin interfaceImTree<SELF extends MutableTree<SELF>>- Specified by:
nodesin interfaceTree<SELF extends MutableTree<SELF>>- Returns:
- дочерние элементы
-
append
Добавляет дочерний узел- Specified by:
appendin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
appendin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
node- узел
-
appends
Добавляет дочерние узлы- Specified by:
appendsin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
appendsin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
nodes- дочерние узлы
-
appends
Добавляет дочерние узлы- Specified by:
appendsin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
appendsin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
nodes- дочерние узлы
-
insert
Добавляет дочерний узел- Specified by:
insertin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
insertin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
idx- индекс в какую позицию будет добавлен узелnode- узел
-
inserts
Добавляет дочерние узлы- Specified by:
insertsin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
insertsin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
idx- индекс в какую позицию будет добавлены узлыnodes- дочерние узлы
-
inserts
Добавляет дочерние узлы- Specified by:
insertsin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
insertsin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
idx- индекс в какую позицию будет добавлены узлыnodes- дочерние узлы
-
set
Указывает/заменяет узлы- Specified by:
setin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
setin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
idx- индексnode- узел
-
sets
Указывает/заменяет узлы- Specified by:
setsin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
setsin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
idx- индексnodes- узелы
-
sets
Указывает/заменяет дочерние узлы- Specified by:
setsin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
setsin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
idx- индексnodes- узелы
-
remove
public void remove(int index)Удаляет дочерний узел- Specified by:
removein interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
removein interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
index- индексы узлов
-
removes
public void removes(int... indexes)Удаляет дочерние узлы- Specified by:
removesin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
removesin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
indexes- индексы узлов
-
removes
public void removes(java.util.List<java.lang.Integer> indexes, boolean mutateIndexes)Удаляет дочерние узлы- Parameters:
indexes- индексы узловmutateIndexes- true - модифицирует исходный список индексов / false - создает копию исходного списка
-
removes
public void removes(java.lang.Iterable<java.lang.Integer> indexes)Удаляет дочерние узлы- Specified by:
removesin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
removesin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
indexes- индексы узлов
-
delete
Удаляет дочерние узлы- Specified by:
deletein interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
deletein interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
node- дочерние узлы
-
deletes
Удаляет дочерние узлы- Specified by:
deletesin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
deletesin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
nodes- дочерние узлы
-
deletes
Удаляет дочерние узлы- Specified by:
deletesin interfaceTree<SELF extends MutableTree<SELF>>- Specified by:
deletesin interfaceUpTree<SELF extends MutableTree<SELF>>- Parameters:
nodes- дочерние узлы
-
clear
public void clear()Удаляет дочерние узлы- Specified by:
clearin interfaceTree<SELF extends MutableTree<SELF>>
-
level
public int level()Возвращает вложенность узла начиная от корня- Specified by:
levelin interfaceUpTree<SELF extends MutableTree<SELF>>- Returns:
- уровень, 0 - корень
-
path
Возвращает путь от корня- Specified by:
pathin interfaceUpTree<SELF extends MutableTree<SELF>>- Returns:
- путь
-
walk
Обход дочерних элементов- Specified by:
walkin interfaceImTreeWalk<SELF extends MutableTree<SELF>>- Returns:
- итератор по дочерним узлам
-