package com.thaiopensource.datatype.xsd.regex.java;
import com.thaiopensource.datatype.xsd.regex.Regex;
import com.thaiopensource.datatype.xsd.regex.RegexEngine;
import com.thaiopensource.datatype.xsd.regex.RegexSyntaxException;
import java.util.regex.Pattern;
/**
* An implementation of <code>RegexEngine</code> using the JDK >= 1.4 <code>java.util.regex</code>
* package.
*/
public class RegexEngineImpl implements RegexEngine {
public RegexEngineImpl() {
// Force a linkage error on instantiation if JDK >= 1.4 is not available.
boolean b = RegexFeatures.SURROGATES_DIRECT;
}
public Regex compile(String str) throws RegexSyntaxException {
// Don't catch PatternSyntaxException
// The Translator should detect all syntax errors
final Pattern pattern = Pattern.compile(Translator.translate(str));
return new Regex() {
public boolean matches(String str) {
return pattern.matcher(str).matches();
}
};
}
}