1 22 package org.jboss.virtual.plugins.vfs.helpers; 23 24 import java.util.ArrayList ; 25 import java.util.Collection ; 26 import java.util.Collections ; 27 28 import org.jboss.logging.Logger; 29 import org.jboss.virtual.VirtualFile; 30 import org.jboss.virtual.VisitorAttributes; 31 32 39 public class SuffixMatchFilter extends AbstractVirtualFileFilterWithAttributes 40 { 41 private static Logger log = Logger.getLogger(SuffixMatchFilter.class); 42 43 private Collection <String > suffixes; 44 private boolean trace; 45 46 53 public SuffixMatchFilter(String suffix) 54 { 55 this(suffix, null); 56 } 57 58 65 @SuppressWarnings ("unchecked") 66 public SuffixMatchFilter(String suffix, VisitorAttributes attributes) 67 { 68 this(Collections.EMPTY_LIST, attributes); 69 suffixes.add(suffix); 70 trace = log.isTraceEnabled(); 71 } 72 77 public SuffixMatchFilter(Collection <String > suffixes) 78 { 79 this(suffixes, null); 80 } 81 87 public SuffixMatchFilter(Collection <String > suffixes, VisitorAttributes attributes) 88 { 89 super(attributes == null ? VisitorAttributes.DEFAULT : attributes); 90 if (suffixes == null) 91 throw new IllegalArgumentException ("Null suffixes"); 92 this.suffixes = new ArrayList <String >(); 93 this.suffixes.addAll(suffixes); 94 } 95 96 101 public boolean accepts(VirtualFile file) 102 { 103 String name = file.getName(); 104 boolean accepts = false; 105 for(String suffix : suffixes) 106 { 107 if (name.endsWith(suffix)) 108 { 109 accepts = true; 110 break; 111 } 112 } 113 if( trace ) 114 log.trace(file+" accepted: "+accepts); 115 return accepts; 116 } 117 } 118 | Popular Tags |