Class QueryEvaluationHint


  • public class QueryEvaluationHint
    extends java.lang.Object
    Provides VIATRA Query with additional hints on how a query should be evaluated. The same hint can be provided to multiple queries.

    This class is immutable. Overriding options will create a new instance.

    Here be dragons: for advanced users only.

    • Constructor Detail

      • QueryEvaluationHint

        public QueryEvaluationHint​(java.util.Map<QueryHintOption<?>,​java.lang.Object> backendHintSettings,
                                   QueryEvaluationHint.BackendRequirement backendRequirementType)
        Specifies the suggested query backend requirements, and value settings for additional backend-specific options.

        The backend requirement type must not be QueryEvaluationHint.BackendRequirement.SPECIFIC - for that case, use the constructor QueryEvaluationHint(Map, IQueryBackendFactory).

        Parameters:
        backendHintSettings - if non-null, each entry in the map overrides backend-specific options regarding query evaluation (null-valued map entries permitted to erase hints); passing null means default options associated with the query
        backendRequirementType - defines the kind of backend requirement
        Since:
        2.0
      • QueryEvaluationHint

        public QueryEvaluationHint​(java.util.Map<QueryHintOption<?>,​java.lang.Object> backendHintSettings,
                                   IQueryBackendFactory queryBackendFactory)
        Specifies the suggested query backend, and value settings for additional backend-specific options. The first parameter can be null; if the second parameter is null, it is expected that the other constructor is called instead with a QueryEvaluationHint.BackendRequirement.UNSPECIFIED parameter.
        Parameters:
        backendHintSettings - if non-null, each entry in the map overrides backend-specific options regarding query evaluation (null-valued map entries permitted to erase hints); passing null means default options associated with the query
        queryBackendFactory - overrides the query evaluator algorithm; passing null retains the default algorithm associated with the query
        Since:
        1.5
    • Method Detail

      • getBackendHintSettings

        public java.util.Map<QueryHintOption<?>,​java.lang.Object> getBackendHintSettings()
        Each entry in the immutable map overrides backend-specific options regarding query evaluation.

        The map is non-null, even if empty. Null-valued map entries are also permitted to erase hints via overrideBy(QueryEvaluationHint).

        Since:
        1.5
      • isOptionOverridden

        public boolean isOptionOverridden​(QueryHintOption<?> option)
        Returns whether the given hint option is overridden.
        Since:
        1.5
      • getValueOrNull

        public <HintValue> HintValue getValueOrNull​(QueryHintOption<HintValue> option)
        Returns the value of the given hint option from the given hint collection, or null if not defined.
        Since:
        1.5
      • getValueOrDefault

        public <HintValue> HintValue getValueOrDefault​(QueryHintOption<HintValue> option)
        Returns the value of the given hint option from the given hint collection, or the default value if not defined. Intended to be called by backends to find out the definitive value that should be considered.
        Since:
        1.5
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object