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 (a kind of 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 upper case letters (alphabetic characters A-Z only)
c upper and lower 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 consecutive digits
  • 4!c3a (corresponding regex [A-Za-z0-9]{4}[A-Z]{1,3}) : four consecutive upper or lower case alphanumeric characters followed by one to three upper case letters
  • 2e4!a (corresponding regex [ ]{1,2}[A-Z]{4}) : one or two consecutive spaces followed by four consecutive upper case 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.

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()
      Overrides:
      toString in class Object