ModeShape Distribution 3.0.0.Beta4

org.modeshape.jcr.query
Class QueryContext

java.lang.Object
  extended by org.modeshape.jcr.query.QueryContext

@ThreadSafe
public class QueryContext
extends Object

An immutable context in which queries are to be executed. Each query context defines the information that is available during query execution.

The only mutable state on this context is whether the query has been cancelled.


Constructor Summary
  QueryContext(ExecutionContext context, RepositoryCache repositoryCache, Set<String> workspaceNames, Map<String,NodeCache> overriddenNodeCachesByWorkspaceName, Schemata schemata, PlanHints hints, Problems problems, Map<String,Object> variables)
          Create a new context for query execution.
  QueryContext(ExecutionContext context, RepositoryCache repositoryCache, Set<String> workspaceNames, Schemata schemata)
          Create a new context for query execution.
  QueryContext(ExecutionContext context, RepositoryCache repositoryCache, Set<String> workspaceNames, Schemata schemata, PlanHints hints, Problems problems)
          Create a new context for query execution.
protected QueryContext(QueryContext original)
          Create a new context that is a copy of the supplied context.
 
Method Summary
 boolean cancel()
          Cancel the query if it is currently running.
 boolean equals(Object obj)
          
 ExecutionContext getExecutionContext()
          Get the execution context in which the query is to be evaluated
 PlanHints getHints()
          Get the plan hints.
 NamespaceRegistry getNamespaceRegistry()
          Get the namespace registry with durable prefixes as used by the query indexes.
 NodeCache getNodeCache(String workspaceName)
          Get the NodeCache for the given workspace name.
 Problems getProblems()
          Get the problem container used by this query context.
 RepositoryCache getRepositoryCache()
          Get the RepositoryCache instance that should be used to load the result tuple values.
 Schemata getSchemata()
          Get the definition of the tables available within this query context.
 TypeSystem getTypeSystem()
          Get the interface for working with literal values and types.
 Map<String,Object> getVariables()
          Get the variables that are to be substituted into the BindVariableName used in the query.
 Set<String> getWorkspaceNames()
          Get the names of each workspace that is to be queried.
 boolean isCancelled()
           
 QueryContext with(Map<String,Object> variables)
          Obtain a copy of this context, except that the copy uses the supplied variables.
 QueryContext with(PlanHints hints)
          Obtain a copy of this context, except that the copy uses the supplied hints.
 QueryContext with(Problems problems)
          Obtain a copy of this context, except that the copy uses the supplied problem container.
 QueryContext with(Schemata schemata)
          Obtain a copy of this context, except that the copy uses the supplied schemata.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QueryContext

public QueryContext(ExecutionContext context,
                    RepositoryCache repositoryCache,
                    Set<String> workspaceNames,
                    Map<String,NodeCache> overriddenNodeCachesByWorkspaceName,
                    Schemata schemata,
                    PlanHints hints,
                    Problems problems,
                    Map<String,Object> variables)
Create a new context for query execution.

Parameters:
context - the context in which the query is being executed; may not be null
repositoryCache - the repository cache that should be used to load results; may be null if no results are to be loaded
workspaceNames - the name of each workspace to be queried, or an empty set if all the workspaces should be queried; may not be null
overriddenNodeCachesByWorkspaceName - the NodeCache instances that should be used to load results, which will be used instead of the RepositoryCache's NodeCache for a given workspace name; may be null or empty
schemata - the schemata
hints - the hints, or null if there are no hints
problems - the problems container, or null if a new problems container should be created
variables - the mapping of variables and values, or null if there are no such variables
Throws:
IllegalArgumentException - if the context, workspace name, or schemata are null

QueryContext

public QueryContext(ExecutionContext context,
                    RepositoryCache repositoryCache,
                    Set<String> workspaceNames,
                    Schemata schemata,
                    PlanHints hints,
                    Problems problems)
Create a new context for query execution.

Parameters:
context - the context in which the query is being executed; may not be null
repositoryCache - the repository cache that should be used to load results; may not be null
workspaceNames - the name of each workspace to be queried, or an empty set if all the workspaces should be queried; may not be null
schemata - the schemata
hints - the hints, or null if there are no hints
problems - the problems container, or null if a new problems container should be created
Throws:
IllegalArgumentException - if the context, workspace name, or schemata are null

