All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.crashdata.chartjs.data.simple.builder.AbstractSimpleChartJsTickConfigBuilder Maven / Gradle / Ivy

package nl.crashdata.chartjs.data.simple.builder;

import java.io.Serializable;

import nl.crashdata.chartjs.data.simple.AbstractSimpleChartJsTickConfig;

public abstract class AbstractSimpleChartJsTickConfigBuilder> implements SimpleChartJsBuilder
{
	private E suggestedMinimum;

	private E forcedMinimum;

	private E suggestedMaximum;

	private E forcedMaximum;

	private E stepSize;

	public AbstractSimpleChartJsTickConfigBuilder withSuggestedMinimum(E suggestedMinimum)
	{
		this.suggestedMinimum = suggestedMinimum;
		return this;
	}

	public AbstractSimpleChartJsTickConfigBuilder withForcedMinimum(E forcedMinimum)
	{
		this.forcedMinimum = forcedMinimum;
		return this;
	}

	public AbstractSimpleChartJsTickConfigBuilder withSuggestedMaximum(E suggestedMaximum)
	{
		this.suggestedMaximum = suggestedMaximum;
		return this;
	}

	public AbstractSimpleChartJsTickConfigBuilder withForcedMaximum(E forcedMaximum)
	{
		this.forcedMaximum = forcedMaximum;
		return this;
	}

	public AbstractSimpleChartJsTickConfigBuilder withStepSize(E stepSize)
	{
		this.stepSize = stepSize;
		return this;
	}

	@Override
	public boolean isValid()
	{
		return true;
	}

	protected abstract T createNewTickConfig();

	@Override
	public T build() throws IllegalStateException
	{
		if (!isValid())
		{
			throw new IllegalStateException(getClass().getSimpleName() + " is not ready to build!");
		}
		T ret = createNewTickConfig();
		ret.setForcedMaximum(forcedMaximum);
		ret.setForcedMinimum(forcedMinimum);
		ret.setStepSize(stepSize);
		ret.setSuggestedMaximum(suggestedMaximum);
		ret.setSuggestedMinimum(suggestedMinimum);
		return ret;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy