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(); } }; } }