Class ClassNode

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>> typedExtracter  
    protected ClassSet types  
  • Constructor Summary

    Constructors 
    Constructor Description
    ClassNode()
    Конструктор по умочанию
    ClassNode​(ClassNode src)
    Конструктор копирования с блокиовкой
  • Method Summary

    Modifier and Type Method Description
    java.io.Closeable add​(java.lang.Class cls, NodesExtracter ne)
    Добавляет функцию следования
    <T> ClassNode adds​(java.lang.Class<T> cls, NodesExtracter<T,​?>... ne)
    Добавляет функции следования для указанного типа
    void clear()
    Очищает все функции следования для указанного типа
    void clear​(java.lang.Class cls)
    Очищает все функции следования для указанного типа
    ClassNode clone()
    Клонирование
    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)
    Возвращает функции следования для указанного типа
    boolean hasClass​(java.lang.Class cls)
    Проверяет наличие функций у указанного типа
    void remove​(java.lang.Class cls, NodesExtracter ne)
    Удаляет функцию следования

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.util.function.Function

    andThen, compose

    Methods inherited from interface xyz.cofe.scn.LongScn

    nextscn, nextscn, scn

    Methods inherited from interface xyz.cofe.collection.NodesExtracter

    apply
  • Field Details

  • Constructor Details

    • ClassNode

      public ClassNode()
      Конструктор по умочанию
    • ClassNode

      public ClassNode​(ClassNode src)
      Конструктор копирования с блокиовкой
      Parameters:
      src - образец для копирования
  • Method Details

    • clone

      public ClassNode clone()
      Клонирование
      Overrides:
      clone in class java.lang.Object
      Returns:
      клон
    • adds

      public <T> ClassNode adds​(java.lang.Class<T> cls, NodesExtracter<T,​?>... ne)
      Добавляет функции следования для указанного типа
      Type Parameters:
      T - тип
      Parameters:
      cls - тип
      ne - функции
      Returns:
      self ссылка
    • add

      public java.io.Closeable add​(java.lang.Class cls, NodesExtracter ne)
      Добавляет функцию следования
      Parameters:
      cls - тип
      ne - функция следования
      Returns:
      интерфейс для удаления ассоциации
    • remove

      public void remove​(java.lang.Class cls, NodesExtracter ne)
      Удаляет функцию следования
      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

      public NodesExtracter[] getNodeExtracters​(java.lang.Class cls)
      Возвращает функции следования для указанного типа
      Parameters:
      cls - тип
      Returns:
      функции
      See Also:
      Map.get(java.lang.Object)
    • extractersOf

      public NodesExtracter[] extractersOf​(java.lang.Class cls)
      Возвращает набор функций подходящих для извлечения данных
      Parameters:
      cls - тип данных
      Returns:
      набор подходящих функций
    • fetch

      public Eterable fetch​(java.lang.Object node)
      Возвращает набор функций подходящих для извлечения данных
      Parameters:
      node - объект из которого происходит извлечение данных
      Returns:
      Объекты которые следуют согласно указанным функциям
    • extract

      public Eterable extract​(java.lang.Object from)
      Возвращает набор функций подходящих для извлечения данных (синоним fetch).
      Specified by:
      extract in interface NodesExtracter
      Parameters:
      from - объект из которого происходит извлечение данных
      Returns:
      Объекты которые следуют согласно указанным функциям
      See Also:
      fetch(java.lang.Object)