1 5 6 package org.exoplatform.services.jcr.impl.core.itemfilters; 7 8 import org.apache.commons.lang.StringUtils; 9 10 import javax.jcr.Item; 11 import java.util.ArrayList ; 12 import java.util.StringTokenizer ; 13 import java.util.regex.Pattern ; 14 import java.util.regex.Matcher ; 15 16 22 23 public class NamePatternFilter implements ItemFilter { 24 25 private ArrayList expressions; 26 27 public NamePatternFilter(String namePattern) { 28 expressions = new ArrayList (); 29 StringTokenizer parser = new StringTokenizer (namePattern, "|"); 30 while (parser.hasMoreTokens()) { 31 String token = parser.nextToken(); 32 expressions.add(token.trim()); 33 } 34 } 35 36 public boolean accept(Item item) { 37 String name = item.getName(); 38 boolean result = false; 39 for (int i = 0; i < expressions.size(); i++) { 40 String expr = (String ) expressions.get(i); 41 if(estimate(name, expr)) 42 return true; 43 } 44 return false; 45 } 46 47 private boolean estimate(String name, String expr) { 48 if (expr.indexOf("*") == -1) 49 return name.equals(expr); 50 else { 51 String regexp = StringUtils.replace(expr,"*", ".*"); 52 Matcher matcher = Pattern.compile(regexp).matcher(name); 53 return matcher.matches(); 54 } 55 } 56 57 } 58 | Popular Tags |