Package org.firebirdsql.jdbc.metadata

## Class MetadataPattern

- java.lang.Object
- - org.firebirdsql.jdbc.metadata.MetadataPattern

-     @InternalApi
      public final class MetadataPattern
      extends java.lang.Object

  Holder of a database metadata pattern.

  Provides information whether the pattern is the all-pattern, or if the condition needs a normal equality comparison, a SQL `LIKE`, or a SQL `STARTING WITH`.

  Since:
    4.0
  Author:
    Mark Rotteveel

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `MetadataPattern.ConditionType` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static MetadataPattern` | `compile​(java.lang.String metadataPattern)` | Compiles the metadata pattern.
    `static boolean` | `containsPatternSpecialChars​(java.lang.String pattern)` | Scans string to determine if string contains any of `\_%` that indicates additional processing is needed.
    `static java.lang.String` | `escapeWildcards​(java.lang.String objectName)` | Escapes the like wildcards and escape (`\_%` in the provided search string with a `\`.
    `MetadataPattern.ConditionType` | `getConditionType()` |
    `java.lang.String` | `getConditionValue()` |
    `static boolean` | `isAllCondition​(java.lang.String metadataPattern)` |
    `static boolean` | `isPatternSpecialChar​(char charVal)` | Checks if character is a database metadata pattern special.
    `java.lang.String` | `renderCondition​(java.lang.String columnName)` | Renders the condition for this pattern.
    `MetadataPatternMatcher` | `toMetadataPatternMatcher()` |

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

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

- - ### Method Detail

    - #### getConditionType

          public MetadataPattern.ConditionType getConditionType()

      Returns:
        Type of condition to use for this metadata pattern

    - #### getConditionValue

          public java.lang.String getConditionValue()

      Returns:
        Value for the condition; `null` signals no condition

    - #### renderCondition

          public java.lang.String renderCondition​(java.lang.String columnName)

      Renders the condition for this pattern.
      Parameters:
        `columnName` - column name
      Returns:
        Rendered condition (can be empty string if there is no condition).

    - #### toMetadataPatternMatcher

          public MetadataPatternMatcher toMetadataPatternMatcher()

      Returns:
        Metadata pattern matcher for this metadata pattern

    - #### compile

          public static MetadataPattern compile​(java.lang.String metadataPattern)

      Compiles the metadata pattern.
      Parameters:
        `metadataPattern` - Metadata pattern string
      Returns:
        MetadataPattern instance

    - #### containsPatternSpecialChars

          public static boolean containsPatternSpecialChars​(java.lang.String pattern)

      Scans string to determine if string contains any of `\_%` that indicates additional processing is needed.
      Parameters:
        `pattern` - metadata pattern
      Returns:
        `true` if the string contains any like special characters

    - #### isPatternSpecialChar

          public static boolean isPatternSpecialChar​(char charVal)

      Checks if character is a database metadata pattern special.
      Parameters:
        `charVal` - Character to check
      Returns:
        `true` if `charVal` is a pattern special (`\_%`)

    - #### escapeWildcards

          public static java.lang.String escapeWildcards​(java.lang.String objectName)

      Escapes the like wildcards and escape (`\_%` in the provided search string with a `\`.
      Parameters:
        `objectName` - Object name to escape.
      Returns:
        Object name with wildcards escaped.

    - #### isAllCondition

          public static boolean isAllCondition​(java.lang.String metadataPattern)