Class ResourceDefinition

Object
ResourceDefinition

public class ResourceDefinition extends Object
Definition of a resource (table, view or query) to include in a SQLStore. Each Resource­Definition instance can specify a table or a group of tables (based on name pattern) to view as Feature­Set instances. A Resource­Definition instance can also specify a query instead of a table.

Resource­Definitions are given to the Simple­Feature­Store constructor, which implies that the tables to use are known in advance (e.g., hard-coded). If this is not the case, then the Resource­Definitions can be provided later by overriding SQLStore​.read­Resource­Definitions(Data­Access) instead.

Since:
1.1
  • Constructor Details

    • ResourceDefinition

      protected ResourceDefinition(GenericName name, String query)
      Creates a new description of a resource in a SQL database. If the query argument is null, then the name argument shall be the name pattern of a table or a view.
      Parameters:
      name - table, view or query name pattern. May contain LIKE wildcard characters.
      Since:
      1.5
      See Also:
  • 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:
      table­Pattern - 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​.schema­Pattern​.table­Pattern
      • schema­Pattern​.table­Pattern
      • table­Pattern
      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.
      schema­Pattern - pattern (with '_' and '%' wildcards) of a schema, or null for any schema.
      table­Pattern - 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 pattern 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 table or view name pattern, or an arbitrary query name.
    • 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:
      hash­Code in class Object
      Returns:
      a hash code value.
    • toString

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