DateRandomField.java
package de.slothsoft.random.types;
import java.util.Calendar;
import java.util.Date;
import de.slothsoft.random.RandomField;
/**
 * A {@link RandomField} representing a {@link Date} between 10 years ago and 10 years in
 * the future.
 *
 * @author Stef Schulz
 * @since 1.0.0
 */
public class DateRandomField extends AbstractChronoRandomField<Date> {
	@Override
	Date createDefaultStartValue() {
		final Calendar now = Calendar.getInstance();
		final int currentYear = now.get(Calendar.YEAR);
		now.set(Calendar.YEAR, currentYear - 10);
		return now.getTime();
	}
	@Override
	Date createDefaultEndValue() {
		final Calendar now = Calendar.getInstance();
		final int currentYear = now.get(Calendar.YEAR);
		now.set(Calendar.YEAR, currentYear + 10);
		return now.getTime();
	}
	@Override
	long toLongValue(Date value) {
		return value.getTime();
	}
	@Override
	Date fromLongValue(long date) {
		return new Date(date);
	}
	@Override
	public DateRandomField endValue(Date newEndValue) {
		return (DateRandomField) super.endValue(newEndValue);
	}
	@Override
	public DateRandomField startValue(Date newStartValue) {
		return (DateRandomField) super.startValue(newStartValue);
	}
}