Statistics
| Revision:

gvsig-raster / org.gvsig.raster / branches / org.gvsig.raster.2.4 / org.gvsig.raster / org.gvsig.fmap.dal.raster / org.gvsig.fmap.dal.raster.api / src / main / java / org / gvsig / fmap / dal / raster / api / RasterStore.java @ 6488

History | View | Annotate | Download (4.14 KB)

1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2016 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.fmap.dal.raster.api;
24

    
25
import org.gvsig.fmap.dal.DataStore;
26
import org.gvsig.fmap.dal.DataStoreParameters;
27
import org.gvsig.fmap.dal.exception.DataException;
28
import org.gvsig.fmap.geom.primitive.Envelope;
29
import org.gvsig.raster.lib.buffer.api.BandInfo;
30
import org.gvsig.tools.dynobject.DynObject;
31
import org.gvsig.tools.lang.Cloneable;
32

    
33
/**
34
 * Store for rasters
35
 * @author dmartinezizquierdo
36
 *
37
 */
38
public interface RasterStore extends DataStore, Cloneable{
39

    
40
    /**
41
     * May provide a dynamic method to get the legend
42
     */
43
    final public static String DYNMETHOD_GETLEGEND_NAME = "getLegend";
44

    
45
    /**
46
     * May provide a dynamic method to get the Color Interpretation
47
     */
48
    final public static String DYNMETHOD_GETCOLORINTERPRETATION_NAME = "getColorInterpretation";
49

    
50
    /**
51
     * May provide a dynamic method to get the Color Table
52
     */
53
    final public static String DYNMETHOD_GETCOLORTABLE_NAME = "getColorTable";
54
    /**
55
     * Returns this store's parameters.
56
     *
57
     * @return
58
     *         {@link DataStoreParameters} containing this store's parameters
59
     */
60
    public DataStoreParameters getParameters();
61

    
62
    /**
63
     * Returns all available data in the store
64
     * @return RasterSet
65
     * @throws DataException
66
     */
67
    RasterSet getRasterSet() throws DataException;
68

    
69
    /**
70
     * Returns a subset of data taking into account the properties and
71
     * restrictions of the RasterQuery.
72
     * @param rasterQuery
73
     * @param RasterQuery
74
     * @return RasterSet
75
     * @throws DataException
76
     */
77
    RasterSet getRasterSet(RasterQuery rasterQuery) throws DataException;
78

    
79
    /**
80
     * Returns a new {@link RasterQuery} associated to this store.
81
     * @return RasterQuery
82
     */
83
    RasterQuery createRasterQuery();
84

    
85
    /**
86
     * Returns the envelope associated to this store buffer
87
     * @return Envelope
88
     * @throws DataException
89
     */
90
    Envelope getEnvelope() throws DataException;
91

    
92
    /**
93
     * Creates a {@link BandQuery} from band received as parameter.
94
     *
95
     * @param band
96
     *            Band to create BandQuery
97
     * @return BandQuery
98
     */
99
    public BandQuery createBandQuery(int band);
100

    
101
    /**
102
     * Gets information about the specified band. If band does not have
103
     * information, it will return <code>null</code>
104
     *
105
     * @param band
106
     *            The specified band
107
     * @return Returns information about specified band.
108
     */
109
    public BandInfo getBandInfo(int band);
110

    
111
    /**
112
     * Gets {@link BandDescriptor} of band received as parameter. If band does
113
     * not have {@link BandAttributeDescriptor}, this method will return an
114
     * empty {@link BandDescriptor}.
115
     *
116
     * @param band
117
     *            Band to get its {@link BandDescriptor}
118
     * @return BandDescriptor
119
     */
120
    public BandDescriptor getBandDescriptor(int band);
121

    
122
    /**
123
     * Gets number of total bands
124
     *
125
     * @return Number of bands
126
     */
127
    public int getBands();
128

    
129
    /**
130
     * @param providerName
131
     * @param parameters
132
     * @throws DataException
133
     */
134
    // OpenRasterStoreParameters parameters
135
    public void useCache(String providerName, DynObject parameters) throws DataException;
136

    
137
    /**
138
     * @return
139
     */
140
    public RasterCache getCache();
141

    
142
}