public class AutoChildNodeLoader<I> extends Object implements NodeLoader<I>
create...
methods are called the actual
node loading is delegated to a parent node loader. If this loader returns
a non-null node, loadChildNodes(DbControl, OverviewContext, Node)
is automatically invoked on it.
The automatic loading can of course only be done one step down, since
the new children probably needs a different parent node loader. It is
possible to make the loading fully recursive by if the NodeLoaderFactory
returned from OverviewContext.getNodeLoaderFactory()
wrap all node loaders it create by an instance of this class.
Modifier and Type | Field and Description |
---|---|
private NodeLoader<I> |
parent |
Constructor and Description |
---|
AutoChildNodeLoader(NodeLoader<I> parent) |
Modifier and Type | Method and Description |
---|---|
Node |
createForwardNode(DbControl dc,
OverviewContext context,
Node parentNode)
Call the same method on the 'parent' node loader.
|
Node |
createPropertyNode(DbControl dc,
OverviewContext context,
Node parentNode)
Call the same method on the 'parent' node loader.
|
Node |
createReverseNode(DbControl dc,
OverviewContext context,
Node childNode)
Call the same method on the 'parent' node loader.
|
Node |
createRootNode(DbControl dc,
OverviewContext context,
I item)
Call the same method on the 'parent' node loader.
|
boolean |
loadChildNodes(DbControl dc,
OverviewContext context,
Node node)
Call the same method on the 'parent' node loader.
|
String |
toString() |
private final NodeLoader<I> parent
public AutoChildNodeLoader(NodeLoader<I> parent)
public Node createForwardNode(DbControl dc, OverviewContext context, Node parentNode)
loadChildNodes(DbControl, OverviewContext, Node)
is called
for each of the new nodes.createForwardNode
in interface NodeLoader<I>
dc
- The DbControl to use for database accesscontext
- The overview contextparentNode
- The parent nodepublic Node createPropertyNode(DbControl dc, OverviewContext context, Node parentNode)
loadChildNodes(DbControl, OverviewContext, Node)
is called
for each of the new nodes.createPropertyNode
in interface NodeLoader<I>
dc
- The DbControl to use for database accesscontext
- The overview contextparentNode
- The parent nodepublic Node createReverseNode(DbControl dc, OverviewContext context, Node childNode)
loadChildNodes(DbControl, OverviewContext, Node)
is called
for each of the new nodes.createReverseNode
in interface NodeLoader<I>
dc
- The DbControl to use for database accesscontext
- The overview contextchildNode
- The child nodepublic Node createRootNode(DbControl dc, OverviewContext context, I item)
loadChildNodes(DbControl, OverviewContext, Node)
is called
on the new node.createRootNode
in interface NodeLoader<I>
dc
- The DbControl to use for database accesscontext
- The overview contextitem
- The root itempublic boolean loadChildNodes(DbControl dc, OverviewContext context, Node node)
loadChildNodes
in interface NodeLoader<I>
dc
- The DbControl to use for database accesscontext
- The overview contextnode
- The node