@Override
public Iterable extract(Object from)
{
if( from==null )
{
NodesExtracter next = getNextExtracter();
if( next!=null )return nextExtracter.extract(from);
return getDefaultIterable();
}
Class cls = from.getClass();
Map<Class, NodesExtracter> map = getExtractersMap();
if( map.containsKey(cls) )
{
NodesExtracter ext = map.get(cls);
if( ext==null )
{
NodesExtracter next = getNextExtracter();
if( next!=null )return nextExtracter.extract(from);
return getDefaultIterable();
}
return ext.extract(from);
}
NodesExtracter next = getNextExtracter();
if( next!=null )return nextExtracter.extract(from);
return getDefaultIterable();
}