Package org.frankframework.pipes
Class XmlIf
java.lang.Object
org.frankframework.core.TransactionAttributes
org.frankframework.pipes.AbstractPipe
org.frankframework.pipes.XmlIf
- All Implemented Interfaces:
HasTransactionAttribute
,IConfigurable
,IConfigurationAware
,IForwardTarget
,INamedObject
,IPipe
,IScopeProvider
,IWithParameters
,EventThrowing
,HasStatistics
,org.springframework.beans.factory.Aware
,org.springframework.context.ApplicationContextAware
@Forward(name="*",description="when {@literal thenForwardName} or {@literal elseForwardName} are used") @Forward(name="then",description="the configured condition is met") @Forward(name="else",description="the configured condition is not met")
@EnterpriseIntegrationPattern(ROUTER)
public class XmlIf
extends AbstractPipe
Selects a forward, based on XPath evaluation
- Since:
- 4.3
- Author:
- Peter Leeuwenburgh
-
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
boolean
consumesSessionVariable
(String sessionKey) returnstrue
if the pipe or one of its children use the named session variable.doPipe
(Message message, PipeLineSession session) This is where the action takes place.getRegex()
int
boolean
protected String
makeStylesheet
(String xpathExpression, String resultVal) void
setElseForwardName
(String elseForwardName) forward returned when output isfalse
void
setExpressionValue
(String expressionValue) a string to compare the result of the xpathExpression (or the input-message itself) to.void
setNamespaceAware
(boolean b) controls namespace-awareness of XSLT transformationvoid
setNamespaceDefs
(String namespaceDefs) namespace definitions for xpathExpression.void
Deprecated, for removal: This API element is subject to removal in a future version.void
setSessionKey
(String sessionKey) Deprecated, for removal: This API element is subject to removal in a future version.void
setThenForwardName
(String thenForwardName) forward returned when output istrue
void
setXpathExpression
(String string) xpath expression to be applied to the input-message. if not set, no transformation is donevoid
setXsltVersion
(int xsltVersion) If set to2
or3
a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan)Methods inherited from class org.frankframework.pipes.AbstractPipe
addForward, addParameter, 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.frankframework.core.IPipe
throwEvent
-
Constructor Details
-
XmlIf
public XmlIf()
-
-
Method Details
-
makeStylesheet
-
configure
Description copied from class:AbstractPipe
configure()
is called after thePipeline
is registered at theAdapter
. Purpose of this method is to reduce creating connections to databases etc. in thedoPipe()
method. As much as possible class-instantiating should take place in theconfigure()
method, to improve performance.- Specified by:
configure
in interfaceIConfigurable
- Specified by:
configure
in interfaceIPipe
- Overrides:
configure
in classAbstractPipe
- 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.- Throws:
PipeRunException
-
consumesSessionVariable
Description copied from interface:IPipe
returnstrue
if the pipe or one of its children use the named session variable. Callers can use this to determine if a message needs to be preserved.- Specified by:
consumesSessionVariable
in interfaceIPipe
- Overrides:
consumesSessionVariable
in classAbstractPipe
-
setSessionKey
@Deprecated(forRemoval=true, since="7.7.0") @ConfigurationWarning("Please use getInputFromSessionKey instead.") public void setSessionKey(String sessionKey) Deprecated, for removal: This API element is subject to removal in a future version.name of the key in thepipelinesession
to retrieve the input-message from. if not set, the current input message of the pipe is taken. n.b. same asgetinputfromsessionkey
-
setExpressionValue
a string to compare the result of the xpathExpression (or the input-message itself) to. If not specified, a non-empty result leads to the 'then'-forward, an empty result to 'else'-forward -
setThenForwardName
forward returned when output istrue
- Default value
- then
-
setElseForwardName
forward returned when output isfalse
- Default value
- else
-
setXpathExpression
xpath expression to be applied to the input-message. if not set, no transformation is done -
setRegex
@Deprecated(forRemoval=true, since="9.0") @ConfigurationWarning("Use RegExPipe instead") public void setRegex(String regex) Deprecated, for removal: This API element is subject to removal in a future version.Regular expression to be applied to the input-message (ignored ifxpathExpression
is specified). The input-message fully matching the given regular expression leads to the 'then'-forward -
setXsltVersion
public void setXsltVersion(int xsltVersion) If set to2
or3
a Saxon (net.sf.saxon) xslt processor 2.0 or 3.0 respectively will be used, otherwise xslt processor 1.0 (org.apache.xalan)- Default value
- 2
-
setNamespaceDefs
namespace definitions for xpathExpression. Must be in the form of a comma or space separated list ofprefix=namespaceuri
definitions. -
setNamespaceAware
public void setNamespaceAware(boolean b) controls namespace-awareness of XSLT transformation- Default value
- true
-
getNamespaceDefs
-
getSessionKey
-
getXpathExpression
-
getExpressionValue
-
getThenForwardName
-
getElseForwardName
-
getRegex
-
getXsltVersion
public int getXsltVersion() -
isNamespaceAware
public boolean isNamespaceAware()
-