Statistics
| Revision:

svn-gvsig-desktop / branches / v02_desarrollo / libraries / sld / temp / org.gvsig.sldsupport.lib.impl / src / main / java / org / gvsig / sldsupport / impl / sld1_0_0 / parsing / filteroperator / comparison / IsBetweenComparisonElement.java @ 40799

History | View | Annotate | Download (2.14 KB)

1 40794 jldominguez
package org.gvsig.sldsupport.impl.sld1_0_0.parsing.filteroperator.comparison;
2
3
import java.io.IOException;
4
5
import org.gvsig.sldsupport.exception.SLDReadException;
6 40795 jldominguez
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.ParameterValueElement;
7 40794 jldominguez
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.expression.ExpressionElement;
8
import org.gvsig.sldsupport.impl.util.SLDUtils;
9
import org.gvsig.sldsupport.sld.filter.FilterTags;
10
import org.gvsig.sldsupport.sld.filter.expression.SLDExpression;
11
import org.gvsig.sldsupport.sld.filter.operator.comparison.SLDIsBetweenOperator;
12 40795 jldominguez
import org.gvsig.sldsupport.sld.symbol.misc.SLDParameterValue;
13 40794 jldominguez
import org.kxml2.io.KXmlParser;
14
import org.xmlpull.v1.XmlPullParser;
15
import org.xmlpull.v1.XmlPullParserException;
16
17
public class IsBetweenComparisonElement {
18
19
        public static SLDIsBetweenOperator parse(XmlPullParser parser , String version)
20
                        throws XmlPullParserException, IOException, SLDReadException {
21
22
                parser.require(KXmlParser.START_TAG, null, FilterTags.PROPERTYISBETWEEN);
23
                int tag = 0;
24
25
                SLDIsBetweenOperator resp = new SLDIsBetweenOperator();
26
27 40796 jldominguez
                tag = parser.nextTag();
28 40794 jldominguez
                String name = parser.getName();
29
                SLDExpression expre = null;
30
31
                String txt = null;
32
                while (!(SLDUtils.isStr(name, FilterTags.PROPERTYISBETWEEN)
33
                                && tag == KXmlParser.END_TAG)) {
34
35
                        switch (tag) {
36
                        case KXmlParser.START_TAG:
37
                                if (SLDUtils.isStr(name, FilterTags.LOWER_BOUNDARY)) {
38 40795 jldominguez
                                        SLDParameterValue pv = ParameterValueElement.parse(parser, version);
39
                                        resp.setLowerBoundary(pv.getExpressionList().get(0));
40 40794 jldominguez
                                        break;
41
                                }
42
                                if (SLDUtils.isStr(name, FilterTags.UPPER_BOUNDARY)) {
43 40795 jldominguez
                                        SLDParameterValue pv = ParameterValueElement.parse(parser, version);
44
                                        resp.setUpperBoundary(pv.getExpressionList().get(0));
45 40794 jldominguez
                                        break;
46
                                }
47
                                /*
48
                                 * Not lower or upper, it has to be an expression
49
                                 */
50
                                expre = ExpressionElement.parse(parser, version);
51
                                resp.setExpression(expre);
52
53
                                break;
54
                        case KXmlParser.END_TAG:
55
                                break;
56
                        case KXmlParser.TEXT:
57
                                break;
58
                        }
59 40795 jldominguez
                        tag = parser.getEventType();
60 40796 jldominguez
                        name = parser.getName();
61 40794 jldominguez
                }
62
63 40796 jldominguez
                parser.nextTag();
64 40794 jldominguez
                return resp;
65
        }
66
}