package org.societies.context.user.refinement.impl.tools;
import java.io.File;
import java.io.FilenameFilter;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DataFileFilter implements FilenameFilter {
private String[] patterns;
private Pattern regex;
public DataFileFilter(String s){
if(!s.contains("|")) patterns = new String[]{s.trim()};
StringTokenizer st = new StringTokenizer(s,"|");
patterns = new String[st.countTokens()];
int count=0;
while (st.hasMoreTokens()){
patterns[count]=st.nextToken().trim();
count++;
}
}
public DataFileFilter(Pattern p){
this.regex = p;
}
public boolean accept(File dir, String name) {
if (regex!=null){
Matcher m = regex.matcher(name);
return m.matches();
}
for(String pattern:patterns){
if (name.toLowerCase().contains(pattern.toLowerCase())) return true;
}
return false;
}
}