Revision 5614

View differences:

org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/pom.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3
	<modelVersion>4.0.0</modelVersion>
4
	<artifactId>org.gvsig.raster.tilecache.io</artifactId>
5
	<packaging>jar</packaging>
6
	<version>2.2.30</version>
7
	<name>org.gvsig.raster.tilecache.io</name>
8
	<parent>
9
        <groupId>org.gvsig</groupId>
10
        <artifactId>org.gvsig.raster.tilecache</artifactId>
11
        <version>2.2.30</version>
12
    </parent>
13
	<dependencies>
14
		<dependency>
15
			<groupId>org.gvsig</groupId>
16
			<artifactId>org.gvsig.raster.cache.lib.api</artifactId>
17
            <scope>compile</scope>
18
		</dependency>
19
        <dependency>
20
            <groupId>org.gvsig</groupId>
21
            <artifactId>org.gvsig.raster.cache.lib.impl</artifactId>
22
            <scope>compile</scope>
23
        </dependency>
24
		<dependency>
25
			<groupId>org.gvsig</groupId>
26
			<artifactId>org.gvsig.raster.lib.api</artifactId>
27
            <scope>compile</scope>
28
		</dependency>
29
        <dependency>
30
            <groupId>org.gvsig</groupId>
31
            <artifactId>org.gvsig.raster.lib.impl</artifactId>
32
            <scope>compile</scope>
33
        </dependency>
34
        <dependency>
35
            <groupId>org.gvsig</groupId>
36
            <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
37
            <scope>compile</scope>
38
        </dependency>
39
		<dependency>
40
            <groupId>org.gvsig</groupId>
41
            <artifactId>org.gvsig.tools.lib</artifactId>
42
            <scope>compile</scope>
43
        </dependency>
44
        
45
        <dependency>
46
            <groupId>org.gvsig</groupId>
47
            <artifactId>org.gvsig.projection.api</artifactId>
48
            <scope>compile</scope>
49
        </dependency>
50
        <dependency>
51
            <groupId>org.gvsig</groupId>
52
            <artifactId>org.gvsig.projection.cresques.impl</artifactId>
53
            <scope>runtime</scope>
54
        </dependency>
55
         <dependency>
56
            <groupId>org.gvsig</groupId>
57
            <artifactId>org.gvsig.compat.api</artifactId>
58
            <scope>compile</scope>
59
        </dependency>
60
        <dependency>
61
            <groupId>org.gvsig</groupId>
62
            <artifactId>org.gvsig.compat.se</artifactId>
63
            <scope>compile</scope>
64
        </dependency>
65
        <dependency>
66
            <groupId>org.gvsig</groupId>
67
            <artifactId>org.gvsig.fmap.dal.api</artifactId>
68
            <scope>compile</scope>
69
        </dependency>
70
        <dependency>
71
            <groupId>org.gvsig</groupId>
72
            <artifactId>org.gvsig.fmap.dal.impl</artifactId>
73
            <scope>compile</scope>
74
        </dependency>
75
        <dependency>
76
            <groupId>org.gvsig</groupId>
77
            <artifactId>org.gvsig.fmap.dal.file.lib</artifactId>
78
            <scope>compile</scope>
79
        </dependency>
80
        <dependency>
81
            <groupId>org.gvsig</groupId>
82
            <artifactId>org.gvsig.fmap.dal.spi</artifactId>
83
            <scope>compile</scope>
84
        </dependency>
85
        <dependency>
86
            <groupId>org.gvsig</groupId>
87
            <artifactId>org.gvsig.fmap.geometry.api</artifactId>
88
            <scope>compile</scope>
89
        </dependency>
90
    <!--
91
        <dependency>
92
            <groupId>org.gvsig</groupId>
93
            <artifactId>org.gvsig.fmap.geometry.generalpath</artifactId>
94
            <scope>runtime</scope>
95
        </dependency>
96
        <dependency>
97
            <groupId>org.gvsig</groupId>
98
            <artifactId>org.gvsig.fmap.geometry.operation</artifactId>
99
            <scope>runtime</scope>
100
        </dependency>
101
    -->
102
	</dependencies>
103
</project>
0 104

  
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/resources/TemplateRasterProvider.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.fmap.dal.coverage.dataset.io.netcdf;
23

  
24
import java.awt.geom.AffineTransform;
25

  
26
import org.gvsig.fmap.dal.DALFileLocator;
27
import org.gvsig.fmap.dal.DALLocator;
28
import org.gvsig.fmap.dal.DataStore;
29
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
30
import org.gvsig.fmap.dal.coverage.dataset.io.tile.downloader.FileTileServer;
31
import org.gvsig.fmap.dal.coverage.datastruct.BandList;
32
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
33
import org.gvsig.fmap.dal.coverage.exception.BandAccessException;
34
import org.gvsig.fmap.dal.coverage.exception.FileNotOpenException;
35
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException;
36
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
37
import org.gvsig.fmap.dal.coverage.exception.ParsingException;
38
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
39
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
40
import org.gvsig.fmap.dal.coverage.store.RasterFileStoreParameters;
41
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
42
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
43
import org.gvsig.metadata.MetadataLocator;
44
import org.gvsig.raster.cache.tile.provider.TileListener;
45
import org.gvsig.raster.cache.tile.provider.TileServer;
46
import org.gvsig.raster.impl.datastruct.ExtentImpl;
47
import org.gvsig.raster.impl.provider.DefaultRasterProvider;
48
import org.gvsig.raster.impl.provider.RasterProvider;
49
import org.gvsig.raster.impl.store.AbstractRasterDataParameters;
50
import org.gvsig.raster.impl.store.AbstractRasterDataStore;
51
import org.gvsig.raster.impl.store.DefaultStoreFactory;
52
import org.gvsig.raster.impl.store.properties.DataStoreColorInterpretation;
53
import org.gvsig.raster.impl.store.properties.DataStoreMetadata;
54
import org.gvsig.raster.impl.store.properties.DataStoreTransparency;
55
import org.gvsig.tools.ToolsLocator;
56
import org.gvsig.tools.extensionpoint.ExtensionPoint;
57
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
58
/**
59
 * Data provider for ...
60
 *
61
 * @author Nacho Brodin (nachobrodin@gmail.com)
62
 */
