java.lang.Object
xyz.cofe.collection.ClassNode
- All Implemented Interfaces:
java.util.function.Function,NodesExtracter,LongScn<ClassNode,java.lang.Object>,Scn<ClassNode,java.lang.Long,java.lang.Object>
public class ClassNode extends java.lang.Object implements NodesExtracter, LongScn<ClassNode,java.lang.Object>
Функция "следования" (извлечения) дочерних/связынных объектов из объектов определенного типа.
Использование:
ClassNode cn = new ClassNode();
// Определяем функцию извелечения дочерних файлов из каталога
cn.add( File.class, new NodesExtracter(){ ... } );
// Определяем функцию 1 извелечения элементов из списка
cn.add( List.class, new NodesExtracter(){ ... } );
// Определяем функцию 2 извелечения элементов из списка в обратном порядке
cn.add( List.class, new NodesExtracter(){ ... } );
// вернет итератор по элементам,
// при чем элементы будут возвращены по два раза
// в прямом и в обратном порядке т.к. определены две функции
for( Object it : cn.fetch( list ) )
- Author:
- Kamnev Georgiy (nt.gocha@gmail.com)
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.lang.Class<?>,java.util.Set<NodesExtracter>>typedExtracterprotected ClassSettypes -
Constructor Summary
-
Method Summary
Modifier and Type Method Description java.io.Closeableadd(java.lang.Class cls, NodesExtracter ne)Добавляет функцию следования<T> ClassNodeadds(java.lang.Class<T> cls, NodesExtracter<T,?>... ne)Добавляет функции следования для указанного типаvoidclear()Очищает все функции следования для указанного типаvoidclear(java.lang.Class<?> cls)Очищает все функции следования для указанного типаClassNodeclone()КлонированиеEterable<?>extract(java.lang.Object from)Возвращает набор функций подходящих для извлечения данных (синоним fetch).NodesExtracter[]extractersOf(java.lang.Class<?> cls)Возвращает набор функций подходящих для извлечения данныхEterable<?>fetch(java.lang.Object node)Возвращает набор функций подходящих для извлечения данныхjava.lang.Class[]getClasses()Возвращает зарегистрированные типыNodesExtracter[]getNodeExtracters(java.lang.Class cls)Возвращает функции следования для указанного типаbooleanhasClass(java.lang.Class<?> cls)Проверяет наличие функций у указанного типаvoidremove(java.lang.Class<?> cls, NodesExtracter ne)Удаляет функцию следованияListenersHelper<ScnListener<ClassNode,java.lang.Long,java.lang.Object>,ScnEvent<ClassNode,java.lang.Long,java.lang.Object>>scnListenerHelper()Возвращает помощника издателя для поддержи событийMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface xyz.cofe.scn.Scn
addScnChangedListener, addScnChangedListener, fireScnChanged, fireScnChanged, getScnChangedListeners, hasScnChangedListener, onScn, removeAllScnChangedListeners, removeScnChangedListener, scn, scn
-
Field Details
-
Constructor Details
-
Method Details
-
scnListenerHelper
public ListenersHelper<ScnListener<ClassNode,java.lang.Long,java.lang.Object>,ScnEvent<ClassNode,java.lang.Long,java.lang.Object>> scnListenerHelper()Возвращает помощника издателя для поддержи событий- Specified by:
scnListenerHelperin interfaceScn<ClassNode,java.lang.Long,java.lang.Object>- Returns:
- помощник издателя
-
clone
Клонирование- Overrides:
clonein classjava.lang.Object- Returns:
- клон
-
adds
Добавляет функции следования для указанного типа- Type Parameters:
T- тип- Parameters:
cls- типne- функции- Returns:
- self ссылка
-
add
Добавляет функцию следования- Parameters:
cls- типne- функция следования- Returns:
- интерфейс для удаления ассоциации
-
remove
Удаляет функцию следования- Parameters:
cls- типne- функция
-
clear
public void clear(java.lang.Class<?> cls)Очищает все функции следования для указанного типа- Parameters:
cls- тип
-
clear
public void clear()Очищает все функции следования для указанного типа -
hasClass
public boolean hasClass(java.lang.Class<?> cls)Проверяет наличие функций у указанного типа- Parameters:
cls- тип- Returns:
- true - есть функции
-
getClasses
public java.lang.Class[] getClasses()Возвращает зарегистрированные типы- Returns:
- типы
-
getNodeExtracters
Возвращает функции следования для указанного типа- Parameters:
cls- тип- Returns:
- функции
- See Also:
Map.get(java.lang.Object)
-
extractersOf
Возвращает набор функций подходящих для извлечения данных- Parameters:
cls- тип данных- Returns:
- набор подходящих функций
-
fetch
Возвращает набор функций подходящих для извлечения данных- Parameters:
node- объект из которого происходит извлечение данных- Returns:
- Объекты которые следуют согласно указанным функциям
-
extract
Возвращает набор функций подходящих для извлечения данных (синоним fetch).- Specified by:
extractin interfaceNodesExtracter- Parameters:
from- объект из которого происходит извлечение данных- Returns:
- Объекты которые следуют согласно указанным функциям
- See Also:
fetch(java.lang.Object)
-