/*
* 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.dataset.client;
import org.dashbuilder.dataset.DataSetManager;
import org.dashbuilder.dataset.AbstractDataSetCore;
import org.dashbuilder.dataset.client.engine.ClientChronometer;
import org.dashbuilder.dataset.client.engine.ClientDateFormatter;
import org.dashbuilder.dataset.client.engine.ClientDateFormatterImpl;
import org.dashbuilder.dataset.client.engine.ClientIntervalBuilderDynamicDate;
import org.dashbuilder.dataset.client.engine.ClientIntervalBuilderLocator;
import org.dashbuilder.dataset.client.uuid.ClientUUIDGenerator;
import org.dashbuilder.dataset.engine.Chronometer;
import org.dashbuilder.dataset.engine.group.IntervalBuilderLocator;
import org.dashbuilder.dataset.uuid.UUIDGenerator;
public class ClientDataSetCore extends AbstractDataSetCore {
private static ClientDataSetCore _instance = null;
public static ClientDataSetCore get() {
if (_instance == null) {
_instance = new ClientDataSetCore();
}
return _instance;
}
private ClientDataSetManager clientDataSetManager;
private ClientIntervalBuilderLocator clientIntervalBuilderLocator;
private ClientChronometer clientChronometer;
private ClientUUIDGenerator clientUUIDGenerator;
private ClientIntervalBuilderDynamicDate clientIntervalBuilderDynamicDate;
private ClientDateFormatter clientDateFormatter;
// Getters
public ClientDataSetManager getClientDataSetManager() {
if (clientDataSetManager == null) {
clientDataSetManager = new ClientDataSetManager();
}
return clientDataSetManager;
}
public ClientIntervalBuilderLocator getClientIntervalBuilderLocator() {
if (clientIntervalBuilderLocator == null) {
clientIntervalBuilderLocator = new ClientIntervalBuilderLocator(
checkNotNull(getIntervalBuilderDynamicLabel(), "IntervalBuilderDynamicLabel"),
checkNotNull(getClientIntervalBuilderDynamicDate(), "ClientIntervalBuilderDynamicDate"),
checkNotNull(getIntervalBuilderFixedDate(), "IntervalBuilderFixedDate"));
}
return clientIntervalBuilderLocator;
}
public ClientIntervalBuilderDynamicDate getClientIntervalBuilderDynamicDate() {
if (clientIntervalBuilderDynamicDate == null) {
clientIntervalBuilderDynamicDate = new ClientIntervalBuilderDynamicDate(
checkNotNull(getClientDateFormatter(), "ClientDateFormatter")
);
}
return clientIntervalBuilderDynamicDate;
}
public ClientDateFormatter getClientDateFormatter() {
if (clientDateFormatter == null) {
clientDateFormatter = new ClientDateFormatterImpl();
}
return clientDateFormatter;
}
public ClientChronometer getClientChronometer() {
if (clientChronometer == null) {
clientChronometer = new ClientChronometer();
}
return clientChronometer;
}
public ClientUUIDGenerator getClientUUIDGenerator() {
if (clientUUIDGenerator == null) {
clientUUIDGenerator = new ClientUUIDGenerator();
}
return clientUUIDGenerator;
}
// Setters
public void setClientDataSetManager(ClientDataSetManager clientDataSetManager) {
this.clientDataSetManager = clientDataSetManager;
}
public void setClientIntervalBuilderLocator(ClientIntervalBuilderLocator clientIntervalBuilderLocator) {
this.clientIntervalBuilderLocator = clientIntervalBuilderLocator;
}
public void setClientIntervalBuilderDynamicDate(ClientIntervalBuilderDynamicDate clientIntervalBuilderDynamicDate) {
this.clientIntervalBuilderDynamicDate = clientIntervalBuilderDynamicDate;
}
public void setClientDateFormatter(ClientDateFormatter clientDateFormatter) {
this.clientDateFormatter = clientDateFormatter;
}
public void setClientChronometer(ClientChronometer clientChronometer) {
this.clientChronometer = clientChronometer;
}
public void setClientUUIDGenerator(ClientUUIDGenerator clientUUIDGenerator) {
this.clientUUIDGenerator = clientUUIDGenerator;
}
// Factory methods
@Override
public DataSetManager newDataSetManager() {
return getClientDataSetManager();
}
@Override
public IntervalBuilderLocator newIntervalBuilderLocator() {
return getClientIntervalBuilderLocator();
}
@Override
public Chronometer newChronometer() {
return getClientChronometer();
}
@Override
public UUIDGenerator newUuidGenerator() {
return getClientUUIDGenerator();
}
}