1 30 31 38 package com.nightlabs.io; 39 40 import java.io.File ; 41 import java.util.ArrayList ; 42 import java.util.Collection ; 43 import java.util.HashMap ; 44 import java.util.Iterator ; 45 import java.util.List ; 46 import java.util.Map ; 47 48 51 public class IOFilterMan 52 { 53 56 protected List ioFilters = new ArrayList (); 57 58 62 protected Map fileExtension2IOFilter = new HashMap (); 63 64 public IOFilterMan() { 65 super(); 66 } 67 68 71 public void addIOFilter(IOFilter ioFilter) 72 { 73 if (ioFilter== null) 74 throw new NullPointerException ("Param ioFilter must not be null!"); 75 76 ioFilters.add(ioFilter); 77 fileExtension2IOFilter.put(ioFilter.getFileExtension(), ioFilter); 78 } 79 80 83 public void removeIOFilter(IOFilter ioFilter) 84 { 85 if (ioFilters.contains(ioFilter)) { 86 ioFilters.remove(ioFilter); 87 fileExtension2IOFilter.remove(ioFilter.getFileExtension()); 88 } 89 } 90 91 97 public IOFilter getIOFilter(File file) 98 { 99 if (file == null) 100 throw new IllegalArgumentException ("Param file must not be null!"); 101 102 String fileExtension = getFileExtension(file); 103 if (fileExtension2IOFilter.containsKey(fileExtension)) 104 return (IOFilter) fileExtension2IOFilter.get(fileExtension); 105 else 106 return null; 107 } 108 109 115 public IOFilter getIOFilter(String fileExtension) 116 { 117 if (fileExtension == null) 118 throw new IllegalArgumentException ("Param fileExtension must not be null!"); 119 120 if (fileExtension2IOFilter.containsKey(fileExtension)) 121 return (IOFilter) fileExtension2IOFilter.get(fileExtension); 122 else 123 return null; 124 } 125 126 131 protected String getFileExtension(File file) 132 { 133 if (file == null) 134 throw new IllegalArgumentException ("Param file must not be null!"); 135 136 StringBuffer sb = new StringBuffer (file.getName()); 137 int index = sb.lastIndexOf("."); 138 if (index == -1) { 139 return null; 140 } 141 return sb.substring(index+1); 142 } 143 144 148 public Collection getAvailableFileExtensions() 149 { 150 return fileExtension2IOFilter.keySet(); 151 } 152 153 157 public String [] getAvailableFileExtensionsAsStrings(boolean concatWildcard) 158 { 159 String [] fileExtensions = null; 160 int counter = 0; 161 for (Iterator it = fileExtension2IOFilter.keySet().iterator(); it.hasNext(); ) 162 { 163 if (fileExtensions == null) 164 fileExtensions = new String [fileExtension2IOFilter.keySet().size()]; 165 166 String fileExtension = (String ) it.next(); 167 if (concatWildcard) 168 fileExtension = concatWildcard(fileExtension); 169 fileExtensions[counter] = fileExtension; 170 counter++; 171 } 172 return fileExtensions; 173 } 174 175 public String [] getAvailableFileExtensionsAsStrings() { 176 return getAvailableFileExtensionsAsStrings(true); 177 } 178 179 protected String concatWildcard(String s) { 180 return "*." + s; 181 } 182 } 183 | Popular Tags |