- java.lang.Object
-
- xyz.cofe.collection.ClassNode
-
- All Implemented Interfaces:
Function,NodesExtracter,LongScn<ClassNode,Object>,Scn<ClassNode,Long,Object>
public class ClassNode extends Object implements NodesExtracter, LongScn<ClassNode,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 Map<Class<?>,Set<NodesExtracter>>typedExtracterprotected ClassSettypes
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Closeableadd(Class cls, NodesExtracter ne)Добавляет функцию следования<T> ClassNodeadds(Class<T> cls, NodesExtracter<T,?>... ne)Добавляет функции следования для указанного типаvoidclear()Очищает все функции следования для указанного типаvoidclear(Class<?> cls)Очищает все функции следования для указанного типаClassNodeclone()КлонированиеEterable<?>extract(Object from)Возвращает набор функций подходящих для извлечения данных (синоним fetch).NodesExtracter[]extractersOf(Class<?> cls)Возвращает набор функций подходящих для извлечения данныхEterable<?>fetch(Object node)Возвращает набор функций подходящих для извлечения данныхClass[]getClasses()Возвращает зарегистрированные типыNodesExtracter[]getNodeExtracters(Class cls)Возвращает функции следования для указанного типаbooleanhasClass(Class<?> cls)Проверяет наличие функций у указанного типаvoidremove(Class<?> cls, NodesExtracter ne)Удаляет функцию следованияListenersHelper<ScnListener<ClassNode,Long,Object>,ScnEvent<ClassNode,Long,Object>>scnListenerHelper()Возвращает помощника издателя для поддержи событий-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface xyz.cofe.collection.NodesExtracter
apply
-
Methods inherited from interface xyz.cofe.scn.Scn
addScnChangedListener, addScnChangedListener, fireScnChanged, fireScnChanged, getScnChangedListeners, hasScnChangedListener, onScn, removeAllScnChangedListeners, removeScnChangedListener, scn, scn
-
-
-
-
Field Detail
-
typedExtracter
protected final Map<Class<?>,Set<NodesExtracter>> typedExtracter
-
types
protected final ClassSet types
-
-
Constructor Detail
-
ClassNode
public ClassNode()
Конструктор по умочанию
-
ClassNode
public ClassNode(ClassNode src)
Конструктор копирования с блокиовкой- Parameters:
src- образец для копирования
-
-
Method Detail
-
scnListenerHelper
public ListenersHelper<ScnListener<ClassNode,Long,Object>,ScnEvent<ClassNode,Long,Object>> scnListenerHelper()
Возвращает помощника издателя для поддержи событий- Specified by:
scnListenerHelperin interfaceScn<ClassNode,Long,Object>- Returns:
- помощник издателя
-
adds
public <T> ClassNode adds(Class<T> cls, NodesExtracter<T,?>... ne)
Добавляет функции следования для указанного типа- Type Parameters:
T- тип- Parameters:
cls- типne- функции- Returns:
- self ссылка
-
add
public Closeable add(Class cls, NodesExtracter ne)
Добавляет функцию следования- Parameters:
cls- типne- функция следования- Returns:
- интерфейс для удаления ассоциации
-
remove
public void remove(Class<?> cls, NodesExtracter ne)
Удаляет функцию следования- Parameters:
cls- типne- функция
-
clear
public void clear(Class<?> cls)
Очищает все функции следования для указанного типа- Parameters:
cls- тип
-
clear
public void clear()
Очищает все функции следования для указанного типа
-
hasClass
public boolean hasClass(Class<?> cls)
Проверяет наличие функций у указанного типа- Parameters:
cls- тип- Returns:
- true - есть функции
-
getClasses
public Class[] getClasses()
Возвращает зарегистрированные типы- Returns:
- типы
-
getNodeExtracters
public NodesExtracter[] getNodeExtracters(Class cls)
Возвращает функции следования для указанного типа- Parameters:
cls- тип- Returns:
- функции
- See Also:
Map.get(java.lang.Object)
-
extractersOf
public NodesExtracter[] extractersOf(Class<?> cls)
Возвращает набор функций подходящих для извлечения данных- Parameters:
cls- тип данных- Returns:
- набор подходящих функций
-
fetch
public Eterable<?> fetch(Object node)
Возвращает набор функций подходящих для извлечения данных- Parameters:
node- объект из которого происходит извлечение данных- Returns:
- Объекты которые следуют согласно указанным функциям
-
extract
public Eterable<?> extract(Object from)
Возвращает набор функций подходящих для извлечения данных (синоним fetch).- Specified by:
extractin interfaceNodesExtracter- Parameters:
from- объект из которого происходит извлечение данных- Returns:
- Объекты которые следуют согласно указанным функциям
- See Also:
fetch(java.lang.Object)
-
-