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

# Class PlanNodeBodyServiceQuery.CanonicalizedPlanNodeBodyServiceQueryBuilder

java.lang.Object
com.complexible.stardog.plan.eval.service.ServiceQuery.ServiceQueryBuilder
com.complexible.stardog.plan.eval.service.PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder
com.complexible.stardog.plan.eval.service.PlanNodeBodyServiceQuery.CanonicalizedPlanNodeBodyServiceQueryBuilder

Enclosing class:
  `PlanNodeBodyServiceQuery`

public static class PlanNodeBodyServiceQuery.CanonicalizedPlanNodeBodyServiceQueryBuilder extends PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder

- ## Field Summary

  ### Fields inherited from class com.complexible.stardog.plan.eval.service.PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder

  `mBody, mPositionPredicate, mVarNames`

  ### Fields inherited from class com.complexible.stardog.plan.eval.service.ServiceQuery.ServiceQueryBuilder

  `mServiceTerm`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CanonicalizedPlanNodeBodyServiceQueryBuilder(PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder theConcreteBuilder)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `PlanNodeBodyServiceQuery`
  `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`
  `varNames(IntFunction<String> varNames)`
  Propagate a function for mapping internal variable IDs to user-facing variable names.

  ### Methods inherited from class com.complexible.stardog.plan.eval.service.PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder

  `assignIDs, body, optimize, replaceBodyConstants, scopeOf, serviceTerm, termPositionPredicate, unionOf`

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

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

- ## Constructor Details

  - ### CanonicalizedPlanNodeBodyServiceQueryBuilder

    public CanonicalizedPlanNodeBodyServiceQueryBuilder(PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder theConcreteBuilder)

- ## Method Details

  - ### replaceConstants

    public ServiceQuery.ServiceQueryBuilder replaceConstants(com.complexible.stardog.index.dictionary.MappingDictionary dictionary, UnaryOperator<com.complexible.stardog.plan.filter.expr.Constant> mapping, boolean performValidation)
    Description copied from class: `ServiceQuery.ServiceQueryBuilder`
    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
    Overrides:
      `replaceConstants` in class `PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder`

  - ### varNames

    public ServiceQuery.ServiceQueryBuilder varNames(IntFunction<String> varNames)
    Description copied from class: `ServiceQuery.ServiceQueryBuilder`
    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.
    Overrides:
      `varNames` in class `PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder`

  - ### build

    public PlanNodeBodyServiceQuery build()
    Specified by:
      `build` in class `PlanNodeBodyServiceQuery.PlanNodeBodyServiceQueryBuilder`