public interface DocumentPreprocessor
DocumentPreprocessor provides a mechanism to pre-process an
XmlElement, representing part or all of an XmlDocument
prior to the said XmlElement being processes using configured
ElementProcessors.
Rule 1: Implementations of this interface must remain
stateless with respect to the XmlElements or
ProcessingContext that they are passed. That is, no state should
be retained relating to either of these concepts for each method call.
Rule 2: No assumptions can be made as to the number of times
a DocumentPreprocessor may be called for a particular document or
element, simply because other DocumentPreprocessors may request
"re-pre-processing".
Violating either of these two rules may likely result in unpredictable application behavior.
| Modifier and Type | Method and Description |
|---|---|
boolean |
preprocess(ProcessingContext context,
XmlElement xmlElement)
Performs pre-processing of the an
XmlElement, optionally mutating
it (or it's children) as required. |
boolean preprocess(ProcessingContext context, XmlElement xmlElement) throws ConfigurationException
XmlElement, optionally mutating
it (or it's children) as required.
Implementations of this interface may traverse and/or perform any
mutations on the specified XmlElement.
Note: It is illegal to modify an XmlElement
outside the scope of the provided XmlElement. eg: Attempting
to modify any of the parents of the provided XmlElement
may result in undefined and unexpected behavior. Only mutations of the
XmlElement itself or children is permitted.
context - the ProcessingContext in which the
XmlElement is being pre-processedxmlElement - the XmlElement to pre-processtrue if the specified XmlElement should be
reconsidered either by this or other DocumentPreprocessors
for re-preprocessing due to mutations on the XmlElement,
false otherwise.ConfigurationException - if during pre-processing of the
XmlElement a configuration issue was
discovered (or if pre-processing fails for some reason)