Package org.frankframework.collection
Class AbstractCollectorPipe<C extends ICollector<P>,P>
java.lang.Object
org.frankframework.core.TransactionAttributes
org.frankframework.pipes.AbstractPipe
org.frankframework.pipes.FixedForwardPipe
org.frankframework.collection.AbstractCollectorPipe<C,P>
- Type Parameters:
C
- Collector instanceP
- parts that are added to the collector
- All Implemented Interfaces:
HasTransactionAttribute
,IConfigurable
,IConfigurationAware
,IForwardTarget
,INamedObject
,IPipe
,IScopeProvider
,IWithParameters
,EventThrowing
,HasStatistics
,org.springframework.beans.factory.Aware
,org.springframework.context.ApplicationContextAware
- Direct Known Subclasses:
ZipWriterPipe
Base class for pipes that can collect items, such as multipart messages and zip archives.
- Author:
- Niels Meijer
-
Nested Class Summary
-
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 TypeMethodDescriptionprotected void
addPartToCollection
(Collection<C, P> collection, Message input, PipeLineSession session, ParameterValueList pvl) protected Message
closeCollector
(Collection<C, P> collection, PipeLineSession session) void
checks for correct configuration of forwardprotected abstract C
createCollector
(Message input, PipeLineSession session) protected final Message
doAction
(AbstractCollectorPipe.Action action, Message input, PipeLineSession session) doPipe
(Message input, PipeLineSession session) This is where the action takes place.Collectors must be opened before you can write content to them, after it's closed you can no longer write to it.protected Collection<C,
P> getCollection
(PipeLineSession session) Session key used to refer to collection.protected ParameterValueList
getParameterValueList
(Message input, PipeLineSession session) void
Collectors must be opened before you can write content to them, after it's closed you can no longer write to it.void
setCollectionName
(String collectionName) Session key used to refer to collection.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.frankframework.core.IPipe
throwEvent
-
Constructor Details
-
AbstractCollectorPipe
public AbstractCollectorPipe()
-
-
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.- Throws:
PipeRunException
-
getCollection
@Nullable protected Collection<C,P> getCollection(PipeLineSession session) throws CollectionException - Throws:
CollectionException
-
getParameterValueList
protected ParameterValueList getParameterValueList(Message input, PipeLineSession session) throws CollectionException - Throws:
CollectionException
-
doAction
@Nullable protected final Message doAction(AbstractCollectorPipe.Action action, Message input, PipeLineSession session) throws CollectionException - Throws:
CollectionException
-
addPartToCollection
protected void addPartToCollection(Collection<C, P> collection, Message input, PipeLineSession session, ParameterValueList pvl) throws CollectionException- Throws:
CollectionException
-
createCollector
protected abstract C createCollector(Message input, PipeLineSession session) throws CollectionException - Throws:
CollectionException
-
closeCollector
protected Message closeCollector(Collection<C, P> collection, PipeLineSession session) throws CollectionException- Throws:
CollectionException
-
getAction
Collectors must be opened before you can write content to them, after it's closed you can no longer write to it.- Default value
- WRITE
-
setAction
Collectors must be opened before you can write content to them, after it's closed you can no longer write to it.- Default value
- WRITE
-
getCollectionName
Session key used to refer to collection. Must be specified with another value if multiple CollectorPipes are active at the same time in the same session- Default value
- collection
-
setCollectionName
Session key used to refer to collection. Must be specified with another value if multiple CollectorPipes are active at the same time in the same session- Default value
- collection
-