Example #1
0
 public PathFilter parseFilter(AsciiBuffer path) {
   ArrayList<Part> parts = new ArrayList<Part>(parsePath(path).parts);
   Collections.reverse(parts);
   PartFilter last = null;
   for (Part p : parts) {
     if (p.isLiteral()) {
       last = new LitteralPathFilter(last, (LiteralPart) p);
     } else if (p == ANY_CHILD) {
       last = new AnyChildPathFilter(last);
     } else if (p == ANY_DESCENDANT) {
       last = new AnyDecendentPathFilter(last);
     }
   }
   final PartFilter filter = last;
   return new PathFilter() {
     public boolean matches(Path path) {
       return filter.matches(new LinkedList(path.parts));
     }
   };
 }