Class CompareStringPipe

All Implemented Interfaces:
HasTransactionAttribute, IConfigurable, IConfigurationAware, IForwardTarget, INamedObject, IPipe, IScopeProvider, IWithParameters, EventThrowing, HasStatistics, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

@Forward(name="lessthan",description="operand1 < operand2") @Forward(name="greaterthan",description="operand1 > operand2") @Forward(name="equals",description="operand1 = operand2") @Category(BASIC) @EnterpriseIntegrationPattern(ROUTER) public class CompareStringPipe extends AbstractPipe
Pipe that lexicographically compares two strings, that must NOT be empty.
Author:
Peter Leeuwenburgh
Specific parameters
operand1 The first operand, holds v1. Defaults to input message, operand2 The second operand, holds v2. Defaults to input message, ignorepatterns (optional) contains a xml table with references to substrings which have to be ignored during the comparison. This xml table has the following layout:

 <ignores>
 	   <ignore>
 	       <after>...</after>
 	       <before>...</before>
 	   </ignore>
 	   <ignore>
 	       <after>...</after>
 	       <before>...</before>
 	   </ignore>
 </ignores>
 

Substrings between "after" and "before" are ignored
  • Field Details

  • Constructor Details

    • CompareStringPipe

      public CompareStringPipe()
  • Method Details

    • configure

      public void configure() throws ConfigurationException
      Description copied from class: AbstractPipe
      configure() is called after the Pipeline is registered at the Adapter. Purpose of this method is to reduce creating connections to databases etc. in the doPipe() method. As much as possible class-instantiating should take place in the configure() method, to improve performance.
      Specified by:
      configure in interface IConfigurable
      Specified by:
      configure in interface IPipe
      Overrides:
      configure in class AbstractPipe
      Throws:
      ConfigurationException
    • 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 the FixedResultPipe, the Pipe can schedule the input to be closed at session exit, by calling Message.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

      public boolean consumesSessionVariable(String sessionKey)
      Description copied from interface: IPipe
      returns true 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 interface IPipe
      Overrides:
      consumesSessionVariable in class AbstractPipe
    • isXml

      public boolean isXml()
    • setXml

      public void setXml(boolean b)
      when set true the string values to compare are considered to be xml strings and before the actual compare both xml strings are transformed to a canonical form
      Default value
      false