Class QueryScope
java.lang.Object
com.illumon.iris.db.tables.select.QueryScope
- All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable
- Direct Known Subclasses:
QueryScope.StandaloneImpl,QueryScope.SynchronizedScriptSessionImpl,QueryScope.UnsynchronizedScriptSessionImpl
Variable scope used to resolve parameter values during query execution.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA type of RuntimeException thrown when a variable referenced within theQueryScopeis not defined or, more likely, has not been added to the scope.static classstatic classstatic class -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidaddObjectFields(Object object) Adds an object's declared fields to the scope.static <T> voidAdds a parameter to the default instanceQueryScope, or updates the value of an existing parameter.com.fishlib.base.log.LogOutputappend(com.fishlib.base.log.LogOutput logOutput) protected abstract <T> Param<T>createParam(String name) Get a Param by name.final StringGets the client host value.static QueryScopeRetrieve the defaultQueryScopeinstance which will be used by static methods.Get a snapshot of local values for remote parameters, for scopes that support this.Get all known scope variable names.final Param[]getParams(Collection<String> names) Get an array of Params by name.static <T> TgetParamValue(String name) Gets a parameter from the default instanceQueryScope.final StringGets the query name.abstract booleanhasParamName(String name) Check if the scope has the given name.static QueryScopemakeScriptSessionImpl(ScriptSession scriptSession) Creates a query scope for an interactive console script session.abstract voidputObjectFields(Object object) Add an object's public members (referenced reflectively, not a shallow copy!) to this scope if supported.abstract <T> voidAdd a parameter to the scope.abstract voidputRemoteParams(Map<String, Class> remoteParamMetadata) Add remote parameter metadata, for scopes that support this.abstract <T> TreadParamValue(String name) Get the value of a given scope parameter by name.abstract <T> TreadParamValue(String name, T defaultValue) Get the value of a given scope parameter by name.voidsetClientHost(String clientHost) Sets the client host value.static voidsetDefaultInstance(QueryScope queryScope) Sets the defaultQueryScopeto be used in the current context.voidsetQueryName(String queryName) Sets the query name.
-
Field Details
-
CLIENT_HOST_PARAM_NAME
Parameter name for the client host.- See Also:
-
QUERY_NAME_PARAM_NAME
Parameter name for the query name.- See Also:
-
-
Constructor Details
-
QueryScope
public QueryScope()
-
-
Method Details
-
setDefaultInstance
Sets the defaultQueryScopeto be used in the current context. By default there is aQueryScope.StandaloneImplcreated by the static initializer and set as the defaultInstance. The method allows the use of a new or separate instance as the default instance for static methods.- Parameters:
queryScope-QueryScopeto set as the new default instance.
-
getDefaultInstance
Retrieve the defaultQueryScopeinstance which will be used by static methods.- Returns:
QueryScope
-
addParam
Adds a parameter to the default instanceQueryScope, 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
Adds an object's declared fields to the scope.- Parameters:
object- object whose fields will be added.
-
getParamValue
Gets a parameter from the default instanceQueryScope.- Type Parameters:
T- parameter type.- Parameters:
name- parameter name.- Returns:
- parameter value.
- Throws:
QueryScope.MissingVariableException- variable name is not defined.
-
getParams
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
Get all known scope variable names.- Returns:
- A collection of scope variable names.
-
hasParamName
Check if the scope has the given name.- Parameters:
name- param name- Returns:
- True iff the scope has the given param name
-
createParam
Get a Param by name.- Parameters:
name- parameter name- Returns:
- newly-constructed Param (name + value-snapshot pair).
- Throws:
QueryScope.MissingVariableException- If any of the named scope variables does not exist.
-
readParamValue
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
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
Add a parameter to the scope.- Parameters:
name- parameter name.value- parameter value.
-
putRemoteParams
Add remote parameter metadata, for scopes that support this. Note: This is an optional method.- Parameters:
remoteParamMetadata- remote parameter metadata.
-
getLocalValuesForRemoteParams
Get a snapshot of local values for remote parameters, for scopes that support this. Note: This is an optional method.- Returns:
- A map from name to the current local value for all remote params.
-
putObjectFields
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.
-
getClientHost
Gets the client host value.- Returns:
- client host value.
-
setClientHost
Sets the client host value.- Parameters:
clientHost- client host value.
-
getQueryName
Gets the query name.- Returns:
- query name.
-
setQueryName
Sets the query name.- Parameters:
queryName- query name.
-
append
public com.fishlib.base.log.LogOutput append(@NotNull com.fishlib.base.log.LogOutput logOutput) - Specified by:
appendin interfacecom.fishlib.base.log.LogOutputAppendable
-
makeScriptSessionImpl
Creates a query scope for an interactive console script session.- Parameters:
scriptSession- script session- Returns:
- query scope
-