package er.chronic.tags; import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; import er.chronic.Options; import er.chronic.utils.Token; public class SeparatorSlashOrDash extends Separator { private static final Pattern SLASH_PATTERN = Pattern.compile("^/$"); private static final Pattern DASH_PATTERN = Pattern.compile("^-$"); public SeparatorSlashOrDash(Separator.SeparatorType type) { super(type); } @Override public String toString() { return super.toString() + "-slashordash-" + getType(); } public static SeparatorSlashOrDash scan(Token token, Options options) { Map<Pattern, Separator.SeparatorType> scanner = new HashMap<>(); scanner.put(SeparatorSlashOrDash.DASH_PATTERN, Separator.SeparatorType.DASH); scanner.put(SeparatorSlashOrDash.SLASH_PATTERN, Separator.SeparatorType.SLASH); for (Pattern scannerItem : scanner.keySet()) { if (scannerItem.matcher(token.getWord()).matches()) { return new SeparatorSlashOrDash(scanner.get(scannerItem)); } } return null; } }