63
public class NetCDFProvider extends DefaultRasterProvider {
64
	public static String        NAME                     = "Template Store";
65
	public static String        DESCRIPTION              = "Template Raster file";
66
	public final String         METADATA_DEFINITION_NAME = "TemplateStore";
67
	
68
	private static String[]     formatList               = new String[]{"*"};
69

  
70
	private Extent              viewRequest              = null;
71
	private TileServer          tileServer               = null;
72
	private boolean             open                     = false;
73

  
74
	public static void register() {
75
		DataManagerProviderServices dataman = (DataManagerProviderServices) DALLocator.getDataManager();
76
		if (dataman != null && !dataman.getStoreProviders().contains(NAME)) {
77
			dataman.registerStoreProvider(NAME,
78
					NetCDFProvider.class, NetCDFDataParameters.class);
79
		}
80
		
81
		if(DALFileLocator.getFilesystemServerExplorerManager() != null)
82
			DALFileLocator.getFilesystemServerExplorerManager().registerProvider(
83
					NAME, DESCRIPTION,
84
					NetCDFFilesystemServerExplorer.class);
85
		
86
		dataman.registerStoreFactory(NAME, DefaultStoreFactory.class);
87
	}
88
	
89
	
90
	/**
91
	 * Returns true if the extension is supported and false if doesn't
92
	 * @param ext
93
	 * @return
94
	 */
95
	public static boolean isExtensionSupported(String ext) {
96
		for (int i = 0; i < formatList.length; i++) {
97
			if(formatList[i].compareTo(ext) == 0)
98
				return true;
99
		}
100
		return false;
101
	}
102
	
103
	/**
104
	 * Constructor. Abre el dataset.
105
	 * @param proj Proyecci?n
106
	 * @param fName Nombre del fichero
107
	 * @throws NotSupportedExtensionException
108
	 */
109
	public NetCDFProvider(String params) throws NotSupportedExtensionException {
110
		super(params);
111
		if(params instanceof String) {
112
			NetCDFDataParameters p = new NetCDFDataParameters();
113
			p.setURI((String)params);
114
			super.init(p, null, ToolsLocator.getDynObjectManager()
115
					.createDynObject(
116
							MetadataLocator.getMetadataManager().getDefinition(
117
									DataStore.METADATA_DEFINITION_NAME)));
118
			init(p, null);
119
		}
120
	}
121
	
122
	public NetCDFProvider (NetCDFDataParameters params,
123
			AbstractRasterDataStore storeServices) throws NotSupportedExtensionException {
124
		super(params, storeServices, ToolsLocator.getDynObjectManager()
125
				.createDynObject(
126
						MetadataLocator.getMetadataManager().getDefinition(
127
								DataStore.METADATA_DEFINITION_NAME)));
128
		init(params, storeServices);
129
	}
130

  
131
	/**
132
	 * Crea las referencias al fichero y carga
133
	 * las estructuras con la informaci?n y los metadatos.
134
	 * @param proj Proyecci?n
135
	 * @param param Parametros de carga
136
	 * @throws NotSupportedExtensionException
137
	 */
138
	public void init (AbstractRasterDataParameters params,
139
			DataStoreProviderServices storeServices) throws NotSupportedExtensionException {
140
		//TODO:
141
		
142
		if(((RasterFileStoreParameters)params).getFile().exists()) {
143
			setParam(params);
144
			colorTable = null;
145
			noData = 0;
146
			wktProjection = null;
147
			//CrsWkt crs = new CrsWkt(wktProjection);
148
			//IProjection proj = CRSFactory.getCRS("EPSG:23030");
149
			noDataEnabled = true;
150
			ownTransformation = null;
151
			externalTransformation = (AffineTransform)ownTransformation.clone();
152
			load();
153
		} else
154
			setParam(params);
155
		bandCount = 0;
156
		setDataType(null);
157
		super.init();
158

  
159
		try {
160
			loadFromRmf(getRmfBlocksManager());
161
		} catch (ParsingException e) {
162
			//No lee desde rmf
163
		}
164
	}
165
	
166
	/*
167
	 * (non-Javadoc)
168
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#load()
169
	 */
170
	public RasterProvider load() {
171
		return this;
172
	}
173
	
174
	/*
175
	 * (non-Javadoc)
176
	 * @see org.gvsig.raster.impl.provider.RasterProvider#isOpen()
177
	 */
178
	public boolean isOpen() {
179
		return open;
180
	}
181

  
182
	/*
183
	 * (non-Javadoc)
184
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#close()
185
	 */
186
	public void close() {
187
		//TODO:
188
	}
189

  
190
	/*
191
	 * (non-Javadoc)
192
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#translateFileName(java.lang.String)
193
	 */
194
	public String translateFileName(String fileName) {
195
		return fileName;
196
	}
197

  
198
	/**
199
	 * Asigna el extent de la vista actual. existe un fichero .rmf debemos hacer una transformaci?n
200
	 * de la vista asignada ya que la petici?n viene en coordenadas del fichero .rmf y la vista (v)
201
	 * ha de estar en coordenadas del fichero.
202
	 */
203
	public void setView(Extent e) {
204
		viewRequest = new ExtentImpl(e);
205
	}
206

  
207
	/*
208
	 * (non-Javadoc)
209
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getView()
210
	 */
211
	public Extent getView() {
212
		return viewRequest;
213
	}
214

  
215
	/*
216
	 * (non-Javadoc)
217
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWidth()
218
	 */
219
	public double getWidth() {
220
		//TODO:
221
		return 0;
222
	}
223

  
224
	/*
225
	 * (non-Javadoc)
226
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getHeight()
227
	 */
228
	public double getHeight() {
229
		//TODO:
230
		return 0;
231
	}
232

  
233
	/**
234
	 * Read a line from the file
235
	 * @param line
236
	 * @param band
237
	 * @return
238
	 * @throws InvalidSetViewException
239
	 * @throws FileNotOpenException
240
	 * @throws RasterDriverException
241
	 * @Deprecated This operation is deprecated because is not useful and in the future
242
	 * it will not be maintained. The abstract operation has dissapear
243
	 */
244
	public Object readCompleteLine(int line, int band)throws InvalidSetViewException, FileNotOpenException, RasterDriverException {
245
		if(line > this.getHeight() || band > this.getBandCount())
246
			throw new InvalidSetViewException("Request out of grid");
247

  
248
		//TODO:
249
		return null;
250
	}
251

  
252
	/*
253
	 *  (non-Javadoc)
254
	 * @see org.gvsig.raster.dataset.RasterDataset#readBlock(int, int)
255
	 */
256
	public Object readBlock(int pos, int blockHeight)
257
		throws InvalidSetViewException, FileNotOpenException, RasterDriverException, ProcessInterruptedException {
258
		if(pos < 0)
259
			throw new InvalidSetViewException("Request out of grid");
260

  
261
		if((pos + blockHeight) > getHeight())
262
			blockHeight = Math.abs(((int)getHeight()) - pos);
263
		
264
		//TODO:
265
		return null;
266
	}
267

  
268
	/*
269
	 * (non-Javadoc)
270
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getData(int, int, int)
271
	 */
272
	public Object getData(int x, int y, int band)throws InvalidSetViewException, FileNotOpenException, RasterDriverException {
273
		if(x < 0 || y < 0 || x >= getWidth() || y >= getHeight())
274
			throw new InvalidSetViewException("Request out of grid");
275
		
276
		//TODO
277
		return null;
278
	}
279

  
280
	/*
281
	 * (non-Javadoc)
282
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.raster.cache.tile.provider.TileListener)
283
	 */
284
	public void getWindow(Extent ex, int bufWidth, int bufHeight, 
285
			BandList bandList, TileListener listener) throws ProcessInterruptedException, RasterDriverException {
286
		//TODO
287
	}
288

  
289
	/*
290
	 * (non-Javadoc)
291
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(org.gvsig.fmap.dal.coverage.datastruct.Extent, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer)
292
	 */
293
	public Buffer getWindow(Extent ex, BandList bandList, Buffer rasterBuf) 
294
		throws ProcessInterruptedException, RasterDriverException {
295
		//TODO
296

  
297
		return rasterBuf;
298
	}
299

  
300
	/*
301
	 * (non-Javadoc)
302
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer, boolean)
303
	 */
304
	public Buffer getWindow(double ulx, double uly, double w, double h, 
305
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent) throws ProcessInterruptedException, RasterDriverException {
306
		//TODO
307

  
308
		return rasterBuf;
309
	}
310

  
311
	/*
312
	 * (non-Javadoc)
313
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer, boolean)
314
	 */
315
	public Buffer getWindow(Extent extent, 
316
			int bufWidth, int bufHeight, BandList bandList, Buffer rasterBuf, boolean adjustToExtent) throws ProcessInterruptedException, RasterDriverException {
317
		//TODO
318
		
319
		return rasterBuf;
320
	}
321

  
322
	/*
323
	 * (non-Javadoc)
324
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(int, int, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer)
325
	 */
326
	public Buffer getWindow(int x, int y, int w, int h, 
327
			BandList bandList, Buffer rasterBuf) throws ProcessInterruptedException, RasterDriverException {
328
		//TODO
329
		
330
		return rasterBuf;
331
	}
332

  
333
	/*
334
	 * (non-Javadoc)
335
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(int, int, int, int, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer)
336
	 */
337
	public Buffer getWindow(int x, int y, int w, int h, 
338
			int bufWidth, int bufHeight, BandList bandList, Buffer rasterBuf) throws ProcessInterruptedException, RasterDriverException {
339
		//TODO
340
		
341
		return rasterBuf;
342
	}
343

  
344
	/*
345
	 * (non-Javadoc)
346
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getBlockSize()
347
	 */
348
	public int getBlockSize(){
349
		//TODO
350
		
351
		return 0;
352
	}
353

  
354
	/*
355
	 * (non-Javadoc)
356
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getMetadata()
357
	 */
358
	public DataStoreMetadata getMetadata() {
359
		//TODO
360
		
361
		return null;
362
	}
363

  
364
	/*
365
	 * (non-Javadoc)
366
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getColorInterpretation()
367
	 */
368
	public DataStoreColorInterpretation getColorInterpretation(){
369
		//TODO
370
		
371
		return null;
372
	}
373

  
374
	/*
375
	 * (non-Javadoc)
376
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#setColorInterpretation(org.gvsig.raster.impl.store.properties.DataStoreColorInterpretation)
377
	 */
378
	public void setColorInterpretation(DataStoreColorInterpretation colorInterpretation){
379
		//TODO
380
	}
381

  
382
	/*
383
	 * (non-Javadoc)
384
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getTransparency()
385
	 */
386
	public DataStoreTransparency getTransparency() {
387
		//TODO
388
		
389
		return null;
390
	}
391

  
392
	/*
393
	 * (non-Javadoc)
394
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#isGeoreferenced()
395
	 */
396
	public boolean isGeoreferenced() {
397
		//TODO
398
		
399
		return false;
400
	}
401

  
402
	/**
403
	 * Informa de si el driver ha supersampleado en el ?ltimo dibujado. Es el driver el que colocar?
404
	 * el valor de esta variable cada vez que dibuja.
405
	 * @return true si se ha supersampleado y false si no se ha hecho.
406
	 */
407
	public boolean isSupersampling() {
408
		//TODO
409
		
410
		return false;
411
	}
412

  
413
	/*
414
	 * (non-Javadoc)
415
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#setAffineTransform(java.awt.geom.AffineTransform)
416
	 */
417
	public void setAffineTransform(AffineTransform t){
418
		super.setAffineTransform(t);
419
	}
420

  
421
	/*
422
	 * (non-Javadoc)
423
	 * @see org.gvsig.raster.impl.provider.RasterProvider#getOverviewCount(int)
424
	 */
425
	public int getOverviewCount(int band) throws BandAccessException, RasterDriverException {
426
		if(band >= getBandCount())
427
			throw new BandAccessException("Wrong band");
428
		//TODO
429
		
430
		return 0;
431
	}
432

  
433
	/*
434
	 * (non-Javadoc)
435
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getOverviewWidth(int, int)
436
	 */
437
	public int getOverviewWidth(int band, int overview) throws BandAccessException, RasterDriverException {
438
		if (band >= getBandCount())
439
			throw new BandAccessException("Wrong band");
440
		//TODO
441
		
442
		return 0;
443
	}
444

  
445
	/*
446
	 * (non-Javadoc)
447
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getOverviewHeight(int, int)
448
	 */
449
	public int getOverviewHeight(int band, int overview) throws BandAccessException, RasterDriverException {
450
		if (band >= getBandCount())
451
			throw new BandAccessException("Wrong band");
452
		//TODO
453
		
454
		return 0;
455
	}
456

  
457
	/*
458
	 * (non-Javadoc)
459
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#overviewsSupport()
460
	 */
461
	public boolean overviewsSupport() {
462
		return true;
463
	}
464

  
465
	/*
466
	 * (non-Javadoc)
467
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#isReproyectable()
468
	 */
469
	public boolean isReproyectable() {
470
		return true;
471
	}
472

  
473
	/*
474
	 * (non-Javadoc)
475
	 * @see org.gvsig.fmap.dal.spi.DataStoreProvider#getName()
476
	 */
477
	public String getName() {
478
		return NAME;
479
	}
480
	
481
	/*
482
	 * (non-Javadoc)
483
	 * @see org.gvsig.raster.impl.provider.RasterProvider#setStatus(org.gvsig.raster.impl.provider.RasterProvider)
484
	 */
485
	public void setStatus(RasterProvider provider) {
486
		if(provider instanceof NetCDFProvider) {
487
			//Not implemented yet
488
		}
489
	}
490
	
491
	/*
492
	 * (non-Javadoc)
493
	 * @see org.gvsig.raster.impl.provider.RasterProvider#getTileServer()
494
	 */
495
	public TileServer getTileServer() {
496
		if(tileServer == null)
497
			tileServer = new FileTileServer(this);
498
		return tileServer;
499
	}
500
}
0 501

  
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/resources/README.txt
1
Put into this folder the resources needed by your test classes.
2

  
3
This folder is added to the Tests classpath, so you can load any resources 
4
through the ClassLoader.
5

  
6
By default, in this folder you can find an example of log4j configuration,
7
prepared to log messages through the console, so logging works when you
8
run your tests classes.
0 9

  
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/resources/log4j.xml
1
<?xml version="1.0" encoding="ISO-8859-1" ?>
2
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3

  
4
<!-- 
5
Log4J configuration file for unit tests execution.
6
 -->
