Class ServiceQuery.ServiceQueryBuilder

java.lang.Object
com.complexible.stardog.plan.eval.service.ServiceQuery.ServiceQueryBuilder
Direct Known Subclasses:
PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder
Enclosing class:
ServiceQuery

public abstract static class ServiceQuery.ServiceQueryBuilder extends Object
Base service query builder class.
  • Field Details

    • mServiceTerm

      protected com.complexible.stardog.plan.QueryTerm mServiceTerm
  • Constructor Details

    • ServiceQueryBuilder

      public ServiceQueryBuilder()
  • Method Details

    • serviceTerm

      public ServiceQuery.ServiceQueryBuilder serviceTerm(com.complexible.stardog.plan.QueryTerm term)
    • replaceConstants

      public ServiceQuery.ServiceQueryBuilder replaceConstants(com.complexible.stardog.index.dictionary.MappingDictionary dictionary, UnaryOperator<com.complexible.stardog.plan.filter.expr.Constant> mapping, boolean performValidation)
      Replace constants in the query using the provided mapping. Constants that are able to be replaced will be canonicalized for plan caching. Constants which are not able to be replaced will be cached and only plans with the same constants will be reused.

      If performValidation is not set, the returned query may be abstract until another call to the same method with performValidation set to true. That is, performValidation set to false indicates we may use canonicalized constants which need not pass query validation. Canonicalized service queries won't be executed unless replaced with concrete constants.

      todo: this may not be the best name since it's not really about general purpose replacement but specifically about canonicalisation

    • varNames

      public abstract ServiceQuery.ServiceQueryBuilder varNames(IntFunction<String> varNames)
      Propagate a function for mapping internal variable IDs to user-facing variable names. Some services, like the Stored Query Service, need to know it and possibly update when reusing a cached plan.
    • build

      public abstract ServiceQuery build()