Class SwiftPattern

java.lang.Object
fr.marcwrobel.jbanking.swift.SwiftPattern
All Implemented Interfaces:
Serializable

public final class SwiftPattern extends Object implements Serializable
A partial compiled representation of a SWIFT expression (sort of a regular expression) as used in many SWIFT documents (for instance the IBAN registry document).

This class internally uses a Pattern by transforming the SWIFT expression to a traditional regular expression. As a result the SwiftPattern API is similar to the Pattern API.

The SwiftPattern class partially supports the SWIFT expression by using the following constructions :

Character representations
n digits (numeric characters 0 to 9 only)
a uppercase letters (alphabetic characters A-Z only)
c uppercase and lowercase case alphanumeric characters (A-Z, a-z and 0-9)
e blank space
Length indications
nn! fixed length
nn maximum length

Here are some examples of SWIFT expressions that are supported by this SwiftPattern :

  • 4!n (corresponding regex [0-9]{4}) : four digits
  • 4!c3a (corresponding regex [A-Za-z0-9]{4}[A-Z]{1,3}) : four upper or lowercase alphanumeric characters followed by one to three uppercase letters
  • 2e4!a (corresponding regex [ ]{1,2}[A-Z]{4}) : one or two spaces followed by four uppercase letters

This class has some limitations in order to prevent stack overflows, as explained in Regular expressions should not overflow the stack. The maximum supported length is set to 999 and the maximum number of groups (such as 4!n) is 1000. these limitations are far above anything that can be seen in SWIFT documents and should be sufficient.

Instances of this class are immutable and thread-safe.

This class implements Serializable for convenience, but you are encouraged to use the normalized string representation if possible. Note that no validity check is done during deserialization.

Since:
1.0
See Also:
  • Method Details

    • compile

      public static SwiftPattern compile(String expression)
      Compiles the given SWIFT expression into a SwiftPattern.
      Parameters:
      expression - The expression to be compiled
      Returns:
      a SwiftPattern representing the given expression
      Throws:
      SwiftPatternSyntaxException - if the expression's syntax is invalid
    • matcher

      public Matcher matcher(CharSequence input)
      Creates a matcher that will match the given input against this pattern.
      Parameters:
      input - The character sequence to be matched
      Returns:
      a new matcher for this pattern
    • getExpression

      public String getExpression()
      Returns the SWIFT expression from which this pattern was compiled.
      Returns:
      a non-null string
    • getEquivalentJavaPattern

      public Pattern getEquivalentJavaPattern()
      Returns the java Pattern build using the SWIFT expression.
      Returns:
      a non-null pattern
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Returns this SWIFT pattern expression as a String.
      Overrides:
      toString in class Object
      Returns:
      a non-null string