package er.chronic.tags; import java.util.regex.Pattern; import er.chronic.Options; import er.chronic.utils.Token; public class ScalarMonth extends Scalar { private static final Pattern MONTH_PATTERN = Pattern.compile("^\\d\\d?$"); public ScalarMonth(Integer type) { super(type); } @Override public String toString() { return super.toString() + "-month-" + getType(); } public static ScalarMonth scan(Token token, Token postToken, Options options) { if (ScalarMonth.MONTH_PATTERN.matcher(token.getWord()).matches()) { int scalarValue = Integer.parseInt(token.getWord()); if (!(scalarValue > 12 || scalarValue < 1 || (postToken != null && Scalar.TIMES.contains(postToken.getWord())))) { return new ScalarMonth(Integer.valueOf(scalarValue)); } } return null; } }