Statistics
| Revision:

gvsig-3d / 2.1 / trunk / org.gvsig.view3d / org.gvsig.view3d.lib / org.gvsig.view3d.lib.impl / src / main / java / org / gvsig / view3d / lib / impl / loader / raster / DefaultRasterLoaderParameters.java @ 773

History | View | Annotate | Download (5.96 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright ? 2007-2017 gvSIG Association
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.view3d.lib.impl.loader.raster;
25

    
26
import org.gvsig.fmap.mapcontext.layers.FLayer;
27
import org.gvsig.tools.ToolsLocator;
28
import org.gvsig.tools.dynobject.DynStruct;
29
import org.gvsig.tools.persistence.PersistenceManager;
30
import org.gvsig.tools.persistence.PersistentState;
31
import org.gvsig.tools.persistence.exception.PersistenceException;
32
import org.gvsig.view3d.lib.api.loader.AbstractLoaderParameters;
33
import org.gvsig.view3d.lib.api.loader.RasterLoaderParameters;
34

    
35
/**
36
 * 
37
 * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
38
 *
39
 */
40
@SuppressWarnings("javadoc")
41
public class DefaultRasterLoaderParameters extends AbstractLoaderParameters implements
42
    RasterLoaderParameters {
43

    
44
    public static final String PARAMETERS_DEFINITION_NAME = "RasterLoaderParameters";
45
    public static final String PARAMETERS_DEFINITION_DESCRIPTION =
46
        "Parameters that defines raster load mode";
47

    
48
    public static final String LEVEL_ZERO_RESOLUTION_FIELD_NAME = "levelZeroResolutionMultiplier";
49
    public static final String MAX_LEVEL_FIELD_NAME = "maxLevel";
50
    public static final String MIN_LEVEL_FIELD_NAME = "minLevel";
51
    public static final String NO_DATA_FIELD_NAME = "noData";
52
    public static final String TILE_SIZE_FIELD_NAME = "tileSize";
53

    
54
    private double levelZerResolution = 1;
55
    private int maxLevel;
56
    private int minLevel;
57
    private double noData = -99999;
58
    private int tileSize = 512;
59

    
60
    /**
61
     * 
62
     */
63
    public DefaultRasterLoaderParameters() {
64

    
65
    }
66

    
67
    /**
68
     * 
69
     * @param layer
70
     * @param definitionName
71
     */
72
    public DefaultRasterLoaderParameters(FLayer layer) {
73
        super(layer);
74
    }
75

    
76
    public double getLevelZeroResolution() {
77
        return this.levelZerResolution;
78
    }
79

    
80
    public void setLevelZeroResolution(double value) {
81
        this.levelZerResolution = value;
82
    }
83

    
84
    public int getMaxLevel() {
85
        return this.maxLevel;
86
    }
87

    
88
    public void setMaxLevel(int level) {
89
        this.maxLevel = level;
90
    }
91

    
92
    public int getMinLevel() {
93
        return this.minLevel;
94
    }
95

    
96
    public void setMinLevel(int level) {
97
        this.minLevel = level;
98
    }
99

    
100
    public int getTileSize() {
101
        return this.tileSize;
102
    }
103

    
104
    public void setTileSize(int size) {
105
        this.tileSize = size;
106
    }
107

    
108
    public double getNoData() {
109
        return this.noData;
110
    }
111

    
112
    public void setNoData(double noData) {
113
        this.noData = noData;
114
    }
115

    
116
    public static void registerPersistenceDefinition() {
117
        PersistenceManager manager = ToolsLocator.getPersistenceManager();
118
        DynStruct definition = manager.getDefinition(PARAMETERS_DEFINITION_NAME);
119
        if (definition == null) {
120
            definition =
121
                manager.addDefinition(DefaultRasterLoaderParameters.class,
122
                    PARAMETERS_DEFINITION_NAME, PARAMETERS_DEFINITION_DESCRIPTION, null, null);
123

    
124
            definition.addDynFieldDouble(LEVEL_ZERO_RESOLUTION_FIELD_NAME).setDefaultFieldValue(1)
125
                .setMandatory(true);
126
            definition.addDynFieldInt(MAX_LEVEL_FIELD_NAME).setDefaultFieldValue(0)
127
                .setMandatory(true);
128
            definition.addDynFieldInt(MIN_LEVEL_FIELD_NAME).setDefaultFieldValue(0)
129
                .setMandatory(true);
130
            definition.addDynFieldInt(TILE_SIZE_FIELD_NAME).setDefaultFieldValue(512)
131
                .setMandatory(true);
132
            definition.addDynFieldDouble(NO_DATA_FIELD_NAME).setDefaultFieldValue(-99999)
133
                .setMandatory(true);
134
            definition.addDynFieldObject(LAYER_FIELD_NAME).setClassOfValue(FLayer.class)
135
                .setMandatory(true);
136
        }
137
    }
138

    
139
    @Override
140
    public String getName() {
141
        return RasterLoaderParameters.NAME;
142
    }
143

    
144
    @Override
145
    public Object clone() throws CloneNotSupportedException {
146

    
147
        RasterLoaderParameters newParameters = new DefaultRasterLoaderParameters();
148
        newParameters.setMaxLevel(this.getMaxLevel());
149
        newParameters.setMinLevel(this.getMinLevel());
150
        newParameters.setLevelZeroResolution(this.getLevelZeroResolution());
151
        newParameters.setNoData(this.getNoData());
152
        newParameters.setTileSize(this.getTileSize());
153
        newParameters.setLayer(this.getLayer());
154
        return newParameters;
155
    }
156

    
157
    @Override
158
    protected void doSaveToState(PersistentState state) throws PersistenceException {
159
        state.set(LEVEL_ZERO_RESOLUTION_FIELD_NAME, this.levelZerResolution);
160
        state.set(MAX_LEVEL_FIELD_NAME, this.maxLevel);
161
        state.set(MIN_LEVEL_FIELD_NAME, this.minLevel);
162
        state.set(TILE_SIZE_FIELD_NAME, this.tileSize);
163
        state.set(NO_DATA_FIELD_NAME, this.noData);
164
    }
165

    
166
    @Override
167
    protected void doLoadFromState(PersistentState state) throws PersistenceException {
168
        this.levelZerResolution = state.getDouble(LEVEL_ZERO_RESOLUTION_FIELD_NAME);
169
        this.maxLevel = state.getInt(MAX_LEVEL_FIELD_NAME);
170
        this.minLevel = state.getInt(MIN_LEVEL_FIELD_NAME);
171
        this.tileSize = state.getInt(TILE_SIZE_FIELD_NAME);
172
        this.noData = state.getDouble(NO_DATA_FIELD_NAME);
173
    }
174
}