QueryContext

public QueryContext(ExecutionContext context,
                    RepositoryCache repositoryCache,
                    Set<String> workspaceNames,
                    Schemata schemata)
Create a new context for query execution.

Parameters:
context - the context in which the query is being executed; may not be null
repositoryCache - the repository cache that should be used to load results; may not be null
workspaceNames - the name of each workspace to be queried, or an empty set if all the workspaces should be queried; may not be null
schemata - the schemata
Throws:
IllegalArgumentException - if the context, workspace name, or schemata are null

QueryContext

protected QueryContext(QueryContext original)
Create a new context that is a copy of the supplied context. This constructor is useful for subclasses that wish to add store additional fields in a QueryContext.

Parameters:
original - the original context
Throws:
IllegalArgumentException - if the original is null
Method Detail

cancel

public final boolean cancel()
Cancel the query if it is currently running. Note that this method does not block until the query is cancelled; it merely marks the query as being cancelled, and the query will terminate at its next available opportunity.

Returns:
true if the query was executing and will be cancelled, or false if the query was no longer running (because it had finished successfully or had already been cancelled) and could not be cancelled.

isCancelled

public final boolean isCancelled()

getNodeCache

public NodeCache getNodeCache(String workspaceName)
                       throws WorkspaceNotFoundException
Get the NodeCache for the given workspace name. The result will either be the overridden value supplied in the constructor or the workspace cache from the referenced RepositoryCache.

Parameters:
workspaceName - the name of the workspace
Returns:
the node cache; never null
Throws:
WorkspaceNotFoundException - if there is no workspace with the supplied name

getNamespaceRegistry

public NamespaceRegistry getNamespaceRegistry()
Get the namespace registry with durable prefixes as used by the query indexes.

Returns:
the durable namespace registry; never null

getRepositoryCache

public RepositoryCache getRepositoryCache()
Get the RepositoryCache instance that should be used to load the result tuple values.

Returns:
the node cache

getExecutionContext

public ExecutionContext getExecutionContext()
Get the execution context in which the query is to be evaluated

Returns:
the execution context; never null

getWorkspaceNames

public Set<String> getWorkspaceNames()
Get the names of each workspace that is to be queried.

Returns:
the workspace name; never null

getTypeSystem

public TypeSystem getTypeSystem()
Get the interface for working with literal values and types.

Returns:
the type system; never null

getHints

public final PlanHints getHints()
Get the plan hints.

Returns:
the plan hints; never null

getProblems

public final Problems getProblems()
Get the problem container used by this query context. Any problems that have been encountered will be accumlated in this container.

Returns:
the problem container; never null

getSchemata

public Schemata getSchemata()
Get the definition of the tables available within this query context.

Returns:
the schemata; never null

getVariables

public Map<String,Object> getVariables()
Get the variables that are to be substituted into the BindVariableName used in the query.

Returns:
immutable map of variable values keyed by their name; never null but possibly empty

equals

public boolean equals(Object obj)

Overrides:
equals in class Object
See Also:
Object.equals(java.lang.Object)

with

public QueryContext with(Schemata schemata)
Obtain a copy of this context, except that the copy uses the supplied schemata.

Parameters:
schemata - the schemata that should be used in the new context
Returns:
the new context; never null
Throws:
IllegalArgumentException - if the schemata reference is null

with

public QueryContext with(PlanHints hints)
Obtain a copy of this context, except that the copy uses the supplied hints.

Parameters:
hints - the hints that should be used in the new context
Returns:
the new context; never null
Throws:
IllegalArgumentException - if the hints reference is null

with

public QueryContext with(Problems problems)
Obtain a copy of this context, except that the copy uses the supplied problem container.

Parameters:
problems - the problems that should be used in the new context; may be null if a new problem container should be used
Returns:
the new context; never null

with

public QueryContext with(Map<String,Object> variables)
Obtain a copy of this context, except that the copy uses the supplied variables.

Parameters:
variables - the variables that should be used in the new context; may be null if there are no such variables
Returns:
the new context; never null

ModeShape Distribution 3.0.0.Beta4

Copyright © 2008-2012 JBoss, a division of Red Hat. All Rights Reserved.