1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| public class FiltreExtensible extends FileFilter{
//Description et extensions acceptées par le filtre
private String description;
private List<String> extensions;
//Constructeur à partir de la description
public FiltreExtensible(String description){
if(description == null){
throw new NullPointerException("La description ne peut être null.");
}
this.description = description;
this.extensions = new ArrayList<String>();
}
//Implémentation de FileFilter
public boolean accept(File file){
if(file.isDirectory() || extensions.size()==0) {
return true;
}
String nomFichier = file.getName().toLowerCase();
for(String extension : extensions){
if(nomFichier.endsWith(extension)){
return true;
}
}
return false;
}
public String getDescription(){
StringBuffer buffer = new StringBuffer(description);
buffer.append(" (");
for(String extension : extensions){
buffer.append(extension).append(" ");
}
return buffer.append(")").toString();
}
//Quelques méthodes utilitaires
public void setDescription(String description){
if(description == null){
throw new NullPointerException("La description ne peut être null.");
}
this.description = description;
}
public void addExtension(String extension){
if(extension == null){
throw new NullPointerException("Une extension ne peut être null.");
}
extensions.add(extension);
}
public void removeExtension(String extension){
extensions.remove(extension);
}
public void clearExtensions(){
extensions.clear();
}
public List<String> getExtensions(){
return extensions;
}
} |
Partager