Revision 24571 branches/v2_0_0_prep/libraries/libFMap_dalfile/src/org/gvsig/fmap/dal/explorer/filesystem/FilesystemExplorer.java
FilesystemExplorer.java | ||
---|---|---|
134 | 134 |
|
135 | 135 |
for (i = 0; i < files.length; i++) { |
136 | 136 |
theFile = new File(this.root, files[i]); |
137 |
dsp = this.getParameters(theFile); |
|
137 |
dsp = this.getParametersFor(theFile);
|
|
138 | 138 |
if (dsp != null) { |
139 | 139 |
list.add(dsp); |
140 | 140 |
} |
141 |
|
|
142 | 141 |
} |
143 | 142 |
return list; |
144 | 143 |
} |
... | ... | |
158 | 157 |
|
159 | 158 |
public void remove(DataStoreParameters dsp) throws RemoveException { |
160 | 159 |
String providerName = dsp.getDataStoreName(); |
161 |
this.checkIsMine(dsp); |
|
162 | 160 |
try { |
161 |
this.checkIsMine(dsp); |
|
163 | 162 |
DataStoreProvider provider = this.getManager().createStoreProvider( |
164 | 163 |
providerName); |
165 | 164 |
|
... | ... | |
216 | 215 |
return (DataManagerProviderServices) DALLocator.getDataManager(); |
217 | 216 |
} |
218 | 217 |
|
219 |
private boolean accept(File file) { |
|
218 |
private DataStoreParameters getParametersFor(File file) |
|
219 |
throws DataException { |
|
220 | 220 |
if (!file.exists()) { |
221 |
return false; |
|
222 |
} |
|
223 |
if (!file.isFile()) { |
|
224 |
return false; |
|
225 |
} |
|
226 |
if (!file.canRead()) { |
|
227 |
return false; |
|
228 |
} |
|
229 |
if (file.isHidden()) { // XXX ??? |
|
230 |
return false; |
|
231 |
} |
|
232 |
Iterator filters = getFilters(); |
|
233 |
while (filters.hasNext()) { |
|
234 |
FileFilter filter = (FileFilter) filters.next(); |
|
235 |
if (filter.accept(file)) { |
|
236 |
return true; |
|
237 |
} |
|
238 |
} |
|
239 |
return false; |
|
240 |
} |
|
241 |
|
|
242 |
private DataStoreParameters getParameters(File file) throws DataException { |
|
243 |
if (!file.exists()) { |
|
244 | 221 |
return null; |
245 | 222 |
} |
246 | 223 |
if (!file.isFile()) { |
... | ... | |
256 | 233 |
while (filters.hasNext()) { |
257 | 234 |
FilesystemFileFilter filter = (FilesystemFileFilter) filters.next(); |
258 | 235 |
if (filter.accept(file)) { |
259 |
return filter.getParameters(file); |
|
236 |
DataStoreParameters params = DALLocator.getDataManager() |
|
237 |
.createStoreParameters( |
|
238 |
filter.getDataStoreProviderName()); |
|
239 |
((FilesystemStoreParameters) params).setFile(file); |
|
240 |
return params; |
|
260 | 241 |
} |
261 | 242 |
} |
262 | 243 |
return null; |
263 | 244 |
} |
264 | 245 |
|
265 | 246 |
private void checkIsMine(DataStoreParameters dsp) |
266 |
throws IllegalArgumentException { |
|
267 |
|
|
268 |
String fileName = (String) dsp.getAttribute("file"); |
|
269 |
if (fileName == null) { |
|
270 |
new IllegalArgumentException("property file not found"); |
|
247 |
throws IllegalArgumentException, DataException { |
|
248 |
if (!(dsp instanceof FilesystemExplorer)) { |
|
249 |
new IllegalArgumentException("not instance of FilesystemExplorer"); |
|
271 | 250 |
} |
272 |
File file = new File(fileName); |
|
273 |
if (!this.root.equals(file.getParentFile())) { |
|
251 |
Iterator filters = getFilters(); |
|
252 |
File file = ((FilesystemStoreParameters) dsp).getFile(); |
|
253 |
if (!file.getAbsolutePath().startsWith(this.root.getAbsolutePath())) { |
|
274 | 254 |
throw new IllegalArgumentException("worng explorer"); |
275 | 255 |
} |
276 |
if (!this.accept(file)) { |
|
277 |
throw new IllegalArgumentException("worng explorer"); |
|
256 |
FilesystemFileFilter filter; |
|
257 |
while (filters.hasNext()) { |
|
258 |
filter = (FilesystemFileFilter) filters.next(); |
|
259 |
if (dsp.getDataStoreName().equals(filter.getDataStoreProviderName())) { |
|
260 |
return; |
|
261 |
} |
|
278 | 262 |
} |
279 |
|
|
263 |
throw new IllegalArgumentException("worng explorer"); |
|
280 | 264 |
} |
281 | 265 |
|
282 | 266 |
|
Also available in: Unified diff