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

net.jqwik.time.internal.properties.arbitraries.valueRanges.Between Maven / Gradle / Ivy

package net.jqwik.time.internal.properties.arbitraries.valueRanges;

public abstract class Between {

	private T min;
	private T max;

	protected void checkValidity(T min, T max) {
		//Override if needed
		//do nothing in default case
	}

	@SuppressWarnings("unchecked")
	protected boolean minIsBeforeMax(T min, T max) {
		if (min instanceof Comparable && max instanceof Comparable) {
			Comparable comparableMin = (Comparable) min;
			return comparableMin.compareTo(max) <= 0;
		}
		return true;
	}

	public Between set(T min, T max) {
		min = min != null ? min : this.min;
		max = max != null ? max : this.max;
		if (!minIsBeforeMax(min, max)) {
			T remember = min;
			min = max;
			max = remember;
		}
		checkValidity(min, max);
		this.min = min;
		this.max = max;
		return this;
	}

	public T getMin() {
		return min;
	}

	public T getMax() {
		return max;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy