Module org.firebirdsql.jaybird
Package org.firebirdsql.jdbc.metadata

# Class MetadataPatternMatcher

java.lang.Object
org.firebirdsql.jdbc.metadata.MetadataPatternMatcher

@InternalApi public abstract sealed class MetadataPatternMatcher extends Object
Emulates behavior of a database metadata pattern.

This behaves similar to (but not 100% identical to) a SQL `LIKE` pattern with `ESCAPE '\'` clause.

This implementation is not thread-safe.

Since:
  4.0
Author:
  Mark Rotteveel

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static MetadataPatternMatcher`
  `fromPattern(MetadataPattern metadataPattern)`
  Derives a metadata pattern matcher from a metadata pattern instance.
  `abstract boolean`
  `matches(String value)`
  Checks if `value` matches the pattern of this matcher.
  `static String`
  `patternToRegex(String metadataPattern)`
  Creates a regular expression pattern equivalent to the provided database metadata pattern.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### fromPattern

    public static MetadataPatternMatcher fromPattern(MetadataPattern metadataPattern)
    Derives a metadata pattern matcher from a metadata pattern instance.
    Parameters:
      `metadataPattern` - Metadata pattern instance
    Returns:
      Matcher for `metadataPattern`

  - ### matches

    public abstract boolean matches(String value)
    Checks if `value` matches the pattern of this matcher.

    This method is not thread-safe.

    Parameters:
      `value` - Value to check
    Returns:
      `true` if `value` matches this pattern, `false` otherwise

  - ### patternToRegex

    public static String patternToRegex(String metadataPattern)
    Creates a regular expression pattern equivalent to the provided database metadata pattern.
    Parameters:
      `metadataPattern` - database metadata pattern
    Returns:
      Pattern for the provided like string.