Class FeatureQuery.NamedExpression

Object
NamedExpression
All Implemented Interfaces:
Serializable
Enclosing class:
Feature­Query

public static class FeatureQuery.NamedExpression extends Object implements Serializable
An expression to be retrieved by a Query, together with the name to assign to it. Named­Expression specifies also if the expression should be evaluated exactly once and its value stored, or evaluated every times that the value is requested.

Analogy with relational databases

A Named­Expression instance can be understood as the definition of a column in a SQL database table. In relational database terminology, subset of columns is called projection. A projection is specified by a SQL SELECT statement, which maps to Named­Expression as below:

SELECT expression AS alias

Columns can be given to the Feature­Query​.set­Projection(Named­Expression[]) method.
Since:
1.1
See Also:
  • Field Details

    • expression

      public final Expression<? super AbstractFeature,?> expression
      The literal, value reference or more complex expression to be retrieved by a Query. Never null.
    • alias

      public final GenericName alias
      The name to assign to the expression result, or null if unspecified.
    • type

      public final FeatureQuery.ProjectionType type
      Whether the expression result should be stored or evaluated every times that it is requested. A stored value will exist as a feature Abstract­Attribute, while a virtual value will exist as a feature Abstract­Operation. The latter are commonly called "computed fields" and are equivalent to SQL GENERATED ALWAYS keyword for columns.
      Since:
      1.4
  • Constructor Details

    • NamedExpression

      public NamedExpression(Expression<? super AbstractFeature,?> expression)
      Creates a new stored column with the given expression and no name.
      Parameters:
      expression - the literal, value reference or expression to be retrieved by a Query.
    • NamedExpression

      public NamedExpression(Expression<? super AbstractFeature,?> expression, GenericName alias)
      Creates a new stored column with the given expression and the given name.
      Parameters:
      expression - the literal, value reference or expression to be retrieved by a Query.
      alias - the name to assign to the expression result, or null if unspecified.
    • NamedExpression

      public NamedExpression(Expression<? super AbstractFeature,?> expression, String alias)
      Creates a new stored column with the given expression and the given name. This constructor creates a Local­Name from the given string.
      Parameters:
      expression - the literal, value reference or expression to be retrieved by a Query.
      alias - the name to assign to the expression result, or null if unspecified.
    • NamedExpression

      public NamedExpression(Expression<? super AbstractFeature,?> expression, GenericName alias, FeatureQuery.ProjectionType type)
      Creates a new column with the given expression, the given name and the given projection type.
      Parameters:
      expression - the literal, value reference or expression to be retrieved by a Query.
      alias - the name to assign to the expression result, or null if unspecified.
      type - whether to create a feature Abstract­Attribute or a feature Abstract­Operation.
      Since:
      1.4
  • Method Details

    • hashCode

      public int hashCode()
      Returns a hash code value for this column.
      Overrides:
      hash­Code in class Object
      Returns:
      a hash code value.
    • equals

      public boolean equals(Object obj)
      Compares this column with the given object for equality.
      Overrides:
      equals in class Object
      Parameters:
      obj - the object to compare with this column.
      Returns:
      whether the two objects are equal.
    • toString

      public String toString()
      Returns a string representation of this column for debugging purpose.
      Overrides:
      to­String in class Object
      Returns:
      a string representation of this column.