org.dashbuilder.dataprovider.DataSetProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dashbuilder-dataset-api
Show all versions of dashbuilder-dataset-api
Dashbuilder Dataset API shared between client and server.
The newest version!
/*
* Copyright 2014 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.dashbuilder.dataprovider;
import org.dashbuilder.dataset.DataSet;
import org.dashbuilder.dataset.DataSetLookup;
import org.dashbuilder.dataset.DataSetMetadata;
import org.dashbuilder.dataset.def.DataSetDef;
/**
* This service provider interface is designed to provide access to different data set storage implementations with
* the main goal of providing a unified interface for the data set fetch & lookup operations.
*/
public interface DataSetProvider {
/**
* The type of the provider.
*/
DataSetProviderType getType();
/**
* Retrieves the metadata for a given data set definition
*
* @param def The data set definition lookup request
* @return The data set metadata
*/
DataSetMetadata getDataSetMetadata(DataSetDef def) throws Exception;
/**
* Fetch a data set and optionally apply several operations (filter, sort, group, ...) on top of it.
*
* For group operations on date columns the grouped column values must stick to the following format:
*
*
* GroupStrategy IntervalType Output
* ---------------------------------------------------
* DYNAMIC SECOND yyyy-MM-dd HH:mm:ss
* DYNAMIC MINUTE yyyy-MM-dd HH:mm
* DYNAMIC HOUR yyyy-MM-dd HH
* DYNAMIC DAY yyyy-MM-dd
* DYNAMIC MONTH yyyy-MM
* DYNAMIC YEAR yyyy
*
* yyyy=year HH=hour from 00 to 23,
* MM=month from 01 to 12 mm=minutes from 00 to 59
* dd=day from 01 to 31 ss=seconds from 00 to 59
*
* FIXED SECOND From 0 to 59
* FIXED MINUTE From 0 to 59
* FIXED HOUR From 0 to 23
* FIXED DAY_OF_WEEK From 1 to 7 (1=Sunday, 7=Saturday)
* FIXED MONTH From 1 to 12 (1=January, 12=December)
* FIXED QUARTER From 1 to 4 (1=Ene,Feb,Mar, 4=Oct,Nov,Dec)
*
*
* @param def The data set definition lookup request
* @param lookup The lookup request over the data set. If null then return the data set as is.
* @return The resulting data set instance
*/
DataSet lookupDataSet(DataSetDef def, DataSetLookup lookup) throws Exception;
/**
* Check if the specified data set definition is outdated. This means that the data set might have been updated at
* origin. When this happens, any data hold by the provider can be considered stale and a refresh is needed.
*
* @param def The data set definition to check for
* @return true if the data set has become stale. false otherwise.
*/
boolean isDataSetOutdated(DataSetDef def);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy