Class Query

java.lang.Object
org.apache.sis.storage.Query
Direct Known Subclasses:
CoverageQuery, FeatureQuery

public abstract class Query extends Object
Definition of filtering to apply for fetching a resource subset. Filtering can be applied on FeatureSet or on GridCoverageResource. A query contains at least two parts:
  • Selection for choosing the feature instances to fetch. This is equivalent to choosing rows in a database table.
  • Projection (not to be confused with map projection) for choosing the feature properties or the coverage sample dimensions to fetch. This is equivalent to choosing columns in a database table.
Compared to the SQL language, Query contains the information in the SELECT and WHERE clauses of a SQL statement. A Query typically contains filtering capabilities and (sometimes) simple attribute transformations. Well known query languages include SQL and CQL.

Optional values

All aspects of this query are optional and initialized to "none". Unless otherwise specified, all methods accept a null argument or can return a null value, which means "none".
Since:
0.8
Version:
1.1
See Also:
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Creates a new, initially empty, query.
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract void
    setProjection(String... properties)
    Sets the properties to retrieve by their names.
    abstract void
    setSelection(org.opengis.geometry.Envelope domain)
    Sets the approximate area of feature instances or pixels to include in the subset.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Query

      protected Query()
      Creates a new, initially empty, query.
  • Method Details

    • setSelection

      public abstract void setSelection(org.opengis.geometry.Envelope domain)
      Sets the approximate area of feature instances or pixels to include in the subset. For feature set, the domain is materialized by a Filter. For grid coverage resource, the given envelope specifies the coverage domain.

      The given envelope is approximate. Features may test intersections using only bounding boxes instead of full geometries. Coverages may expand the envelope to an integer amount of tiles.

      Parameters:
      domain - the approximate area of interest, or null if none.
      Since:
      1.1
    • setProjection

      public abstract void setProjection(String... properties)
      Sets the properties to retrieve by their names. For features, the arguments are names of feature properties. For coverages, the arguments are names of sample dimensions.

      Note: in this context, the "projection" word come from relational database terminology. It is unrelated to map projection.

      Parameters:
      properties - properties to retrieve, or null to retrieve all properties.
      Throws:
      IllegalArgumentException - if a property is duplicated.
      Since:
      1.1