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