package er.chronic.handlers;
import java.util.Calendar;
import java.util.List;
import er.chronic.Options;
import er.chronic.tags.ScalarYear;
import er.chronic.utils.Span;
import er.chronic.utils.Time;
import er.chronic.utils.Token;
public class SyHandler implements IHandler {
public Span handle(List<Token> tokens, Options options) {
int year = tokens.get(0).getTag(ScalarYear.class).getType().intValue();
Span span;
try {
Calendar dayStart = Time.construct(year, 1, 1);
List<Token> timeTokens = tokens.subList(1, tokens.size());
span = Handler.dayOrTime(dayStart, timeTokens, options);
// make the year span last a year rather than a day
if (!options.isGuess()) {
Calendar beginCalendar = span.getBeginCalendar();
span = new Span(beginCalendar, Time.cloneAndAdd(beginCalendar, Calendar.YEAR, 1));
}
} catch (IllegalArgumentException e) {
if (options.isDebug()) {
e.printStackTrace(System.out);
}
span = null;
}
return span;
}
}