Statistics
| Revision:

root / branches / gvSIG_WMSv2 / extensions / extWMS / src / com / iver / cit / gvsig / fmap / layers / IFMapWMSDimension.java @ 3703

History | View | Annotate | Download (5.22 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2005 IVER T.I. and Generalitat Valenciana.
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., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41

    
42
/* CVS MESSAGES:
43
*
44
* $Id: IFMapWMSDimension.java 3703 2006-01-20 15:22:46Z jaume $
45
* $Log$
46
* Revision 1.1.2.7  2006-01-20 15:22:46  jaume
47
* *** empty log message ***
48
*
49
* Revision 1.1.2.6  2006/01/19 16:09:30  jaume
50
* *** empty log message ***
51
*
52
* Revision 1.1.2.5  2006/01/10 11:33:31  jaume
53
* Time dimension working against Jet Propulsion Laboratory's WMS server
54
*
55
* Revision 1.1.2.4  2006/01/05 23:15:53  jaume
56
* *** empty log message ***
57
*
58
* Revision 1.1.2.3  2006/01/04 18:09:02  jaume
59
* Time dimension
60
*
61
* Revision 1.1.2.2  2006/01/04 16:49:44  jaume
62
* Time dimensios
63
*
64
* Revision 1.1.2.1  2006/01/03 18:08:40  jaume
65
* *** empty log message ***
66
*
67
*
68
*/
69
/**
70
 * 
71
 */
72
package com.iver.cit.gvsig.fmap.layers;
73

    
74
/**
75
 * 
76
 * @author jaume
77
 *
78
 */
79
public interface IFMapWMSDimension {
80
        public static int SINGLE_VALUE = 0;
81
        public static int MULTIPLE_VALUE = 1;
82
        public static int INTERVAL = 2;
83
    /**
84
     * Return the dimension's name. This value is the value that will be used in
85
     * a GetMap request.
86
     * 
87
     * @return String containing the name of this dimension.
88
     */
89
    public String getName();
90
    /**
91
     * Return the unit used by this dimension.
92
     * @return
93
     */
94
    public String getUnit();
95
    /**
96
     * Returns the unit symbol (i.e. 'm', 's', or 'l' for meters, seconds, or liters respectively) 
97
     * @return
98
     */
99
    public String getUnitSymbol();
100
    
101
    
102
    /**
103
     * This method returns the <b>lowest</b> value of this dimension if this dimension is
104
     * specified as an interval or as a set of values, or the value specified if it
105
     * was a single value. 
106
     * @return String containing the coded value.
107
     */
108
    public String getLowLimit();
109

    
110
    /**
111
     * This method returns the <b>highest</b> value of this dimension if this dimension is
112
     * specified as an interval or as a set of values, or the value specified if it
113
     * was a single value. 
114
     * @return String containing the coded value.
115
     */
116
    public String getHighLimit();
117
    
118
    /**
119
     * This method returns the resolution supported by this dimension. This
120
     * means the step lenght between two consecutive points along the
121
     * dimension's axis. 
122
     * @return String containing the coded value, or null if no value for resolution.
123
     */
124
    public String getResolution();
125
    
126
    /**
127
     * Checks if the value represented as string is a valid value by checking
128
     * if the dimensions supports it. It should be true if one of the following is
129
     * true:
130
     * <p>
131
     * <ol> 
132
     * <li>
133
     *  The dimension <b>supports nearest values</b> and <b>the value is greather
134
     *  or  equal than the low limit</b> and <b>less or equal than the high limit</b>.  
135
     *  </li>
136
     *  <li>
137
     *  The value matches in one of the points defined by the low and high limits, and
138
     *  the resolution value.
139
     *  </li>
140
     * </ol>
141
     * </p>
142
     * @param value
143
     * @return
144
     */
145
    public boolean isValidValue(String value);
146
    
147
    /**
148
     * Return the value of the String passed in the dimension's unit-natural type.
149
     * @param value
150
     * @return
151
     */
152
    public Object valueOf(String value) throws IllegalArgumentException;
153
    
154
    /**
155
     * Returns the value that would be at the position passed as argument.
156
     * @param pos
157
     * @return
158
     * @throws ArrayIndexOutOfBoundsException
159
     */
160
    public String valueAt(int pos) throws ArrayIndexOutOfBoundsException;
161
    
162
    /**
163
     * The amount of positions that this dimension contains.
164
     * @return
165
     */
166
    public int valueCount();
167
    
168
    /**
169
     * Returns the expression describin this WMS Dimension
170
     */
171
    public String getExpression();
172
    
173
    /**
174
     * Sets the expression describing this WMS Dimension
175
     * @throws IllegalArgumentException
176
     */
177
    public void setExpression(String expr) throws IllegalArgumentException;
178
    
179
    /**
180
         * Returns the type of the dimension expression.<br>
181
         * Possible values are:
182
         * <ol>
183
         *         <li>
184
         *                 <b>IFMapWMSDimension.SINGLE_VALUE</b>
185
         *                 <b>IFMapWMSDimension.MULTIPLE_VALUE</b>
186
         *                 <b>IFMapWMSDimension.INTERVAL</b>
187
         *         </li>
188
         * </ol>
189
         * @return int
190
         */
191
    public int getType();
192
}