Revision 24710 branches/v2_0_0_prep/libraries/libFMap_dalfile/src/org/gvsig/fmap/dal/explorer/filesystem/FilesystemExplorer.java

View differences:

FilesystemExplorer.java
12 12
import org.gvsig.fmap.dal.DataStoreParameters;
13 13
import org.gvsig.fmap.dal.NewDataStoreParameters;
14 14
import org.gvsig.fmap.dal.exception.DataException;
15
import org.gvsig.fmap.dal.exception.FileNotFoundException;
15 16
import org.gvsig.fmap.dal.exception.InitializeException;
17
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
16 18
import org.gvsig.fmap.dal.exception.RemoveException;
17 19
import org.gvsig.fmap.dal.spi.DataExplorerProvider;
18 20
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
......
147 149
		return list;
148 150
	}
149 151

  
150
	public void setCurrentPath(File path) {
152
	public void setCurrentPath(File path) throws FileNotFoundException {
151 153
		// FIXME Comprobar si es un directorio existente
154
		if (!path.exists()) {
155
			throw new FileNotFoundException(path);
156
		}
157
		if (!path.isDirectory()) {
158
			throw new IllegalArgumentException(path.getPath()
159
					+ " is not a directory");
160
		}
161
		if (!isFromRoot(path)) {
162
			throw new IllegalArgumentException(path.getPath()
163
					+ " is not from root");
164

  
165
		}
166

  
152 167
		this.current = path;
153 168
	}
154 169

  
......
196 211
		return this.FILE_FILTER_EPSNAME;
197 212
	}
198 213

  
199
	public NewDataStoreParameters getAddParameters(String storeName) {
200
		// TODO Auto-generated method stub
201
		return null;
214
	public NewDataStoreParameters getAddParameters(String storeName)
215
			throws DataException {
216
		DataStoreProvider provider = this.getProvider(storeName);
217
		if (provider == null) {
218
			throw new IllegalArgumentException(
219
					"Not registered in this explorer"); // FIXME
220
		}
221

  
222
		NewDataStoreParameters nParams = provider.getCreateParameters();
223
		//		nParams.setAttribute("path", this.getCurrentPath().getPath());
224
		return nParams;
202 225
	}
203 226

  
204 227
	public boolean canAdd(String storeName)
205 228
			throws DataException {
206
		//		String providerName = parameters.getDataStoreName();
207
		//		this.checkIsMine(parameters);
208
		//
209
		//		DataStoreProvider provider = this.getManager().createStoreProvider(
210
		//				providerName);
211
		//
212
		//		return provider.canCreate(parameters);
213
		return false;
229
		DataStoreProvider provider = this.getProvider(storeName);
230
		if (provider == null) {
231
			throw new IllegalArgumentException(
232
					"Not registered in this explorer"); // FIXME
233
		}
214 234

  
235
		return provider.canCreate();
236

  
215 237
	}
216 238

  
217 239
	// ==========================================
218 240

  
241
	private DataStoreProvider getProvider(String storeName)
242
			throws InitializeException, ProviderNotRegisteredException {
243
		Iterator filters = getFilters();
244
		while (filters.hasNext()) {
245
			FilesystemFileFilter filter = (FilesystemFileFilter) filters.next();
246
			if (filter.getDataStoreProviderName().equals(storeName)) {
247
				return this.getManager().createStoreProvider(storeName);
248
			}
249
		}
250
		return null;
251
	}
252

  
219 253
	private DataManagerProviderServices getManager() {
220 254
		return (DataManagerProviderServices) DALLocator.getDataManager();
221 255
	}
......
238 272
		while (filters.hasNext()) {
239 273
			FilesystemFileFilter filter = (FilesystemFileFilter) filters.next();
240 274
			if (filter.accept(file)) {
241
				DataStoreParameters params = DALLocator.getDataManager()
275
				DataStoreParameters params = this.getManager()
242 276
						.createStoreParameters(
243 277
								filter.getDataStoreProviderName());
244 278
				((FilesystemStoreParameters) params).setFile(file);
......
255 289
		}
256 290
		Iterator filters = getFilters();
257 291
		File file = ((FilesystemStoreParameters) dsp).getFile();
258
		if (!file.getAbsolutePath().startsWith(this.root.getAbsolutePath())) {
292
		if (!this.isFromRoot(file)) {
259 293
			throw new IllegalArgumentException("worng explorer");
260 294
		}
261 295
		FilesystemFileFilter filter;
......
268 302
		throw new IllegalArgumentException("worng explorer");
269 303
	}
270 304

  
305
	private boolean isFromRoot(File file) {
306
		return file.getAbsolutePath().startsWith(this.root.getAbsolutePath());
307
	}
271 308

  
309

  
272 310
}

Also available in: Unified diff