1 package net.sourceforge.pmd.jaxen; 2 3 import org.jaxen.Context; 4 import org.jaxen.Function; 5 import org.jaxen.FunctionCallException; 6 import org.jaxen.SimpleFunctionContext; 7 import org.jaxen.XPathFunctionContext; 8 9 import java.util.List ; 10 import java.util.regex.Pattern ; 11 import java.util.regex.Matcher ; 12 13 public class MatchesFunction implements Function { 14 15 public static void registerSelfInSimpleContext() { 16 ((SimpleFunctionContext) XPathFunctionContext.getInstance()).registerFunction(null, "matches", new MatchesFunction()); 18 } 19 20 public Object call(Context context, List args) throws FunctionCallException { 21 if (args.isEmpty()) { 22 return Boolean.FALSE; 23 } 24 List attributes = (List ) args.get(0); 25 Attribute attr = (Attribute) attributes.get(0); 26 27 Pattern check = Pattern.compile((String ) args.get(1)); 28 Matcher matcher = check.matcher(attr.getValue()); 29 if (matcher.find()) { 30 return context.getNodeSet(); 31 } 32 return Boolean.FALSE; 33 } 34 } 35 | Popular Tags |