public interface QuerySource<T extends QueryConfig>
A QuerySource executes a type of report query. It must be registered via the GatewayDataSourceRegistry, and
also there should be a matching (same ID) QueryConfigFactory registered in the designer.
The QuerySource and QueryConfigFactory share the same string ID, and both deal with the same config object, which
must be a subclass of QueryConfig.
Each query source needs to be able to execute some sort of query which returns a Dataset. Top level queries are treated differently than nested queries. This is to give query sources the chance to do special setup and teardown before and after the execution of a group of equivalent nested queries.
Created by carl.gould on 2/3/2015.| Modifier and Type | Interface and Description |
|---|---|
static interface |
QuerySource.SubQueryTransaction
Used to handle multiple executions of a nested query.
|
| Modifier and Type | Method and Description |
|---|---|
QuerySource.SubQueryTransaction |
begin(ReportExecutionContext execContext,
T queryConfig,
java.util.Map<java.lang.String,java.lang.Object> extraConfigs,
QueryResults parent)
Begin a nested query "transaction".
|
java.lang.String |
getId()
The unique ID for this query source.
|
Dataset |
query(ReportExecutionContext execContext,
T queryConfig,
java.util.Map<java.lang.String,java.lang.Object> extraConfigs)
Execute a top level query.
|
java.lang.String getId()
Dataset query(ReportExecutionContext execContext, T queryConfig, java.util.Map<java.lang.String,java.lang.Object> extraConfigs) throws java.lang.Exception
execContext - The context for the report being executed.queryConfig - The config object which was configured in the designer for this query.extraConfigs - Extra configuration data the designer may need to send. Unused by most data sources, because
the queryConfig should contain all data needed to execute the query. May be null.java.lang.ExceptionQuerySource.SubQueryTransaction begin(ReportExecutionContext execContext, T queryConfig, java.util.Map<java.lang.String,java.lang.Object> extraConfigs, QueryResults parent) throws java.lang.Exception
execContext - The context for the report being executedqueryConfig - The config object which was configured in designer for this nested query.extraConfigs - Extra configuration data the designer may need to send. Unused by most data sources, because
the queryConfig should contain all data needed to execute the query. May be null.parent - The QueryResults object for the parent query of this nested query.java.lang.Exception