Clover coverage report - PMD - 3.9
Coverage timestamp: Tue Dec 19 2006 09:38:44 EST
file stats: LOC: 34   Methods: 2
NCLOC: 27   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
MatchesFunction.java 75% 90% 100% 87.5%
coverage coverage
 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  117 public static void registerSelfInSimpleContext() {
 16    // see http://jaxen.org/extensions.html
 17  117 ((SimpleFunctionContext) XPathFunctionContext.getInstance()).registerFunction(null, "matches", new MatchesFunction());
 18    }
 19   
 20  6 public Object call(Context context, List args) throws FunctionCallException {
 21  6 if (args.isEmpty()) {
 22  0 return Boolean.FALSE;
 23    }
 24  6 List attributes = (List) args.get(0);
 25  6 Attribute attr = (Attribute) attributes.get(0);
 26   
 27  6 Pattern check = Pattern.compile((String) args.get(1));
 28  6 Matcher matcher = check.matcher(attr.getValue());
 29  6 if (matcher.find()) {
 30  3 return context.getNodeSet();
 31    }
 32  3 return Boolean.FALSE;
 33    }
 34    }