Package io.revealbi.core.data
Interface IRVDataModelProvider
public interface IRVDataModelProvider
Beta interface for customizing the data model exposed by a data source.
Implement this interface to:
- Edit the schema of a data source by modifying its fields (
editSchema(io.revealbi.core.data.RVDataSourceItem, java.util.List<io.revealbi.core.data.RVDataModelField>, io.revealbi.core.IRequestContext)). - Inject custom calculated fields (
getCalculatedFields(io.revealbi.core.data.RVDataSourceItem, io.revealbi.core.IRequestContext)). - Inject custom measures (
getMeasures(io.revealbi.core.data.RVDataSourceItem, io.revealbi.core.IRequestContext)).
Pass an instance to RevealServerBuilder.setDataModelProvider(IRVDataModelProvider).
Beta notice: This interface is provided as a beta feature. The API surface may change in future releases without prior notice. It is not yet covered by the standard backward-compatibility guarantees.
- API Note:
- Beta feature - API may change in future releases.
-
Method Summary
Modifier and TypeMethodDescriptioneditSchema(RVDataSourceItem dataSourceItem, List<RVDataModelField> schema, IRequestContext requestContext) Called to allow editing the schema fields of the given data source item.getCalculatedFields(RVDataSourceItem dataSourceItem, IRequestContext requestContext) Called to retrieve additional calculated fields for the given data source item.getMeasures(RVDataSourceItem dataSourceItem, IRequestContext requestContext) Called to retrieve additional measures for the given data source item.
-
Method Details
-
editSchema
CompletableFuture<List<RVDataModelField>> editSchema(RVDataSourceItem dataSourceItem, List<RVDataModelField> schema, IRequestContext requestContext) Called to allow editing the schema fields of the given data source item.New (calculated) fields should not be added here; use
getCalculatedFields(io.revealbi.core.data.RVDataSourceItem, io.revealbi.core.IRequestContext)instead. To make the edits effective, return a non-null list. When the returned list differs from the original, changes in the original schema are ignored.- Parameters:
dataSourceItem- The data source item whose schema is being requested.schema- The base schema containing all known fields.requestContext- The context of the request.- Returns:
- A
CompletableFutureresolving to a (possibly modified) list of fields, ornullto keep the original schema.
-
getCalculatedFields
CompletableFuture<List<RVDataModelCalculatedField>> getCalculatedFields(RVDataSourceItem dataSourceItem, IRequestContext requestContext) Called to retrieve additional calculated fields for the given data source item.- Parameters:
dataSourceItem- The data source item whose calculated fields are being requested.requestContext- The context of the request.- Returns:
- A
CompletableFutureresolving to a list of calculated fields to inject, ornullif none.
-
getMeasures
CompletableFuture<List<RVDataModelMeasure>> getMeasures(RVDataSourceItem dataSourceItem, IRequestContext requestContext) Called to retrieve additional measures for the given data source item.- Parameters:
dataSourceItem- The data source item whose measures are being requested.requestContext- The context of the request.- Returns:
- A
CompletableFutureresolving to a list of measures to inject, ornullif none.
-