1 22 package org.jboss.virtual.plugins.vfs.helpers; 23 24 import java.util.ArrayList ; 25 import java.util.Collections ; 26 import java.util.List ; 27 28 import org.jboss.virtual.VirtualFile; 29 import org.jboss.virtual.VirtualFileFilter; 30 import org.jboss.virtual.VirtualFileFilterWithAttributes; 31 import org.jboss.virtual.VisitorAttributes; 32 33 39 public class FilterVirtualFileVisitor extends AbstractVirtualFileVisitor 40 { 41 42 private final VirtualFileFilter filter; 43 44 45 private List <VirtualFile> matched; 46 47 55 private static VisitorAttributes checkAttributes(VirtualFileFilter filter, VisitorAttributes attributes) 56 { 57 if (filter == null) 58 throw new IllegalArgumentException ("Null filter"); 59 60 if (attributes != null) 62 return attributes; 63 64 if (filter instanceof VirtualFileFilterWithAttributes) 66 return ((VirtualFileFilterWithAttributes) filter).getAttributes(); 67 68 return null; 70 } 71 72 78 public FilterVirtualFileVisitor(VirtualFileFilter filter) 79 { 80 this(filter, null); 81 } 82 83 90 public FilterVirtualFileVisitor(VirtualFileFilter filter, VisitorAttributes attributes) 91 { 92 super(checkAttributes(filter, attributes)); 93 this.filter = filter; 94 } 95 96 101 public List <VirtualFile> getMatched() 102 { 103 if (matched == null) 104 return Collections.emptyList(); 105 else 106 return matched; 107 } 108 109 public void visit(VirtualFile virtualFile) 110 { 111 if (filter.accepts(virtualFile)) 112 { 113 if (matched == null) 114 matched = new ArrayList <VirtualFile>(); 115 matched.add(virtualFile); 116 } 117 } 118 } 119 | Popular Tags |