7
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
8

  
9
	<!-- Appender configuration to show logging messages through the console -->
10
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
11
		<layout class="org.apache.log4j.PatternLayout">
12
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
13
		</layout>
14
	</appender>
15

  
16
	<!-- 
17
	Activate logging messages of DEBUG level of higher only for the
18
	org.gvsig.tools packages.
19
	You can put full classes names or packages instead, to configure
20
	logging for all the classes and subpackages of the package.
21
	-->
22
	<category name="org.gvsig.tools">
23
		<priority value="DEBUG" />
24
	</category>
25
	<category name="org.gvsig.raster">
26
		<priority value="DEBUG" />
27
	</category>
28

  
29
	<!-- 
30
	By default, show only logging messages of INFO level or higher, 
31
	through the previously configured CONSOLE appender. 
32
	-->
33
	<root>
34
		<priority value="INFO" />
35
		<appender-ref ref="CONSOLE" />
36
	</root>
37
</log4j:configuration>
0 38

  
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.raster.cache.io.DefaultCacheIOLibrary
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/package.info
1
#
2
#Thu Mar 07 10:25:56 CET 2013
3
owner=gvSIG Association
4
code=org.gvsig.raster.tilecache.io
5
java-version=j1_5
6
official=true
7
type=plugin
8
version=2.0.0-0
9
state=devel
10
operating-system=all
11
dependencies=
12
sources-url=https\://devel.gvsig.org/redmine/projects/gvsig-raster/repository/show/org.gvsig.raster.tilecache/tags/2.0.0/org.gvsig.raster.tilecache.io
13
web-url=http\://www.gvsig.com
14
architecture=all
15
model-version=1.0.1
16
categories=
17
description=cache service for gvSIG
18
buildNumber=0
19
gvSIG-version=2.0.0
20
name=org.gvsig.raster.tilecache.io
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/src/test/resources/TemplateRasterProvider.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.fmap.dal.coverage.dataset.io.netcdf;
23

  
24
import java.awt.geom.AffineTransform;
25

  
26
import org.gvsig.fmap.dal.DALFileLocator;
27
import org.gvsig.fmap.dal.DALLocator;
28
import org.gvsig.fmap.dal.DataStore;
29
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
30
import org.gvsig.fmap.dal.coverage.dataset.io.tile.downloader.FileTileServer;
31
import org.gvsig.fmap.dal.coverage.datastruct.BandList;
32
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
33
import org.gvsig.fmap.dal.coverage.exception.BandAccessException;
34
import org.gvsig.fmap.dal.coverage.exception.FileNotOpenException;
35
import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException;
36
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
37
import org.gvsig.fmap.dal.coverage.exception.ParsingException;
38
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException;
39
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
40
import org.gvsig.fmap.dal.coverage.store.RasterFileStoreParameters;
41
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
42
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
43
import org.gvsig.metadata.MetadataLocator;
44
import org.gvsig.raster.cache.tile.provider.TileListener;
45
import org.gvsig.raster.cache.tile.provider.TileServer;
46
import org.gvsig.raster.impl.datastruct.ExtentImpl;
47
import org.gvsig.raster.impl.provider.DefaultRasterProvider;
48
import org.gvsig.raster.impl.provider.RasterProvider;
49
import org.gvsig.raster.impl.store.AbstractRasterDataParameters;
50
import org.gvsig.raster.impl.store.AbstractRasterDataStore;
51
import org.gvsig.raster.impl.store.DefaultStoreFactory;
52
import org.gvsig.raster.impl.store.properties.DataStoreColorInterpretation;
53
import org.gvsig.raster.impl.store.properties.DataStoreMetadata;
54
import org.gvsig.raster.impl.store.properties.DataStoreTransparency;
55
import org.gvsig.tools.ToolsLocator;
56
import org.gvsig.tools.extensionpoint.ExtensionPoint;
57
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
58
/**
59
 * Data provider for ...
60
 *
61
 * @author Nacho Brodin (nachobrodin@gmail.com)
62
 */
