Package nl.nn.adapterframework.pipes
Class BytesOutputPipe
- java.lang.Object
-
- nl.nn.adapterframework.core.TransactionAttributes
-
- nl.nn.adapterframework.pipes.AbstractPipe
-
- nl.nn.adapterframework.pipes.FixedForwardPipe
-
- nl.nn.adapterframework.pipes.BytesOutputPipe
-
- All Implemented Interfaces:
HasTransactionAttribute
,IConfigurable
,IConfigurationAware
,IExtendedPipe
,IForwardTarget
,INamedObject
,IPipe
,IScopeProvider
,EventThrowing
,org.springframework.beans.factory.Aware
,org.springframework.context.ApplicationContextAware
@ElementType(TRANSLATOR) public class BytesOutputPipe extends FixedForwardPipe
Output bytes as specified by the input XML. Actions are taken on every field tag found in the input XML. Every field tag should have a type attribute that specifies the type of conversion that needs to be done on the string specified by the value attribute. A value attribute also needs to be present for every field tag. Currently two types of conversion are supported:GetBytesFromString
, a conversion from string to bytes as specified by java.lang.String.getBytes(String charsetName)PackedDecimal
, a conversion from string to Packed-decimal
<fields> <field type="GetBytesFromString" value=" TEST 1234 " charset="Cp037"/> </fields>
The Packed-decimal conversion has been implemented according to information found in the following resources:- A description as found at http://www.simotime.com/datapk01.htm
- AS400PackedDecimal.java from jtopen_6_1_source.zip downloaded at http://jt400.sourceforge.net/
- The string +12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5C
- The string -12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5D
- The string 12345 will be translated to three bytes with the following hexadecimal representation: 12 34 5F
- The string 1234 will be translated to three bytes with the following hexadecimal representation: 01 23 4F
<fields> <field type="PackedDecimal" value="+12345" size="16"/> <field type="PackedDecimal" value="+67890" size="16"/> <field type="PackedDecimal" value="+1234" size="16"/> <field type="PackedDecimal" value="-12345" size="16"/> <field type="PackedDecimal" value="-67890" size="16"/> <field type="PackedDecimal" value="-1234" size="16"/> <field type="PackedDecimal" value="12345" size="16"/> <field type="PackedDecimal" value="67890" size="16"/> <field type="PackedDecimal" value="1234" size="16"/> <field type="PackedDecimal" value="+1" size="16"/> <field type="PackedDecimal" value="-1" size="16"/> <field type="PackedDecimal" value="+12" size="16"/> <field type="PackedDecimal" value="-12" size="16"/> <field type="PackedDecimal" value="+123" size="16"/> <field type="PackedDecimal" value="-123" size="16"/> <field type="PackedDecimal" value="+1234" size="16"/> <field type="PackedDecimal" value="-1234" size="16"/> <field type="PackedDecimal" value="+12345" size="16"/> <field type="PackedDecimal" value="-12345" size="16"/> <field type="PackedDecimal" value="+123456" size="16"/> <field type="PackedDecimal" value="-123456" size="16"/> <field type="PackedDecimal" value="+1234567" size="16"/> <field type="PackedDecimal" value="-1234567" size="16"/> <field type="PackedDecimal" value="+12345678" size="16"/> <field type="PackedDecimal" value="-12345678" size="16"/> </fields>
- Since:
- 4.9
- Author:
- Jaco de Groot (***@dynasol.nl)
-
-
Field Summary
-
Fields inherited from class nl.nn.adapterframework.pipes.AbstractPipe
parameterNamesMustBeUnique
-
Fields inherited from class nl.nn.adapterframework.core.TransactionAttributes
log
-
Fields inherited from interface nl.nn.adapterframework.core.IExtendedPipe
LONG_DURATION_MONITORING_EVENT, MESSAGE_SIZE_MONITORING_EVENT, PIPE_EXCEPTION_MONITORING_EVENT
-
-
Constructor Summary
Constructors Constructor Description BytesOutputPipe()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PipeRunResult
doPipe(Message message, PipeLineSession session)
This is where the action takes place.-
Methods inherited from class nl.nn.adapterframework.pipes.FixedForwardPipe
configure, getIfParam, getIfValue, getOnlyIfSessionKey, getOnlyIfValue, getParameterValue, getSuccessForward, getUnlessSessionKey, getUnlessValue, isSkipOnEmptyInput, setIfParam, setIfValue, setOnlyIfSessionKey, setOnlyIfValue, setSkipOnEmptyInput, setUnlessSessionKey, setUnlessValue, skipPipe
-
Methods inherited from class nl.nn.adapterframework.pipes.AbstractPipe
addParameter, consumesSessionVariable, createBean, findForward, getAdapter, getApplicationContext, getChompCharSize, getConfigurationClassLoader, getDurationThreshold, getElementToMove, getElementToMoveChain, getElementToMoveSessionKey, getEmptyInputReplacement, getEventSourceName, getForwards, getGetInputFromFixedValue, getGetInputFromSessionKey, getHideRegex, getInSizeStatDummyObject, getLocker, getLogIntermediaryResults, getMaxThreads, getName, getOutSizeStatDummyObject, getParameterList, getPipeLine, getSecLogSessionKeys, getStoreResultInSessionKey, hasSizeStatistics, isPreserveInput, isRemoveCompactMsgNamespaces, isRestoreMovedElements, isWriteToSecLog, registerEvent, registerForward, setApplicationContext, setChompCharSize, setDurationThreshold, setElementToMove, setElementToMoveChain, setElementToMoveSessionKey, setEmptyInputReplacement, setEventPublisher, setGetInputFromFixedValue, setGetInputFromSessionKey, setHideRegex, setLocker, setLogIntermediaryResults, setMaxThreads, setName, setPipeLine, setPreserveInput, setRemoveCompactMsgNamespaces, setRestoreMovedElements, setSecLogSessionKeys, setSizeStatistics, setStoreResultInSessionKey, setWriteToSecLog, start, stop, throwEvent
-
Methods inherited from class nl.nn.adapterframework.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 nl.nn.adapterframework.core.IExtendedPipe
throwEvent
-
-
-
-
Method Detail
-
doPipe
public PipeRunResult doPipe(Message message, PipeLineSession session) throws PipeRunException
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
-
-