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
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
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.ParameterValueElement;
7
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
import org.gvsig.sldsupport.sld.symbol.misc.SLDParameterValue;
13
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
                tag = parser.nextTag();
28
                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
                                        SLDParameterValue pv = ParameterValueElement.parse(parser, version);
39
                                        resp.setLowerBoundary(pv.getExpressionList().get(0));
40
                                        break;
41
                                }
42
                                if (SLDUtils.isStr(name, FilterTags.UPPER_BOUNDARY)) {
43
                                        SLDParameterValue pv = ParameterValueElement.parse(parser, version);
44
                                        resp.setUpperBoundary(pv.getExpressionList().get(0));
45
                                        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
                        tag = parser.getEventType();
60
                        name = parser.getName();
61
                }
62

    
63
                parser.nextTag();
64
                return resp;
65
        }
66
}