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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 114 - (hide 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 mojays 2 package appl.parallel.data.splittable;
2    
3     import java.io.File;
4    
5     import appl.data.DataProxy;
6 alfonx 78 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 mojays 2 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