Class QueryScope

java.lang.Object
io.deephaven.engine.context.QueryScope
All Implemented Interfaces:
LogOutputAppendable
Direct Known Subclasses:
AbstractScriptSession.ScriptSessionQueryScope, EmptyQueryScope, PoisonedQueryScope, QueryScope.StandaloneImpl

public abstract class QueryScope extends Object implements LogOutputAppendable
Variable scope used to resolve parameter values during query execution.
  • Constructor Details

    • QueryScope

      public QueryScope()
  • Method Details

    • addParam

      public static <T> void addParam(String name, T value)
      Adds a parameter to the default instance QueryScope, or updates the value of an existing parameter.
      Type Parameters:
      T - type of the parameter/value.
      Parameters:
      name - String name of the parameter to add.
      value - value to assign to the parameter.
    • addObjectFields

      public static void addObjectFields(Object object)
      Adds an object's declared fields to the scope.
      Parameters:
      object - object whose fields will be added.
    • getParamValue

      public static <T> T getParamValue(String name) throws QueryScope.MissingVariableException
      Gets a parameter from the default instance QueryScope.
      Type Parameters:
      T - parameter type.
      Parameters:
      name - parameter name.
      Returns:
      parameter value.
      Throws:
      QueryScope.MissingVariableException - variable name is not defined.
    • getParams

      public final QueryScopeParam[] getParams(Collection<String> names) throws QueryScope.MissingVariableException
      Get an array of Params by name. See createParam(name) implementations for details.
      Parameters:
      names - parameter names
      Returns:
      A newly-constructed array of newly-constructed Params.
      Throws:
      QueryScope.MissingVariableException - If any of the named scope variables does not exist.
    • getParamNames

      public abstract Set<String> getParamNames()
      Get all known scope variable names.
      Returns:
      A collection of scope variable names.
    • hasParamName

      public abstract boolean hasParamName(String name)
      Check if the scope has the given name.
      Parameters:
      name - param name
      Returns:
      True iff the scope has the given param name
    • createParam

      protected abstract <T> QueryScopeParam<T> createParam(String name) throws QueryScope.MissingVariableException
      Get a QueryScopeParam by name.
      Parameters:
      name - parameter name
      Returns:
      newly-constructed QueryScopeParam (name + value-snapshot pair).
      Throws:
      QueryScope.MissingVariableException - If any of the named scope variables does not exist.
    • readParamValue

      public abstract <T> T readParamValue(String name) throws QueryScope.MissingVariableException
      Get the value of a given scope parameter by name.
      Parameters:
      name - parameter name.
      Returns:
      parameter value.
      Throws:
      QueryScope.MissingVariableException - If no such scope parameter exists.
    • readParamValue

      public abstract <T> T readParamValue(String name, T defaultValue)
      Get the value of a given scope parameter by name.
      Parameters:
      name - parameter name.
      defaultValue - default parameter value.
      Returns:
      parameter value, or the default parameter value, if the value is not present.
    • putParam

      public abstract <T> void putParam(String name, T value)
      Add a parameter to the scope.
      Parameters:
      name - parameter name.
      value - parameter value.
    • putObjectFields

      public abstract void putObjectFields(Object object)
      Add an object's public members (referenced reflectively, not a shallow copy!) to this scope if supported. Note: This is an optional method.
      Parameters:
      object - object to add public members from.
    • append

      public LogOutput append(@NotNull @NotNull LogOutput logOutput)
      Specified by:
      append in interface LogOutputAppendable