Package org.frankframework.pipes
Class AbstractValidator
java.lang.Object
org.frankframework.core.TransactionAttributes
org.frankframework.pipes.AbstractPipe
org.frankframework.pipes.FixedForwardPipe
org.frankframework.pipes.AbstractValidator
- All Implemented Interfaces:
HasTransactionAttribute
,IConfigurable
,IConfigurationAware
,IDualModeValidator
,IForwardTarget
,INamedObject
,IPipe
,IScopeProvider
,IValidator
,IWithParameters
,EventThrowing
,HasStatistics
,org.springframework.beans.factory.Aware
,org.springframework.context.ApplicationContextAware
- Direct Known Subclasses:
JsonValidator
,XmlValidator
@Forward(name="parserError",description="a parser exception occurred, probably caused by a non-well-formed document. If not specified, <code>failure</code> is used in such a case.") @Forward(name="failure",description="the document is not valid according to the configured schema.") @Forward(name="warnings",description="warnings occurred. If not specified, <code>success</code> is used.") @Forward(name="outputParserError",description="a <code>parserError</code> when validating a response. If not specified, <code>parserError</code> is used.") @Forward(name="outputFailure",description="a <code>failure</code> when validating a response. If not specified, <code>failure</code> is used.") @Forward(name="outputWarnings",description="warnings occurred when validating a response. If not specified, <code>warnings</code> is used.")
public abstract class AbstractValidator
extends FixedForwardPipe
implements IDualModeValidator
Pipe that validates the input message against a Schema.
- Author:
- Gerrit van Brakel
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Wrapper for the response validator. -
Field Summary
Fields inherited from class org.frankframework.pipes.AbstractPipe
parameterNamesMustBeUnique
Fields inherited from class org.frankframework.core.TransactionAttributes
log
Fields inherited from interface org.frankframework.core.IPipe
LONG_DURATION_MONITORING_EVENT, MESSAGE_SIZE_MONITORING_EVENT, PIPE_EXCEPTION_MONITORING_EVENT
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
checks for correct configuration of forwardprotected final PipeForward
determineForward
(AbstractXmlValidator.ValidationResult validationResult, PipeLineSession session, boolean responseMode, Supplier<String> errorMessageProvider) final PipeRunResult
doPipe
(Message message, PipeLineSession session) This is where the action takes place.doPipe
(Message input, PipeLineSession session, boolean responseMode, String messageRoot) getRoot()
protected boolean
boolean
boolean
void
setForwardFailureToSuccess
(boolean b) Deprecated.void
setResponseRoot
(String responseRoot) Name of the response root elementvoid
Name of the root elementvoid
setSchemaSessionKey
(String schemaSessionKey) Session key for retrieving a schemaprotected final PipeForward
validate
(String messageToValidate, PipeLineSession session) protected abstract PipeForward
validate
(Message messageToValidate, PipeLineSession session, boolean responseMode, String messageRoot) validate
(Message message, PipeLineSession session, String messageRoot) Methods inherited from class org.frankframework.pipes.FixedForwardPipe
getIfParam, getIfValue, getOnlyIfSessionKey, getOnlyIfValue, getParameterValue, getSuccessForward, getUnlessSessionKey, getUnlessValue, isSkipOnEmptyInput, setIfParam, setIfValue, setOnlyIfSessionKey, setOnlyIfValue, setSkipOnEmptyInput, setUnlessSessionKey, setUnlessValue, skipPipe
Methods inherited from class org.frankframework.pipes.AbstractPipe
addForward, addParameter, consumesSessionVariable, createBean, findForward, getAdapter, getApplicationContext, getChompCharSize, getConfigurationClassLoader, getDurationThreshold, getElementToMove, getElementToMoveChain, getElementToMoveSessionKey, getEmptyInputReplacement, getEventSourceName, getForwards, getGetInputFromFixedValue, getGetInputFromSessionKey, getHideRegex, getLocker, getLogIntermediaryResults, getMaxThreads, getName, getParameterList, getPipeLine, getSecLogSessionKeys, getStoreResultInSessionKey, hasRegisteredForward, isPreserveInput, isRemoveCompactMsgNamespaces, isRestoreMovedElements, isWriteToSecLog, registerEvent, setApplicationContext, setChompCharSize, setDurationThreshold, setElementToMove, setElementToMoveChain, setElementToMoveSessionKey, setEmptyInputReplacement, setEventPublisher, setGetInputFromFixedValue, setGetInputFromSessionKey, setHideRegex, setLocker, setLogIntermediaryResults, setMaxThreads, setName, setPipeLine, setPreserveInput, setRemoveCompactMsgNamespaces, setRestoreMovedElements, setSecLogSessionKeys, setSizeStatistics, setStoreResultInSessionKey, setWriteToSecLog, sizeStatisticsEnabled, start, stop, throwEvent
Methods inherited from class org.frankframework.core.TransactionAttributes
configureTransactionAttributes, getTransactionAttribute, getTransactionTimeout, getTxDef, isTransacted, isTransacted, setTransacted, setTransactionAttribute, setTransactionTimeout
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.context.ApplicationContextAware
setApplicationContext
Methods inherited from interface org.frankframework.core.IConfigurationAware
getApplicationContext, getName
Methods inherited from interface org.frankframework.core.IForwardTarget
getName
Methods inherited from interface org.frankframework.core.INamedObject
getName
Methods inherited from interface org.frankframework.core.IPipe
addForward, consumesSessionVariable, getChompCharSize, getDurationThreshold, getElementToMove, getElementToMoveChain, getElementToMoveSessionKey, getEmptyInputReplacement, getForwards, getGetInputFromFixedValue, getGetInputFromSessionKey, getHideRegex, getLocker, getLogIntermediaryResults, getMaxThreads, getSecLogSessionKeys, getStoreResultInSessionKey, isPreserveInput, isRemoveCompactMsgNamespaces, isRestoreMovedElements, isWriteToSecLog, registerEvent, setChompCharSize, setDurationThreshold, setElementToMove, setElementToMoveChain, setElementToMoveSessionKey, setEmptyInputReplacement, setGetInputFromFixedValue, setGetInputFromSessionKey, setHideRegex, setLocker, setLogIntermediaryResults, setPipeLine, setPreserveInput, setRemoveCompactMsgNamespaces, setRestoreMovedElements, setSecLogSessionKeys, setStoreResultInSessionKey, setWriteToSecLog, sizeStatisticsEnabled, start, stop, throwEvent, throwEvent
Methods inherited from interface org.frankframework.core.IScopeProvider
getConfigurationClassLoader
Methods inherited from interface org.frankframework.core.IValidator
setName
-
Constructor Details
-
AbstractValidator
public AbstractValidator()
-
-
Method Details
-
configure
Description copied from class:FixedForwardPipe
checks for correct configuration of forward- Specified by:
configure
in interfaceIConfigurable
- Specified by:
configure
in interfaceIPipe
- Overrides:
configure
in classFixedForwardPipe
- Throws:
ConfigurationException
-
doPipe
Description copied from interface:IPipe
This is where the action takes place. Pipes may only throw a PipeRunException, to be handled by the caller of this object. Implementations must either consume the message, or pass it on to the next Pipe in the PipeRunResult. If the result of the Pipe does not depend on the input, like for theFixedResultPipe
, the Pipe can schedule the input to be closed at session exit, by callingMessage.closeOnCloseOf(PipeLineSession, String)
This allows the previous Pipe to release any resources (e.g. connections) that it might have kept open until the message was consumed. Doing so avoids connections leaking from pools, while it enables efficient streaming processing of data while it is being read from a stream.- Specified by:
doPipe
in interfaceIPipe
- Throws:
PipeRunException
-
validate
public PipeRunResult validate(Message message, PipeLineSession session, String messageRoot) throws PipeRunException - Specified by:
validate
in interfaceIValidator
- Throws:
PipeRunException
-
doPipe
public PipeRunResult doPipe(Message input, PipeLineSession session, boolean responseMode, String messageRoot) throws PipeRunException - Throws:
PipeRunException
-
validate
protected final PipeForward validate(String messageToValidate, PipeLineSession session) throws PipeRunException, XmlValidatorException, ConfigurationException -
validate
protected abstract PipeForward validate(Message messageToValidate, PipeLineSession session, boolean responseMode, String messageRoot) throws PipeRunException, XmlValidatorException, ConfigurationException -
determineForward
protected final PipeForward determineForward(AbstractXmlValidator.ValidationResult validationResult, PipeLineSession session, boolean responseMode, Supplier<String> errorMessageProvider) throws PipeRunException - Throws:
PipeRunException
-
isConfiguredForMixedValidation
protected boolean isConfiguredForMixedValidation() -
getResponseValidator
- Specified by:
getResponseValidator
in interfaceIDualModeValidator
-
setSchemaSessionKey
Session key for retrieving a schema -
setRoot
Name of the root element -
setResponseRoot
Name of the response root element -
setForwardFailureToSuccess
@Deprecated @ConfigurationWarning("please specify a forward with name=failure instead") public void setForwardFailureToSuccess(boolean b) Deprecated.If settrue
, the failure forward is replaced by the success forward (like a warning mode) -
getSchemaSessionKey
-
getRoot
-
getResponseRoot
-
isForwardFailureToSuccess
public boolean isForwardFailureToSuccess() -
isThrowException
public boolean isThrowException()
-