public interface NodeValidator<I>
The validation of a node is part of the node creation and happens
in one of the NodeFactory.createMissingNode(Node)
,
NodeFactory.createDeniedNode(Node)
or NodeFactory.createNode(net.sf.basedb.core.BasicItem, Object, Node, ChildNodeDirection)
methods. The validation takes place in two steps. The first step calls
one of the three pre methods:
preMissingItem(DbControl, OverviewContext, Node)
preDeniedItem(DbControl, OverviewContext, Node)
preValidate(DbControl, OverviewContext, Object, Node)
false
no new node is created
and further processing is stopped. The second step happens after
the node has been created and calls one of the three post
methods:
postMissingItem(DbControl, OverviewContext, Node, Node)
postDeniedItem(DbControl, OverviewContext, Node, Node)
postValidate(DbControl, OverviewContext, Node, Node)
The last step is to validate a complete folder. This can't happen from
the NodeFactory
since it only deals with individual nodes. It
is the responsibility of a NodeLoader
to call postValidateFolder(DbControl, OverviewContext, Node, Node)
after it has finished
loading a folder node. NOTE! This should be called even if the folder node
is null, or if the folder doesn't contain any children (some validators may
want to report on missing items!)
Validations failures should be registered with the current context
using OverviewContext.createFailure(Validator, Node, String, Fix...)
.
Modifier and Type | Method and Description |
---|---|
void |
postDeniedItem(DbControl dc,
OverviewContext context,
Node node,
Node parentNode)
Validate an item that the current user doen't have access to after a
node has been created for it.
|
void |
postMissingItem(DbControl dc,
OverviewContext context,
Node node,
Node parentNode)
Validate a missing item after a node has been created for it.
|
void |
postValidate(DbControl dc,
OverviewContext context,
Node node,
Node parentNode)
Validate an existing item after a node has been created for it.
|
void |
postValidateFolder(DbControl dc,
OverviewContext context,
Node folderNode,
Node parentNode)
Validate a folder node after all child (item-type) nodes has been
added to the folder.
|
boolean |
preDeniedItem(DbControl dc,
OverviewContext context,
Node parentNode)
Validate an item that the current user doen't have access to before creating a
node for it.
|
boolean |
preMissingItem(DbControl dc,
OverviewContext context,
Node parentNode)
Validate a missing item before creating a node for it.
|
boolean |
preValidate(DbControl dc,
OverviewContext context,
I item,
Node parentNode)
Validate an existing item before creating a node for it.
|
boolean preMissingItem(DbControl dc, OverviewContext context, Node parentNode)
Failure
for the parent node and registering
it with the context.dc
- A DbControl to use if the validation needs to access the databasecontext
- The current overview contextparentNode
- The parent node that is missing the itemboolean preDeniedItem(DbControl dc, OverviewContext context, Node parentNode)
dc
- A DbControl to use if the validation needs to access the databasecontext
- The current overview contextparentNode
- The parent node that is linked with the itemboolean preValidate(DbControl dc, OverviewContext context, I item, Node parentNode)
dc
- A DbControl to use if the validation needs to access the databasecontext
- The current overview contextitem
- The item to validateparentNode
- The parent node that is linked with the itemvoid postMissingItem(DbControl dc, OverviewContext context, Node node, Node parentNode)
dc
- A DbControl to use if the validation needs to access the databasecontext
- The current overview contextnode
- The node object that represents the missing itemparentNode
- The parent node that is missing the itemvoid postDeniedItem(DbControl dc, OverviewContext context, Node node, Node parentNode)
dc
- A DbControl to use if the validation needs to access the databasecontext
- The current overview contextnode
- The node object that represents the unaccessible itemparentNode
- The parent node that is linked with the itemvoid postValidate(DbControl dc, OverviewContext context, Node node, Node parentNode)
dc
- A DbControl to use if the validation needs to access the databasecontext
- The current overview contextnode
- The node object that represents itemparentNode
- The parent node that is linked with the itemvoid postValidateFolder(DbControl dc, OverviewContext context, Node folderNode, Node parentNode)
dc
- A DbControl to use for database accesscontext
- The current overview contextfolderNode
- The folder node, or null if no folder has been createdparentNode
- The parent node (never null)