63
public class NetCDFProvider extends DefaultRasterProvider {
64
	public static String        NAME                     = "Template Store";
65
	public static String        DESCRIPTION              = "Template Raster file";
66
	public final String         METADATA_DEFINITION_NAME = "TemplateStore";
67
	
68
	private static String[]     formatList               = new String[]{"*"};
69

  
70
	private Extent              viewRequest              = null;
71
	private TileServer          tileServer               = null;
72
	private boolean             open                     = false;
73

  
74
	public static void register() {
75
		DataManagerProviderServices dataman = (DataManagerProviderServices) DALLocator.getDataManager();
76
		if (dataman != null && !dataman.getStoreProviders().contains(NAME)) {
77
			dataman.registerStoreProvider(NAME,
78
					NetCDFProvider.class, NetCDFDataParameters.class);
79
		}
80
		
81
		if(DALFileLocator.getFilesystemServerExplorerManager() != null)
82
			DALFileLocator.getFilesystemServerExplorerManager().registerProvider(
83
					NAME, DESCRIPTION,
84
					NetCDFFilesystemServerExplorer.class);
85
		
86
		dataman.registerStoreFactory(NAME, DefaultStoreFactory.class);
87
	}
88
	
89
	/**
90
	 * Returns true if the extension is supported and false if doesn't
91
	 * @param ext
92
	 * @return
93
	 */
94
	public static boolean isExtensionSupported(String ext) {
95
		for (int i = 0; i < formatList.length; i++) {
96
			if(formatList[i].compareTo(ext) == 0)
97
				return true;
98
		}
99
		return false;
100
	}
101
	
102
	/**
103
	 * Constructor. Abre el dataset.
104
	 * @param proj Proyecci?n
105
	 * @param fName Nombre del fichero
106
	 * @throws NotSupportedExtensionException
107
	 */
108
	public NetCDFProvider(String params) throws NotSupportedExtensionException {
109
		super(params);
110
		if(params instanceof String) {
111
			NetCDFDataParameters p = new NetCDFDataParameters();
112
			p.setURI((String)params);
113
			super.init(p, null, ToolsLocator.getDynObjectManager()
114
					.createDynObject(
115
							MetadataLocator.getMetadataManager().getDefinition(
116
									DataStore.METADATA_DEFINITION_NAME)));
117
			init(p, null);
118
		}
119
	}
120
	
121
	public NetCDFProvider (NetCDFDataParameters params,
122
			AbstractRasterDataStore storeServices) throws NotSupportedExtensionException {
123
		super(params, storeServices, ToolsLocator.getDynObjectManager()
124
				.createDynObject(
125
						MetadataLocator.getMetadataManager().getDefinition(
126
								DataStore.METADATA_DEFINITION_NAME)));
127
		init(params, storeServices);
128
	}
129

  
130
	/**
131
	 * Crea las referencias al fichero y carga
132
	 * las estructuras con la informaci?n y los metadatos.
133
	 * @param proj Proyecci?n
134
	 * @param param Parametros de carga
135
	 * @throws NotSupportedExtensionException
136
	 */
137
	public void init (AbstractRasterDataParameters params,
138
			DataStoreProviderServices storeServices) throws NotSupportedExtensionException {
139
		//TODO:
140
		
141
		if(((RasterFileStoreParameters)params).getFile().exists()) {
142
			setParam(params);
143
			colorTable = null;
144
			noData = 0;
145
			wktProjection = null;
146
			//CrsWkt crs = new CrsWkt(wktProjection);
147
			//IProjection proj = CRSFactory.getCRS("EPSG:23030");
148
			noDataEnabled = true;
149
			ownTransformation = null;
150
			externalTransformation = (AffineTransform)ownTransformation.clone();
151
			load();
152
		} else
153
			setParam(params);
154
		bandCount = 0;
155
		setDataType(null);
156
		super.init();
157

  
158
		try {
159
			loadFromRmf(getRmfBlocksManager());
160
		} catch (ParsingException e) {
161
			//No lee desde rmf
162
		}
163
	}
164
	
165
	/*
166
	 * (non-Javadoc)
167
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#load()
168
	 */
169
	public RasterProvider load() {
170
		return this;
171
	}
172
	
173
	/*
174
	 * (non-Javadoc)
175
	 * @see org.gvsig.raster.impl.provider.RasterProvider#isOpen()
176
	 */
177
	public boolean isOpen() {
178
		return open;
179
	}
180

  
181
	/*
182
	 * (non-Javadoc)
183
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#close()
184
	 */
185
	public void close() {
186
		//TODO:
187
	}
188

  
189
	/*
190
	 * (non-Javadoc)
191
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#translateFileName(java.lang.String)
192
	 */
193
	public String translateFileName(String fileName) {
194
		return fileName;
195
	}
196

  
197
	/**
198
	 * Asigna el extent de la vista actual. existe un fichero .rmf debemos hacer una transformaci?n
199
	 * de la vista asignada ya que la petici?n viene en coordenadas del fichero .rmf y la vista (v)
200
	 * ha de estar en coordenadas del fichero.
201
	 */
202
	public void setView(Extent e) {
203
		viewRequest = new ExtentImpl(e);
204
	}
205

  
206
	/*
207
	 * (non-Javadoc)
208
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getView()
209
	 */
210
	public Extent getView() {
211
		return viewRequest;
212
	}
213

  
214
	/*
215
	 * (non-Javadoc)
216
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWidth()
217
	 */
218
	public double getWidth() {
219
		//TODO:
220
		return 0;
221
	}
222

  
223
	/*
224
	 * (non-Javadoc)
225
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getHeight()
226
	 */
227
	public double getHeight() {
228
		//TODO:
229
		return 0;
230
	}
231

  
232
	/**
233
	 * Read a line from the file
234
	 * @param line
235
	 * @param band
236
	 * @return
237
	 * @throws InvalidSetViewException
238
	 * @throws FileNotOpenException
239
	 * @throws RasterDriverException
240
	 * @Deprecated This operation is deprecated because is not useful and in the future
241
	 * it will not be maintained. The abstract operation has dissapear
242
	 */
243
	public Object readCompleteLine(int line, int band)throws InvalidSetViewException, FileNotOpenException, RasterDriverException {
244
		if(line > this.getHeight() || band > this.getBandCount())
245
			throw new InvalidSetViewException("Request out of grid");
246

  
247
		//TODO:
248
		return null;
249
	}
250

  
251
	/*
252
	 *  (non-Javadoc)
253
	 * @see org.gvsig.raster.dataset.RasterDataset#readBlock(int, int)
254
	 */
255
	public Object readBlock(int pos, int blockHeight)
256
		throws InvalidSetViewException, FileNotOpenException, RasterDriverException, ProcessInterruptedException {
257
		if(pos < 0)
258
			throw new InvalidSetViewException("Request out of grid");
259

  
260
		if((pos + blockHeight) > getHeight())
261
			blockHeight = Math.abs(((int)getHeight()) - pos);
262
		
263
		//TODO:
264
		return null;
265
	}
266

  
267
	/*
268
	 * (non-Javadoc)
269
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getData(int, int, int)
270
	 */
271
	public Object getData(int x, int y, int band)throws InvalidSetViewException, FileNotOpenException, RasterDriverException {
272
		if(x < 0 || y < 0 || x >= getWidth() || y >= getHeight())
273
			throw new InvalidSetViewException("Request out of grid");
274
		
275
		//TODO
276
		return null;
277
	}
278

  
279
	/*
280
	 * (non-Javadoc)
281
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.raster.cache.tile.provider.TileListener)
282
	 */
283
	public void getWindow(Extent ex, int bufWidth, int bufHeight, 
284
			BandList bandList, TileListener listener) throws ProcessInterruptedException, RasterDriverException {
285
		//TODO
286
	}
287

  
288
	/*
289
	 * (non-Javadoc)
290
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(org.gvsig.fmap.dal.coverage.datastruct.Extent, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer)
291
	 */
292
	public Buffer getWindow(Extent ex, BandList bandList, Buffer rasterBuf) 
293
		throws ProcessInterruptedException, RasterDriverException {
294
		//TODO
295

  
296
		return rasterBuf;
297
	}
298

  
299
	/*
300
	 * (non-Javadoc)
301
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer, boolean)
302
	 */
303
	public Buffer getWindow(double ulx, double uly, double w, double h, 
304
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent) throws ProcessInterruptedException, RasterDriverException {
305
		//TODO
306

  
307
		return rasterBuf;
308
	}
309

  
310
	/*
311
	 * (non-Javadoc)
312
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer, boolean)
313
	 */
314
	public Buffer getWindow(Extent extent, 
315
			int bufWidth, int bufHeight, BandList bandList, Buffer rasterBuf, boolean adjustToExtent) throws ProcessInterruptedException, RasterDriverException {
316
		//TODO
317
		
318
		return rasterBuf;
319
	}
320

  
321
	/*
322
	 * (non-Javadoc)
323
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(int, int, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer)
324
	 */
325
	public Buffer getWindow(int x, int y, int w, int h, 
326
			BandList bandList, Buffer rasterBuf) throws ProcessInterruptedException, RasterDriverException {
327
		//TODO
328
		
329
		return rasterBuf;
330
	}
331

  
332
	/*
333
	 * (non-Javadoc)
334
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(int, int, int, int, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer)
335
	 */
336
	public Buffer getWindow(int x, int y, int w, int h, 
337
			int bufWidth, int bufHeight, BandList bandList, Buffer rasterBuf) throws ProcessInterruptedException, RasterDriverException {
338
		//TODO
339
		
340
		return rasterBuf;
341
	}
342

  
343
	/*
344
	 * (non-Javadoc)
345
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getBlockSize()
346
	 */
347
	public int getBlockSize(){
348
		//TODO
349
		
350
		return 0;
351
	}
352

  
353
	/*
354
	 * (non-Javadoc)
355
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getMetadata()
356
	 */
357
	public DataStoreMetadata getMetadata() {
358
		//TODO
359
		
360
		return null;
361
	}
362

  
363
	/*
364
	 * (non-Javadoc)
365
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getColorInterpretation()
366
	 */
367
	public DataStoreColorInterpretation getColorInterpretation(){
368
		//TODO
369
		
370
		return null;
371
	}
372

  
373
	/*
374
	 * (non-Javadoc)
375
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#setColorInterpretation(org.gvsig.raster.impl.store.properties.DataStoreColorInterpretation)
376
	 */
377
	public void setColorInterpretation(DataStoreColorInterpretation colorInterpretation){
378
		//TODO
379
	}
380

  
381
	/*
382
	 * (non-Javadoc)
383
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getTransparency()
384
	 */
385
	public DataStoreTransparency getTransparency() {
386
		//TODO
387
		
388
		return null;
389
	}
390

  
391
	/*
392
	 * (non-Javadoc)
393
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#isGeoreferenced()
394
	 */
395
	public boolean isGeoreferenced() {
396
		//TODO
397
		
398
		return false;
399
	}
400

  
401
	/**
402
	 * Informa de si el driver ha supersampleado en el ?ltimo dibujado. Es el driver el que colocar?
403
	 * el valor de esta variable cada vez que dibuja.
404
	 * @return true si se ha supersampleado y false si no se ha hecho.
405
	 */
406
	public boolean isSupersampling() {
407
		//TODO
408
		
409
		return false;
410
	}
411

  
412
	/*
413
	 * (non-Javadoc)
414
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#setAffineTransform(java.awt.geom.AffineTransform)
415
	 */
416
	public void setAffineTransform(AffineTransform t){
417
		super.setAffineTransform(t);
418
	}
419

  
420
	/*
421
	 * (non-Javadoc)
422
	 * @see org.gvsig.raster.impl.provider.RasterProvider#getOverviewCount(int)
423
	 */
424
	public int getOverviewCount(int band) throws BandAccessException, RasterDriverException {
425
		if(band >= getBandCount())
426
			throw new BandAccessException("Wrong band");
427
		//TODO
428
		
429
		return 0;
430
	}
431

  
432
	/*
433
	 * (non-Javadoc)
434
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getOverviewWidth(int, int)
435
	 */
436
	public int getOverviewWidth(int band, int overview) throws BandAccessException, RasterDriverException {
437
		if (band >= getBandCount())
438
			throw new BandAccessException("Wrong band");
439
		//TODO
440
		
441
		return 0;
442
	}
443

  
444
	/*
445
	 * (non-Javadoc)
446
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getOverviewHeight(int, int)
447
	 */
448
	public int getOverviewHeight(int band, int overview) throws BandAccessException, RasterDriverException {
449
		if (band >= getBandCount())
450
			throw new BandAccessException("Wrong band");
451
		//TODO
452
		
453
		return 0;
454
	}
455

  
456
	/*
457
	 * (non-Javadoc)
458
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#overviewsSupport()
459
	 */
460
	public boolean overviewsSupport() {
461
		return true;
462
	}
463

  
464
	/*
465
	 * (non-Javadoc)
466
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#isReproyectable()
467
	 */
468
	public boolean isReproyectable() {
469
		return true;
470
	}
471

  
472
	/*
473
	 * (non-Javadoc)
474
	 * @see org.gvsig.fmap.dal.spi.DataStoreProvider#getName()
475
	 */
476
	public String getName() {
477
		return NAME;
478
	}
479
	
480
	/*
481
	 * (non-Javadoc)
482
	 * @see org.gvsig.raster.impl.provider.RasterProvider#setStatus(org.gvsig.raster.impl.provider.RasterProvider)
483
	 */
484
	public void setStatus(RasterProvider provider) {
485
		if(provider instanceof NetCDFProvider) {
486
			//Not implemented yet
487
		}
488
	}
489
	
490
	/*
491
	 * (non-Javadoc)
492
	 * @see org.gvsig.raster.impl.provider.RasterProvider#getTileServer()
493
	 */
494
	public TileServer getTileServer() {
495
		if(tileServer == null)
496
			tileServer = new FileTileServer(this);
497
		return tileServer;
498
	}
499
}
0 500

  
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/src/test/resources/README.txt
1
Put into this folder the resources needed by your test classes.
2

  
3
This folder is added to the Tests classpath, so you can load any resources 
4
through the ClassLoader.
5

  
6
By default, in this folder you can find an example of log4j configuration,
7
prepared to log messages through the console, so logging works when you
8
run your tests classes.
0 9

  
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/src/test/resources/log4j.xml
1
<?xml version="1.0" encoding="ISO-8859-1" ?>
2
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3

  
4
<!-- 
5
Log4J configuration file for unit tests execution.
6
 -->
