/[xulu]/trunk/src/appl/parallel/data/splittable/SingleGridFactory_GeoTiff.java
ViewVC logotype

Contents of /trunk/src/appl/parallel/data/splittable/SingleGridFactory_GeoTiff.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 114 - (show annotations)
Mon Jul 11 11:31:25 2011 UTC (13 years, 5 months ago) by mojays
File size: 5280 byte(s)
SCHMITZM library updated to current version (2.6-SNAPSHOT)
Added gt-xsd-filter.jar, gt-xsd-gml2.jar, picocontainer.jar and xsd.jar from Geotools 2.6.5
1 package appl.parallel.data.splittable;
2
3 import java.io.File;
4
5 import appl.data.DataProxy;
6 import appl.data.WritableGridLLProxy;
7 import edu.bonn.xulu.appl.XuluRegistry;
8 import edu.bonn.xulu.io.AbstractFactory;
9 import edu.bonn.xulu.io.ExportFactory;
10 import edu.bonn.xulu.io.ImportFactory;
11 import edu.bonn.xulu.plugin.data.grid.SingleGrid;
12 import edu.bonn.xulu.plugin.io.grid.array.WritableGridArrayFactory_GeoTiff;
13
14 /**
15 * Diese Factory importiert und exportiert Instanzen des Datentyps
16 * {@link SingleGrid} aus/in das GeoTiff-Format.
17 * Beim Import liefert die Factory ein auf Standard-Arrays basierendes Raster
18 * ({@link WritableGridArray}).
19 *
20 * @author Dominik Appl
21 * @author <a href="mailto:[email protected]">Martin Schmitz</a> (University of Bonn/Germany)
22 * @version 1.0
23 */
24 public class SingleGridFactory_GeoTiff extends AbstractFactory implements ImportFactory, ExportFactory {
25 private static final WritableGridArrayFactory_GeoTiff GRID_FAC = new WritableGridArrayFactory_GeoTiff();
26 private static final WritableGridArrayFactory_GeoTiff importFac = new WritableGridArrayFactory_GeoTiff();
27
28 ////////////////////////////////////////////////////////////////////////
29 /////////////// Implementierung von ImportFactory //////////////
30 ////////////////////////////////////////////////////////////////////////
31 /**
32 * Liefert den Datentyp, den die Factory erzeugt.
33 * @return immer {@link SingleGrid SingleGrid.class}
34 */
35 public Class getImportType() {
36 return SingleGrid.class;
37 }
38
39 /**
40 * Liefert den Datentyp, den die Factory als Import-Quelle benoetigt.
41 * @return immer {@link File File.class}
42 */
43 public Class getImportSourceType() {
44 return File.class;
45 }
46
47 /**
48 * Importiert eine Instanz von {@link SingleGrid} aus einer Datei im
49 * GeoTiff-Format.
50 * @param input Eingabe-Quelle (muss ein {@link File} sein!)
51 * @param reg Instanz der Xulu-Registry, ueber die eine Factory ermittelt
52 * wird, die eine Standard-Instanz von {@link SingleGrid} erzeugt, in
53 * die das Raster importiert wird
54 * @exception UnsupportedOperationException falls als Eingabe-Quelle keine
55 * Datei angegeben wird
56 */
57 public SingleGrid importObject(Object input, XuluRegistry reg) throws Exception {
58 throw new UnsupportedOperationException("currently this import type is not supported for Proxy Grids. Use the standard data type");
59 // AbstractFactory.checkImportSourceObject(this,input,getImportSourceType(),true);
60 // // Aus Registry die passende Factory fuer SingleGrid suchen
61 // InstantiationFactory instFac = AbstractFactory.getInstantiationFactoryFromRegistry(reg,getImportType(),true);
62 // // Raster importieren und in ein SingleGrid einfuegen
63 // SingleGrid sg = (SingleGrid)instFac.newInstance(false);
64 // //new WritableGridLLProxy(importFac, new FileInputStream((File)input),reg)
65 // ;
66 // // Dateinamen in die Bezeichnung aufnehmen
67 // sg.setDescription(sg.getDescription().concat(" [").concat(((File)input).getName()).concat("]"));
68
69 }
70
71 ////////////////////////////////////////////////////////////////////////
72 /////////////// Implementierung von ExportFactory //////////////
73 ////////////////////////////////////////////////////////////////////////
74 /**
75 * Prueft, ob ein Objekt exportiert werden kann. Dies ist der
76 * Fall, wenn es sich um ein {@link SingleGrid} handelt, das ein
77 * {@link WritableGridLLProxy} in seiner Raster-Eigenschaft besitzt.
78 * @param obj zu pruefendes Objekt
79 */
80 public boolean isExportable(Object obj) {
81 return obj!=null &&
82 obj instanceof SingleGrid &&
83 ((SingleGrid)obj).getGrid() instanceof SplittableLLProxyGrid;
84 }
85
86 /**
87 * Prueft, ob ein Objekttyp exportiert werden kann. Dies ist der
88 * Fall, wenn es sich um {@link SingleGrid} (oder eine Unterklasse)
89 * handelt.
90 * @param c zu pruefender Objekttyp
91 */
92 public boolean isExportable(Class c) {
93 return SingleGrid.class.isAssignableFrom(c);
94 }
95
96 /**
97 * Liefert den Objekt-Typ, den die Factory als Ziel zum Exportieren
98 * benoetigt.
99 * @return immer {@link File File.class}
100 */
101 public Class getExportDestinationType() {
102 return File.class;
103 }
104
105 /**
106 * Exportiert eine Instanz von {@link SingleGrid} in eine GeoTiff-Datei.
107 * @param grid zu exportiertendes Raster (muss ein {@link SingleGrid} sein
108 * @param output Export-Ziel (muss ein {@link File} sein!)
109 * @exception UnsupportedOperationException falls als Export-Ziel keine
110 * Datei angegeben wird
111 * @exception IllegalArgumentException falls es sich bei dem angegeben Raster
112 * nicht um ein {@link SingleGrid} handelt
113 */
114 public void exportObject(Object grid, Object output) throws Exception {
115 AbstractFactory.checkExportDestinationObject(this,output,getExportDestinationType(),true);
116 if ( !isExportable(grid) )
117 throw new IllegalArgumentException(getClass().getName().concat(" can not export instances of ").concat(grid.getClass().getName()));
118 GRID_FAC.exportObject( ((DataProxy)((SingleGrid)grid).getGrid()).getProxiedObject(), (File)output );
119 }
120
121 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26