package br.com.six2six.fixturefactory.function.impl; import br.com.six2six.fixturefactory.function.AtomicFunction; import br.com.six2six.fixturefactory.function.DateFunction; import com.mdimension.jchronic.Chronic; import com.mdimension.jchronic.Options; import com.mdimension.jchronic.utils.Span; public class ChronicFunction implements DateFunction { private String dateText; private Options options; public ChronicFunction(String text) { this.dateText = text; this.options = new Options(); } public ChronicFunction(String text, Options options) { this.dateText = text; this.options = options; } @SuppressWarnings("unchecked") @Override public <T> T generateValue() { Span span = Chronic.parse(dateText, options); return (T) (span != null ? span.getBeginCalendar() : null); } @Override public AtomicFunction asString(String pattern) { return new DateAsStringFunction(this, pattern); } }