public class BasicItemNodeLoaderFactory extends java.lang.Object implements NodeLoaderFactory<BasicItem,java.lang.Object>
BasicItem
node loaders.
The key used in createNodeLoader(Object)
should normally be
an Item
object.Modifier and Type | Field and Description |
---|---|
private boolean |
autoLoadChildren |
private static boolean |
debug |
private java.util.Map<java.lang.Object,java.lang.Class<? extends NodeLoader<? extends BasicItem>>> |
loaders |
private static org.slf4j.Logger |
log |
private boolean |
useNullLoader |
Constructor and Description |
---|
BasicItemNodeLoaderFactory()
Creates a new factory.
|
Modifier and Type | Method and Description |
---|---|
NodeLoader<? extends BasicItem> |
createNodeLoader(java.lang.Object key)
Create a new node loader for loading nodes for the specified item
type.
|
boolean |
isAutoLoadingChildren()
Get the auto load children setting.
|
protected void |
registerCheckedNodeLoader(java.lang.Object key,
java.lang.Class<? extends NodeLoader<? extends BasicItem>> loaderClass)
Register a node loader implementation that you are sure fulfills the
requirements.
|
protected void |
registerDefaultNodeLoaders()
Registers default item node loaders from
BioSource
to Experiment , etc. |
void |
registerNodeLoader(java.lang.Object key,
java.lang.Class<? extends NodeLoader<? extends BasicItem>> loaderClass)
Register a node loader implementation.
|
void |
setAutoLoadChildren(boolean autoLoadChildren)
Set a flag that determines if the factory should create
node loaders that automatically loads child nodes or not.
|
void |
setUseNullLoaderIfNotFound(boolean useNullLoader)
Set a flag that determines if a
NullNodeLoader should be used
or if an ItemNotFoundException should be thrown
if no registered node loader is found for a specific key. |
boolean |
useNullLoaderIfNotFound()
Get the null loader setting.
|
private static final org.slf4j.Logger log
private static final boolean debug
private final java.util.Map<java.lang.Object,java.lang.Class<? extends NodeLoader<? extends BasicItem>>> loaders
private boolean autoLoadChildren
private boolean useNullLoader
public BasicItemNodeLoaderFactory()
public NodeLoader<? extends BasicItem> createNodeLoader(java.lang.Object key)
NullNodeLoader
is returned or an exception is thrown
depending on the useNullLoaderIfNotFound()
option.createNodeLoader
in interface NodeLoaderFactory<BasicItem,java.lang.Object>
key
- An Item
objectItemNotFoundException
- If no node loader is found and the
useNullLoaderIfNotFound()
setting is falsepublic void registerNodeLoader(java.lang.Object key, java.lang.Class<? extends NodeLoader<? extends BasicItem>> loaderClass) throws java.lang.NoSuchMethodException, java.lang.ClassCastException
ClassUtil.checkAndLoadClass(ClassLoader, String, boolean, Class...)
key
- The item type the node loader handlesloaderClass
- The class name of a class that implements NodeLoader
,
or null to unregister a node loaderjava.lang.NoSuchMethodException
- If the given class has no public no-argument
constructorjava.lang.ClassCastException
- If the given class doesn't implement the
NodeLoader
interfaceprotected void registerCheckedNodeLoader(java.lang.Object key, java.lang.Class<? extends NodeLoader<? extends BasicItem>> loaderClass)
NodeLoader
interface.registerNodeLoader(Object, Class)
public void setAutoLoadChildren(boolean autoLoadChildren)
AutoChildNodeLoader
.
This will generate a recursive pattern if the used node loader:
OverviewContext.getNodeLoaderFactory()
.
The node loader should NOT instantiate child new loaders by itself.
AbstractNodeLoader
.
autoLoadChildren
- TRUE to create node loaders that automatically
loads children, FALSE otherwisepublic boolean isAutoLoadingChildren()
public boolean useNullLoaderIfNotFound()
setUseNullLoaderIfNotFound(boolean)
public void setUseNullLoaderIfNotFound(boolean useNullLoader)
NullNodeLoader
should be used
or if an ItemNotFoundException
should be thrown
if no registered node loader is found for a specific key.useNullLoader
- TRUE to use a NullNodeLoader, FALSE to throw
an exceptionprotected void registerDefaultNodeLoaders()
BioSource
to Experiment
, etc.