Package com.complexible.stardog.plan.eval.service

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected com.complexible.stardog.plan.QueryTerm`
  `mServiceTerm`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ServiceQueryBuilder()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract ServiceQuery`
  `build()`
  `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.
  `ServiceQuery.ServiceQueryBuilder`
  `serviceTerm(com.complexible.stardog.plan.QueryTerm term)`
  `abstract ServiceQuery.ServiceQueryBuilder`
  `varNames(IntFunction<String> varNames)`
  Propagate a function for mapping internal variable IDs to user-facing variable names.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 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()