7
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
8

  
9
	<!-- Appender configuration to show logging messages through the console -->
10
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
11
		<layout class="org.apache.log4j.PatternLayout">
12
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
13
		</layout>
14
	</appender>
15

  
16
	<!-- 
17
	Activate logging messages of DEBUG level of higher only for the
18
	org.gvsig.tools packages.
19
	You can put full classes names or packages instead, to configure
20
	logging for all the classes and subpackages of the package.
21
	-->
22
	<category name="org.gvsig.tools">
23
		<priority value="DEBUG" />
24
	</category>
25
	<category name="org.gvsig.raster">
26
		<priority value="DEBUG" />
27
	</category>
28

  
29
	<!-- 
30
	By default, show only logging messages of INFO level or higher, 
31
	through the previously configured CONSOLE appender. 
32
	-->
33
	<root>
34
		<priority value="INFO" />
35
		<appender-ref ref="CONSOLE" />
36
	</root>
37
</log4j:configuration>
0 38

  
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.raster.tilecache.io.DefaultCacheIOLibrary
org.gvsig.raster.tilecache/tags/org.gvsig.raster.tilecache-2.2.30/org.gvsig.raster.tilecache.io/src/main/java/org/gvsig/raster/tilecache/io/TileDataParametersImpl.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
* MA  02110-1301, USA.
20
*
21
*/
22

  
23
package org.gvsig.raster.tilecache.io;
24

  
25
import java.net.URI;
26

  
27
import org.gvsig.fmap.dal.DataParameters;
28
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters;
29
import org.gvsig.fmap.dal.coverage.store.parameter.TileDataParameters;
30
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
31
import org.gvsig.raster.cache.tile.provider.TileServer;
32
import org.gvsig.raster.impl.store.AbstractRasterDataParameters;
33
import org.gvsig.raster.impl.store.AbstractRasterFileDataParameters;
34
import org.gvsig.tools.ToolsLocator;
35
import org.gvsig.tools.dynobject.DelegatedDynObject;
36
import org.gvsig.tools.dynobject.DynStruct;
37
import org.gvsig.tools.persistence.PersistenceManager;
38

  
39
/**
40
 * Parameters for the <code>TileProvider</code>
41
 * @author Nacho Brodin (nachobrodin@gmail.com)
42
 */
