Module org.apache.sis.storage.sql
Package org.apache.sis.storage.sql

# Class ResourceDefinition

Object
ResourceDefinition

public final class ResourceDefinition extends Object
Definition of a resource (table, view or query) to include in a `SQLStore`.

Since:
  1.1

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Returns `true` if this definition is equal to the given object.
  `GenericName`
  `getName()`
  Returns the name of the table, view or query to access as a resource.
  `Optional<String>`
  `getQuery()`
  Returns the SQL query to execute for the resource, or empty if the resource is a table or a view.
  `int`
  `hashCode()`
  Returns a hash code value for this resource definition.
  `static ResourceDefinition`
  `query(String name, String query)`
  Creates a resource definition for a SQL query.
  `static ResourceDefinition`
  `table(String tablePattern)`
  Creates a resource definition for a table or a view in any catalog and schema of the database.
  `static ResourceDefinition`
  `table(String catalog, String schemaPattern, String tablePattern)`
  Creates a resource definition for a table or a view in the database.
  `String`
  `toString()`
  Returns a string representation of this resource definition.

  ### Methods inherited from class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Method Details

  - ### table

    public static ResourceDefinition table(String tablePattern)
    Creates a resource definition for a table or a view in any catalog and schema of the database. The table name can contain SQL wildcard characters: `'_'` matches any single character and `'%'` matches any sequence of characters.
    Parameters:
      `tablePattern` - pattern (with `'_'` and `'%'` wildcards) of a table.
    Returns:
      resource definition for the named table.

  - ### table

    public static ResourceDefinition table(String catalog, String schemaPattern, String tablePattern)
    Creates a resource definition for a table or a view in the database. The table name can be any of the followings:
    - `catalog​.schemaPattern​.tablePattern`
    - `schemaPattern​.tablePattern`
    - `tablePattern`
    The schema and table names (but not the catalog) can contain SQL wildcard characters: `'_'` matches any single character and `'%'` matches any sequence of characters.
    Parameters:
      `catalog` - name of a catalog as it is stored in the database, or `null` for any catalog.
      `schemaPattern` - pattern (with `'_'` and `'%'` wildcards) of a schema, or `null` for any schema.
      `tablePattern` - pattern (with `'_'` and `'%'` wildcards) of a table.
    Returns:
      resource definition for the named table.

  - ### query

    public static ResourceDefinition query(String name, String query)
    Creates a resource definition for a SQL query. Each column in the query should have a distinct name, using SQL `AS` keyword if needed. It is caller's responsibility to ensure that the given query is not subject to SQL injection vulnerability.
    Parameters:
      `name` - name of the resource.
      `query` - the SQL query to execute.
    Returns:
      resource definition for the given SQL query.

  - ### getName

    public GenericName getName()
    Returns the name of the table, view or query to access as a resource. There is small differences in the way it is used depending on whether the resource is a table or a query:
    - If the resource is a table or a view, then this is the fully qualified name (including catalog and schema) of the table or view to include in the store. It may contain `LIKE` wildcard characters, in which case all tables matching the pattern will be included.
    - If the resource is a query, then this is an arbitrary name to assign to the resource which will contain the query result.
    Returns:
      the name of the table, view or query.

  - ### getQuery

    public Optional<String> getQuery()
    Returns the SQL query to execute for the resource, or empty if the resource is a table or a view.
    Returns:
      the SQL query to execute for the resource.

  - ### equals

    public boolean equals(Object obj)
    Returns `true` if this definition is equal to the given object.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - another object, or `null`.
    Returns:
      `true` if the other object is a resource definition equals to this one.

  - ### hashCode

    public int hashCode()
    Returns a hash code value for this resource definition.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code value.

  - ### toString

    public String toString()
    Returns a string representation of this resource definition.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of this resource definition.