package com.thaiopensource.datatype.xsd;
import com.thaiopensource.datatype.xsd.regex.Regex;
import org.relaxng.datatype.DatatypeException;
class PatternRestrictDatatype extends RestrictDatatype {
private final Regex pattern;
private final String patternString;
PatternRestrictDatatype(DatatypeBase base, Regex pattern, String patternString) {
super(base);
this.pattern = pattern;
this.patternString = patternString;
}
boolean lexicallyAllows(String str) {
return pattern.matches(str) && super.lexicallyAllows(str);
}
void checkLexicallyAllows(String str) throws DatatypeException {
super.checkLexicallyAllows(str);
if (!pattern.matches(str))
throw new DatatypeException(localizer().message("pattern_violation",
getDescriptionForRestriction(),
patternString));
}
}