43
public class TileDataParametersImpl extends AbstractRasterFileDataParameters implements TileDataParameters {
44
	public static final String       FIELD_PARAMETERS      = "parameters";
45
	public static final String       FIELD_SECONDLEVEL     = "secondlevel";
46
	public static final String       FIELD_NAME            = "name";
47
	private static final String      FIELD_DELETECACHE     = "deletecache";
48

  
49
	private DelegatedDynObject       delegatedDynObject    = null;
50
	private TileServer               tileServer            = null;
51

  
52
	public TileDataParametersImpl() {
53
		super();
54
		initialize();
55
	}
56

  
57
	protected void initialize() {
58
		this.delegatedDynObject = (DelegatedDynObject) ToolsLocator
59
				.getDynObjectManager().createDynObject(
60
						registerDynClass());
61
	}
62

  
63
	public static DynStruct registerDynClass() {
64
		PersistenceManager manager = ToolsLocator.getPersistenceManager();
65
		DynStruct definition = manager.getDefinition("TileDataParameters_Persistent");
66
		if( definition == null ) {
67
			definition = manager.addDefinition(
68
					TileDataParametersImpl.class,
69
					"TileDataParameters_Persistent",
70
					"TileDataParameters Persistency",
71
					null,
72
					null
73
					);
74
		}
75

  
76
		AbstractRasterDataParameters.registerDynClass(definition);
77

  
78
		definition.addDynFieldObject(FIELD_PARAMETERS)
79
		.setDescription("Provider")
80
		.setClassOfValue(RasterDataParameters.class)
81
		.setMandatory(true);
82

  
83
		definition.addDynFieldBoolean(FIELD_SECONDLEVEL)
84
		.setDescription("SecondLevelProvider")
85
		.setMandatory(false);
86

  
87
		definition.addDynFieldString(FIELD_NAME)
88
		.setDescription("Name")
89
		.setMandatory(false);
90

  
91
		definition.addDynFieldBoolean(FIELD_DELETECACHE)
92
		.setDescription("Flag to delete cache the next request")
93
		.setMandatory(false);
94
		return definition;
95
	}
96

  
97
	/**
98
	 * Sets the <code>DataParameters</code>
99
	 * @param params
100
	 */
101
	public void setDataParameters(DataParameters params) {
102
		this.setDynValue(FIELD_PARAMETERS, params);
103
	}
104

  
105
	public DataParameters getDataParameters() {
106
		return (DataParameters) this.getDynValue(FIELD_PARAMETERS);
107
	}
108

  
109
	/**
110
	 * Sets the <code>TileServer</code>
111
	 * @param tileServer
112
	 */
113
	public void setTileServer(TileServer tileServer) {
114
		this.tileServer = tileServer;
115
	}
116

  
117
	/**
118
	 * Gets the <code>TileServer</code>
119
	 * @return
120
	 */
121
	public TileServer getTileServer() {
122
		return tileServer;
123
	}
124

  
125
	/**
126
	 * Returns true if this provider is for the second level of cach?
127
	 * @return
128
	 */
129
	public boolean isSecondLevelCache() {
130
		Object obj = this.getDynValue(FIELD_SECONDLEVEL);
131
		if(obj != null && obj instanceof Boolean)
132
			return ((Boolean)obj).booleanValue();
133
		return false;
134
	}
135

  
136
	/**
137
	 * Sets the flag to inform to the provider that is a second level provider
138
	 * @param secondLevel
139
	 */
140
	public void setSecondLevelCache(boolean secondLevel) {
141
		this.setDynValue(FIELD_SECONDLEVEL, new Boolean(secondLevel));
142
	}
143

  
144
	/**
145
	 * Gets the name
146
	 * @return
147
	 */
148
	public String getName() {
149
		DataParameters p = getDataParameters();
150
		if(p != null) {
151
			if(p instanceof FilesystemStoreParameters) {
152
				return ((FilesystemStoreParameters)p).getFile().getAbsolutePath();
153
            } else {
154
                return ((RasterDataParameters) p).getURI().getPath();
155
            }
156
		}
157
		return null;
158
	}
159

  
160
	@Override
161
	public URI getURI() {
162
		if(this.getDynValue(FIELD_URI) == null) {
163
			DataParameters p = getDataParameters();
164
			if(p != null) {
165
				if(p instanceof FilesystemStoreParameters) {
166
					return ((FilesystemStoreParameters)p).getFile().toURI();
167
				} else {
168
                    return ((RasterDataParameters)p).getURI();
169
				}
170
			}
171
		}
172
		return (URI) this.getDynValue(FIELD_URI);
173
	}
174

  
175

  
176
	//**********************************************
177

  
178
	public String getDataStoreName() {
179
		return TileProvider.NAME;
180
	}
181

  
182
	public String getDescription() {
183
		return TileProvider.DESCRIPTION;
184
	}
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff