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