DataSetCore.java
/*
 * Copyright 2015 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;
import org.dashbuilder.dataprovider.BeanDataSetProvider;
import org.dashbuilder.dataprovider.DataSetProviderRegistry;
import org.dashbuilder.dataprovider.StaticDataSetProvider;
import org.dashbuilder.dataset.AbstractDataSetCore;
import org.dashbuilder.dataset.DataSetDefDeployer;
import org.dashbuilder.dataset.IntervalBuilderDynamicDate;
import org.dashbuilder.dataset.def.DataSetDefRegistry;
import org.dashbuilder.dataset.json.DataSetDefJSONMarshaller;
import org.dashbuilder.scheduler.Scheduler;
/**
 * Interface that initializes and provides access to all services and components of the data set core subsystem
 *
 * TODO: Convert to a pure interface after upgrading to Java 8 (static methods in interfaces)
 */
public abstract class DataSetCore extends AbstractDataSetCore {
    private static DataSetCore _instance = null;
    public static DataSetCore get() {
        if (_instance == null) {
            _instance = new DataSetCoreImpl();
        }
        return _instance;
    }
    // For testing mocking purposes mainly
    public static void set(DataSetCore dataSetCore) {
        _instance = dataSetCore;
    }
    public abstract boolean isDataSetPushEnabled();
    public abstract int getDataSetPushMaxSize();
    public abstract Scheduler getScheduler();
    public abstract DataSetDefRegistry getDataSetDefRegistry();
    public abstract DataSetProviderRegistry getDataSetProviderRegistry();
    public abstract DataSetDefDeployer getDataSetDefDeployer();
    public abstract BeanDataSetProvider getBeanDataSetProvider();
    public abstract StaticDataSetProvider getStaticDataSetProvider();
    public abstract IntervalBuilderDynamicDate getIntervalBuilderDynamicDate();
    public abstract DataSetDefJSONMarshaller getDataSetDefJSONMarshaller();
    public abstract void setDataSetPushEnabled(boolean dataSetPushEnabled);
    public abstract void setDataSetPushMaxSize(int dataSetPushMaxSize);
    public abstract void setScheduler(Scheduler scheduler);
    public abstract void setDataSetDefRegistry(DataSetDefRegistry dataSetDefRegistry);
    public abstract void setDataSetProviderRegistry(DataSetProviderRegistry dataSetProviderRegistry);
    public abstract void setDataSetDefDeployer(DataSetDefDeployer dataSetDefDeployer);
    public abstract void setBeanDataSetProvider(BeanDataSetProvider beanDataSetProvider);
    public abstract void setStaticDataSetProvider(StaticDataSetProvider staticDataSetProvider);
    public abstract void setIntervalBuilderDynamicDate(IntervalBuilderDynamicDate intervalBuilderDynamicDate);
    public abstract void setDataSetDefJSONMarshaller(DataSetDefJSONMarshaller dataSetDefJSONMarshaller);
}