Class FeatureQuery

java.lang.Object
com.luciad.models.features.FeatureQuery
All Implemented Interfaces:
AutoCloseable

public final class FeatureQuery extends Object implements AutoCloseable
A query specifies which objects you are interested in.

It is a combination of:

All of these are optional.

The query implementation must use all settings on the Query instance. For example, if both a bounds and a condition are specified, the query implementation must take both the bounds and the condition into account.

Create an empty Query to get all objects. When both a condition and feature ids are provided in the Query the objects need to fulfill both.

  • Method Details

    • finalize

      protected void finalize()
      Overrides:
      finalize in class Object
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • newBuilder

      @NotNull public static FeatureQuery.Builder newBuilder()
      Returns the builder class for creation of the feature query.
      Returns:
      the builder class for creation of the feature query.
    • all

      @NotNull public static FeatureQuery all()
      This method is a convenience factory method that creates a query to retrieve all features.
      Returns:
      a query to retrieve all features.
    • getBounds

      @Nullable public Bounds getBounds()
      Returns the bounds the queried features must interact with.
      Returns:
      the bounds the queried features must interact with.
    • getCondition

      @Nullable public Expression getCondition()
      Returns the condition that should be applied on the query, if any.
      Returns:
      the condition that should be applied on the query, if any.
    • getFeatureIds

      @Nullable public List<Long> getFeatureIds()
      Returns the features to retrieve by id.
      Returns:
      the features to retrieve by id.
    • getSortBy

      @Nullable public FeatureQuery.SortOperator getSortBy()
      Returns the sorting order that should be applied on the query, if any.
      Returns:
      the sorting order that should be applied on the query, if any.
    • getLimit

      @Nullable public Long getLimit()
      Returns the maximum number of elements to query, if any.
      Returns:
      the maximum number of elements to query, if any.
    • getScaleLevelIndex

      @Nullable public Long getScaleLevelIndex()
      Returns the scale level index.

      If null, the model should return features from all scale levels that match the query.

      If you configure a FeatureLayer to have scale breaks using a FeatureQueryConfiguration, the layer may include the index of the chosen scale level when querying your model.

      Returns:
      the scale level index, if any.
      Since:
      2025.0.04
    • getTooManyFeaturesCount

      @Nullable public Long getTooManyFeaturesCount()
      Returns the maximum number of features that can be handled by IFeatureModel#query without terminating the query.

      If the query corresponds to more features than this number, the model should abort the query as soon as possible, preferably at the start of the IFeatureModel#query call and without returning any features. Before terminating, the feature model should call IFeatureQueryCallback#handleTermination with a FeatureQueryTermination that has as reason TooManyFeatures.

      Returns:
      the maximum number of features this query can handle.
      Since:
      2026.0
    • getCancellationToken

      @NotNull public CancellationToken getCancellationToken()
      Returns the query cancellation token.
      Returns:
      the query cancellation token.
      Since:
      2026.0