Revision 40799

View differences:

branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.api/src/main/java/org/gvsig/sldsupport/sld/filter/expression/operator/SLDLiteral.java
13 13
	
14 14
	public SLDLiteral() {
15 15
	}
16
	
16

  
17
	public SLDLiteral(String val) {
18
		setValue(val);
19
	}
20

  
17 21
	public String getValue() {
18 22
		return literal;
19 23
	}
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.api/src/main/java/org/gvsig/sldsupport/sld/filter/FilterTags.java
121 121
	public static final String WILDCHAR = "wildChar";
122 122
	public static final String SINGLECHAR = "singleChar";
123 123
	public static final String ESCAPECHAR = "escapeChar";
124
	
125
	public static final String MATCHCASE_ATT = "matchCase";
126
	
127
	
124 128

  
125 129
	public static final String ENVELOPE = "Envelope";
126 130
	public static final String LOWER_CORNER = "lowerCorner";
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.api/src/main/java/org/gvsig/sldsupport/sld/symbol/misc/SLDFill.java
1 1
package org.gvsig.sldsupport.sld.symbol.misc;
2 2

  
3 3
import org.gvsig.sldsupport.sld.filter.expression.SLDExpression;
4
import org.gvsig.sldsupport.sld.filter.expression.operator.SLDLiteral;
4 5
import org.gvsig.sldsupport.sld.graphic.SLDGraphic;
5 6

  
6 7
public class SLDFill {
7 8
	
8 9
	protected SLDGraphic fillGraphic = null;
9
	protected SLDExpression fillExpression = null;
10
	
11
	/*
12
	 * This is the color
13
	 */
14
	protected SLDExpression colorExpression = null;
10 15
	protected SLDExpression opacityExpression = null;
11 16
	
12 17
	public SLDFill() {
18
		/*
19
		 * Defaults
20
		 */
21
		this.setFillColor(new SLDLiteral("#808080"));
22
		this.setOpacity(new SLDLiteral("1.0"));
13 23
	}
14 24
	
15 25
	public SLDGraphic getFillGraphic() {
......
20 30
		fillGraphic = gra;
21 31
	}
22 32
	
23
	public SLDExpression getFill() {
24
		return this.fillExpression;
33
	public SLDExpression getFillColor() {
34
		return this.colorExpression;
25 35
	}
26 36
	
27 37
	public SLDExpression getOpacity() {
28 38
		return this.opacityExpression;
29 39
	}
30 40
	
31
	public void setFill(SLDExpression expr) {
32
		this.fillExpression = expr;
41
	public void setFillColor(SLDExpression expr) {
42
		this.colorExpression = expr;
33 43
	}
34 44
	
35 45
	public void setOpacity(SLDExpression expr) {
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.api/src/main/java/org/gvsig/sldsupport/sld/symbol/misc/SLDStroke.java
4 4
import java.util.List;
5 5

  
6 6
import org.gvsig.sldsupport.sld.filter.expression.SLDExpression;
7
import org.gvsig.sldsupport.sld.filter.expression.operator.SLDLiteral;
7 8
import org.gvsig.sldsupport.sld.graphic.SLDGraphic;
8 9

  
9 10

  
......
17 18
	
18 19
	protected SLDExpression width = null;
19 20
	protected SLDExpression color = null;
21
	
22
	/*
23
	 * 1 is opaque
24
	 * 0.5 is semi-transparent
25
	 * 0 is transparent
26
	 * 
27
	 */
20 28
	protected SLDExpression opacity = null;
21 29
	protected SLDExpression lineJoin = null;
22 30
	protected SLDExpression lineCap = null;
......
42 50
	// ============================================
43 51
	
44 52
	public SLDStroke() {
53
		/*
54
		 * Defaults
55
		 */
45 56
		setStrokeType(STROKE_TYPE_SOLID);
57
		this.setColor(new SLDLiteral("#000000"));
58
		this.setOpacity(new SLDLiteral("1.0"));
59
		this.setWidth(new SLDLiteral("1.0"));
60
		
61
		/*
62
		 * These are valid but not standard defaults
63
		 * (standard does not declare default value)
64
		 */
65
		this.setLineCap(new SLDLiteral("round"));
66
		this.setLineJoin(new SLDLiteral("round"));
67
		
46 68
	}
47 69

  
48 70
	public void setStrokeType(int t) {
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.api/src/main/java/org/gvsig/sldsupport/sld/symbol/misc/SLDGeometry.java
1
package org.gvsig.sldsupport.sld.symbol.misc;
2

  
3
public class SLDGeometry {
4
	
5
	private String propertyName = null;
6
	
7
	public SLDGeometry() {
8
		
9
	}
10
	
11
	public void setPropertyName(String n) {
12
		propertyName = n;
13
	}
14
	
15
	public String getPropertyName() {
16
		return propertyName;
17
	}
18

  
19
}
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.api/src/main/java/org/gvsig/sldsupport/sld/graphic/SLDMark.java
1 1
package org.gvsig.sldsupport.sld.graphic;
2 2

  
3
import org.gvsig.sldsupport.sld.SLDTags;
3 4
import org.gvsig.sldsupport.sld.symbol.misc.SLDFill;
4 5
import org.gvsig.sldsupport.sld.symbol.misc.SLDStroke;
5 6

  
......
29 30
	// =========================================
30 31
	
31 32
	public SLDMark() {
32
		
33
		/*
34
		 * Defaults
35
		 */
36
		markType = MARK_TYPE_WELL_KNOWN_NAME;;
37
		wellKnownName = SLDTags.SQUARE;
38
		fill = new SLDFill();
39
		stroke = new SLDStroke();
33 40
	}
34 41
	
35 42
	public int getMarkType() {
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.api/src/main/java/org/gvsig/sldsupport/sld/graphic/SLDGraphic.java
3 3
import java.util.ArrayList;
4 4
import java.util.List;
5 5

  
6
import org.gvsig.sldsupport.sld.filter.expression.operator.SLDLiteral;
6 7
import org.gvsig.sldsupport.sld.symbol.misc.SLDParameterValue;
7 8

  
8 9
public class SLDGraphic {
......
18 19
	protected SLDDisplacement displacement = null;
19 20
	
20 21
	public SLDGraphic() {
21
		
22
		/*
23
		 * Defaults
24
		 */
25
		opacity = new SLDParameterValue();
26
		opacity.getExpressionList().add(new SLDLiteral("1.0"));
27
		size = new SLDParameterValue();
28
		size.getExpressionList().add(new SLDLiteral("6.0"));
29
		rotation = new SLDParameterValue();
30
		rotation.getExpressionList().add(new SLDLiteral("0.0"));
22 31
	}
23 32
	
33
	public void setDefaultMark() {
34
		graphicStack.clear();
35
		/*
36
		 * Empty constructor gets default values
37
		 */
38
		SLDMark mk = new SLDMark();
39
		graphicStack.add(mk);
40
	}
24 41
	
42
	
25 43
	/**
26 44
	 * Order matters, we use utility interface SLDGraphicStackElement 
27 45
	 * This list is made of SLDMark and SLDExternalGraphic
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.api/src/main/java/org/gvsig/sldsupport/sld/graphic/SLDAnchorPoint.java
1 1
package org.gvsig.sldsupport.sld.graphic;
2 2

  
3
import org.gvsig.sldsupport.sld.filter.expression.operator.SLDLiteral;
3 4
import org.gvsig.sldsupport.sld.symbol.misc.SLDParameterValue;
4 5

  
5 6
public class SLDAnchorPoint {
......
7 8
	protected SLDParameterValue x = null;
8 9
	protected SLDParameterValue y = null;
9 10
	
11
	public SLDAnchorPoint() {
12
		x = new SLDParameterValue();
13
		x.getExpressionList().add(new SLDLiteral("0.5"));
14
		y = new SLDParameterValue();
15
		y.getExpressionList().add(new SLDLiteral("0.5"));
16
	}
17
	
10 18
	public SLDParameterValue getAnchorPointX() {
11 19
		return x;
12 20
	}
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.api/src/main/java/org/gvsig/sldsupport/sld/graphic/SLDDisplacement.java
1 1
package org.gvsig.sldsupport.sld.graphic;
2 2

  
3
import org.gvsig.sldsupport.sld.filter.expression.operator.SLDLiteral;
3 4
import org.gvsig.sldsupport.sld.symbol.misc.SLDParameterValue;
4 5

  
5 6
public class SLDDisplacement {
......
7 8
	protected SLDParameterValue x = null;
8 9
	protected SLDParameterValue y = null;
9 10
	
11
	public SLDDisplacement() {
12
		x = new SLDParameterValue();
13
		x.getExpressionList().add(new SLDLiteral("0.0"));
14
		y = new SLDParameterValue();
15
		y.getExpressionList().add(new SLDLiteral("0.0"));
16
	}
17
	
10 18
	public SLDParameterValue getDisplacementX() {
11 19
		return x;
12 20
	}
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/DefaultSLDSupportManager.java
20 20
import org.gvsig.sldsupport.exception.SLDReadException;
21 21
import org.gvsig.sldsupport.exception.SLDWriteException;
22 22
import org.gvsig.sldsupport.exception.UnsupportedSLDVersionException;
23
import org.gvsig.sldsupport.impl.util.SLDUtils;
23 24
import org.gvsig.sldsupport.reader.SLDReader;
24 25
import org.gvsig.sldsupport.reader.SLDReaderFactory;
25 26
import org.gvsig.sldsupport.sld.SLDObject;
......
27 28
import org.gvsig.sldsupport.writer.SLDWriterFactory;
28 29
import org.slf4j.Logger;
29 30
import org.slf4j.LoggerFactory;
31
import org.xmlpull.v1.XmlPullParserException;
30 32

  
31 33
public class DefaultSLDSupportManager implements SLDSupportManager {
32 34
	
......
181 183
			throw new IOException("Null or non-existing file: "
182 184
					+ ((infile == null) ? "Null" : infile.getAbsolutePath()));
183 185
		}
186
		
187
		
188
		String ve = null;
189
		try {
190
			ve = SLDUtils.detectVersion(infile);
191
		} catch (XmlPullParserException e) {
192
		}
193
		
194
		System.out.println("Version = " + ve);
195
		
184 196
		InputStream instream = null;
185 197
		Iterator<String> iter = versionToReaders.keySet().iterator();
186 198
		String vitem = null;
......
189 201
		SLDReaderFactory fact_item = null;
190 202
		SLDReader ritem = null;
191 203
		SLDObject resp = null;
204
		boolean found = false;
192 205
		while (iter.hasNext()) {
193 206
			vitem = iter.next();
194 207
			sitem = versionToReaders.get(vitem);
195 208
			siter = sitem.iterator();
196 209
			while (siter.hasNext()) {
210
				
211
				found = true; // Used to decide message in exception
197 212
				fact_item = siter.next();
198 213
				ritem = fact_item.create();
199 214
				instream = new FileInputStream(infile);
200 215
				try {
201 216
					resp = ritem.read(instream);
202 217
				} catch (Exception exc) {
203
					logger.info("One of the readers was unable to parse file: "	+ infile.getAbsolutePath());
218
					logger.info("One of the readers was unable to parse file: "	+ infile.getAbsolutePath(), exc);
204 219
				}
205 220
				try { instream.close(); } catch (Exception exc) { }
206 221
				if (resp != null) {
......
208 223
				}
209 224
			}
210 225
		}
211
		throw new SLDReadException("No SLD readers found.");
226
		if (found) {
227
			throw new SLDReadException(	"No available SLD reader was able to parse file: "
228
					+ infile.getAbsolutePath());
229
		} else {
230
			throw new SLDReadException("No SLD readers found.");
231
		}
232
		
212 233
	}
213 234
	
214 235
//	public static String VERSION = "1.0.0";
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/handler/Handler1_0_0.java
89 89
		String v = null;
90 90
		
91 91
		if (name.compareToIgnoreCase(SLDTags.SLD_ROOT) == 0) {
92
			v = parser.getAttributeValue(null, "version");
92
			v = parser.getAttributeValue(null, SLDTags.VERSION_ATTR);
93
			if (v == null) {
94
				throw new SLDReadException(
95
						"Version attribute is missing in " + SLDTags.SLD_ROOT);
96
			}
97
			
93 98
			SLDRoot root = parseRoot(parser, v);
94 99
			tag = parser.getEventType();
95 100
			// Must be end-document
......
106 111
				/*
107 112
				 * This line is out of the SLD standard
108 113
				 */
109
				v = parser.getAttributeValue(null, "version");
114
				v = parser.getAttributeValue(null, SLDTags.VERSION_ATTR);
110 115
				return parseLayer(parser, v);
111 116
			} else {
112 117
				if (name.compareToIgnoreCase(SLDTags.LINESYMBOLIZER) == 0
......
118 123
					/*
119 124
					 * This line is out of the SLD standard
120 125
					 */
121
					v = parser.getAttributeValue(null, "version");
126
					v = parser.getAttributeValue(null, SLDTags.VERSION_ATTR);
122 127
					return parseSymbol(parser, v);
123 128
				}
124 129
			}
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/GraphicFillElement.java
33 33
					resp.setGraphic(gra);
34 34
					break;
35 35
				}
36
				break;
36
				/*
37
				 * Any other entity causes parsing error
38
				 */
39
				throw new SLDReadException(
40
						"Bad SLD file. Unexpected entity in graphic fill: " + name);
37 41
			case KXmlParser.END_TAG:
38 42
				break;
39 43
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/AnchorPointElement.java
38 38
					resp.setAnchorPointY(pv);
39 39
					break;
40 40
				}
41
				break;
41
				/*
42
				 * Any other entity causes parsing error
43
				 */
44
				throw new SLDReadException(
45
						"Bad SLD file. Unexpected entity in anchor point: " + name);
42 46
			case KXmlParser.END_TAG:
43 47
				break;
44 48
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/RemoteOWSElement.java
35 35
				}
36 36
				if (SLDUtils.isStr(name, SLDTags.ONLINE_RESOURCE)) {
37 37
					// xlink:href="http://somesite.com/something.xml"
38
					txt = parser.getAttributeValue("xlink", "href");
38
					txt = parser.getAttributeValue(null, SLDTags.XLINK_HREF);
39
					if (txt == null) {
40
						throw new SLDReadException("URL not found (xlink:href att is missing) in online resource entity");
41
					}
39 42
					resp.setOnlineResource(txt);
40 43
					parser.nextTag();
41 44
					parser.nextTag();
42 45
					break;
43 46
				}
44
				break;
47
				/*
48
				 * Any other entity causes parsing error
49
				 */
50
				throw new SLDReadException(
51
						"Unexpected entity in Remote OWS element: " + name);
45 52
			case KXmlParser.END_TAG:
46 53
				break;
47 54
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/FillElement.java
47 47
					if (SLDUtils.isStr(sp.getName(), SLDTags.FILL_ATTR)) {
48 48
						if (sp.getExpressionList().size() > 0) {
49 49
							// Using first item only
50
							resp.setFill(sp.getExpressionList().get(0));
50
							resp.setFillColor(sp.getExpressionList().get(0));
51 51
						}
52 52
					} else {
53 53
						if (SLDUtils.isStr(sp.getName(), SLDTags.FILLOPACITY_ATTR)) {
......
59 59
					}
60 60
					break;
61 61
				}
62
				break;
62
				/*
63
				 * Any other entity causes parsing error
64
				 */
65
				throw new SLDReadException(
66
						"Bad SLD file. Unexpected entity in fill element: " + name);
63 67
			case KXmlParser.END_TAG:
64 68
				break;
65 69
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/MarkElement.java
38 38
				}
39 39
				if (SLDUtils.isStr(name, SLDTags.ONLINE_RESOURCE)) {
40 40
					// xlink:href="http://somesite.com/something.xml"
41
					txt = parser.getAttributeValue("xlink", "href");
41
					txt = parser.getAttributeValue(null, SLDTags.XLINK_HREF);
42
					if (txt == null) {
43
						throw new SLDReadException("URL not found (xlink:href att is missing) in online resource entity");
44
					}
42 45
					resp.setOnlineResource(txt);
43 46
					resp.setMarkType(SLDMark.MARK_TYPE_ONLINE_RESOURCE);
44 47
					resp.setOnlineResource(txt);
......
80 83
					resp.setStroke(stro);
81 84
					break;
82 85
				}
83
				break;
86
				/*
87
				 * Any other entity causes parsing error
88
				 */
89
				throw new SLDReadException(
90
						"Bad SLD file. Unexpected entity in Mark: " + name);
84 91
			case KXmlParser.END_TAG:
85 92
				break;
86 93
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/GeometryElement.java
1
package org.gvsig.sldsupport.impl.sld1_0_0.parsing;
2

  
3
import java.io.IOException;
4

  
5
import org.gvsig.sldsupport.exception.SLDReadException;
6
import org.gvsig.sldsupport.impl.util.SLDUtils;
7
import org.gvsig.sldsupport.sld.SLDTags;
8
import org.gvsig.sldsupport.sld.filter.expression.operator.SLDPropertyName;
9
import org.gvsig.sldsupport.sld.graphic.SLDGraphic;
10
import org.gvsig.sldsupport.sld.graphic.SLDLegendGraphic;
11
import org.gvsig.sldsupport.sld.symbol.misc.SLDGeometry;
12
import org.kxml2.io.KXmlParser;
13
import org.xmlpull.v1.XmlPullParser;
14
import org.xmlpull.v1.XmlPullParserException;
15

  
16
public class GeometryElement {
17
	
18
	public static SLDGeometry parse(XmlPullParser parser , String version)
19
			throws XmlPullParserException, IOException, SLDReadException {
20
		
21
		parser.require(KXmlParser.START_TAG, null, SLDTags.GEOMETRY);
22
		int tag = 0;
23
		
24
		SLDGeometry resp = new SLDGeometry();
25
		
26
		tag = parser.nextTag();
27
		String name = parser.getName();
28
		String txt = null;
29
		while (!(SLDUtils.isStr(name, SLDTags.GEOMETRY)
30
				&& tag == KXmlParser.END_TAG)) {
31
			
32
			switch (tag) {
33
			case KXmlParser.START_TAG:
34
				if (SLDUtils.isStr(name, SLDTags.PROPERTY_NAME)) {
35
					txt = parser.nextText();
36
					resp.setPropertyName(txt);
37
					parser.nextTag();
38
					break;
39
				}
40
				/*
41
				 * Any other entity causes parsing error
42
				 */
43
				throw new SLDReadException(
44
						"Bad SLD file. Unexpected entity in geometry element: " + name);
45
			case KXmlParser.END_TAG:
46
				break;
47
			case KXmlParser.TEXT:
48
				break;
49
			}
50
			tag = parser.getEventType();
51
			name = parser.getName();
52
		}
53

  
54
		parser.nextTag();
55
		return resp;
56
	}
57
}
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/LegendGraphicElement.java
34 34
					resp.setGraphic(gra);
35 35
					break;
36 36
				}
37
				break;
37
				/*
38
				 * Any other entity causes parsing error
39
				 */
40
				throw new SLDReadException(
41
						"Bad SLD file. Unexpected entity in legend graphic: " + name);
38 42
			case KXmlParser.END_TAG:
39 43
				break;
40 44
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/UserStyleElement.java
68 68
					break;
69 69
				}
70 70

  
71
				break;
71
				/*
72
				 * Any other entity causes parsing error
73
				 */
74
				throw new SLDReadException(
75
						"Bad SLD file. Unexpected entity in user style: " + name);
72 76
			case KXmlParser.END_TAG:
73 77
				break;
74 78
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/FeatureTypeConstraintElement.java
45 45
					resp.setExtent(ext);
46 46
					break;
47 47
				}
48
				break;
48
				/*
49
				 * Any other entity causes parsing error
50
				 */
51
				throw new SLDReadException(
52
						"Bad SLD file. Unexpected entity in featuretype constraints: " + name);
49 53
			case KXmlParser.END_TAG:
50 54
				break;
51 55
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/expression/FunctionElement.java
19 19
		
20 20
		parser.require(KXmlParser.START_TAG, null, FilterTags.FUNCTION);
21 21
		String fname = parser.getAttributeValue(null, SLDTags.NAME_ATTR);
22
		if (fname == null) {
23
			throw new SLDReadException("Attribute 'name' not found in SLD function");
24
		}
22 25
		SLDFunction resp = new SLDFunction();
23 26
		resp.setFunctionName(fname);
24 27

  
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/NamedStyleElement.java
35 35
					parser.nextTag();
36 36
					break;
37 37
				}
38
				break;
38
				/*
39
				 * Any other entity causes parsing error
40
				 */
41
				throw new SLDReadException(
42
						"Bad SLD file. Unexpected entity in named style: " + name);
39 43
			case KXmlParser.END_TAG:
40 44
				break;
41 45
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/GraphicStrokeElement.java
44 44
					resp.setInitialGap(sp);
45 45
					break;
46 46
				}
47
				break;
47
				/*
48
				 * Any other entity causes parsing error
49
				 */
50
				throw new SLDReadException(
51
						"Bad SLD file. Unexpected entity in graphic stroke: " + name);
48 52
			case KXmlParser.END_TAG:
49 53
				break;
50 54
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/filteroperator/comparison/BinaryComparisonOperatorElement.java
5 5
import org.gvsig.sldsupport.exception.SLDReadException;
6 6
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.expression.ExpressionElement;
7 7
import org.gvsig.sldsupport.impl.util.SLDUtils;
8
import org.gvsig.sldsupport.sld.SLDTags;
9
import org.gvsig.sldsupport.sld.filter.FilterTags;
8 10
import org.gvsig.sldsupport.sld.filter.expression.SLDExpression;
9 11
import org.gvsig.sldsupport.sld.filter.operator.comparison.SLDBinaryComparisonOperator;
10 12
import org.kxml2.io.KXmlParser;
......
19 21
		SLDBinaryComparisonOperator resp = new SLDBinaryComparisonOperator();
20 22
		String op_name = parser.getName();
21 23
		
22
		String mcase = parser.getAttributeValue(null, "matchCase");
24
		String mcase = parser.getAttributeValue(null, FilterTags.MATCHCASE_ATT);
23 25
		resp.setIsCaseSensitive(SLDUtils.isStr(mcase, "true"));
24 26
		
25 27
		resp.setComparisonOperator(op_name);
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/filteroperator/comparison/IsLikeComparisonElement.java
17 17
		
18 18
		parser.require(KXmlParser.START_TAG, null, FilterTags.PROPERTYISLIKE);
19 19
		int tag = 0;
20
		
21 20
		SLDIsLikeOperator resp = new SLDIsLikeOperator();
22
		
21
		// -------------------------------------------------------
22
		String att = parser.getAttributeValue(null, FilterTags.WILDCHAR);
23
		if (att == null) {
24
			throw new SLDReadException("Attribute required in IsLike operator: 'wildCard' ");
25
		} else {
26
			resp.setWildCard(att);
27
		}
28
		// -------------------------------------------------------
29
		att = parser.getAttributeValue(null, FilterTags.SINGLECHAR);
30
		if (att == null) {
31
			throw new SLDReadException("Attribute required in IsLike operator: 'singleChar' ");
32
		} else {
33
			resp.setSingleChar(att);
34
		}
35
		// -------------------------------------------------------
36
		att = parser.getAttributeValue(null, FilterTags.ESCAPECHAR);
37
		if (att == null) {
38
			throw new SLDReadException("Attribute required in IsLike operator: 'escapeChar' ");
39
		} else {
40
			resp.setEscapeChar(att);
41
		}
42
		// -------------------------------------------------------
23 43
		tag = parser.nextTag();
24 44
		String name = parser.getName();
25
		
26
		String att = parser.getAttributeValue(null, "wildCard");
27
		resp.setWildCard(att);
28
		att = parser.getAttributeValue(null, "singleChar");
29
		resp.setSingleChar(att);
30
		att = parser.getAttributeValue(null, "escapeChar");
31
		resp.setEscapeChar(att);
32
		
33 45
		String txt = null;
34 46
		while (!(SLDUtils.isStr(name, FilterTags.PROPERTYISLIKE)
35 47
				&& tag == KXmlParser.END_TAG)) {
......
48 60
					parser.nextTag();
49 61
					break;
50 62
				}
51
				break;
63
				
64
				/*
65
				 * Any other entity causes parsing error
66
				 */
67
				throw new SLDReadException("Bad SLD file. Unexpected entity in IsLikeOperator: " + name);
52 68
			case KXmlParser.END_TAG:
53 69
				break;
54 70
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/filteroperator/comparison/IsNullComparisonElement.java
33 33
					parser.nextTag();
34 34
					break;
35 35
				}
36
				break;
36
				/*
37
				 * Any other entity causes parsing error
38
				 */
39
				throw new SLDReadException(
40
						"Bad SLD file. Unexpected entity is IsNullOperator: " + name);
37 41
			case KXmlParser.END_TAG:
38 42
				break;
39 43
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/filteroperator/FilterOperatorElement.java
91 91
			return operator;
92 92
		}
93 93
		// ****************************************************************
94
		throw new SLDReadException("Unexpected entity in operator: " + name);
94
		throw new SLDReadException("Unexpected entity in filter operator: " + name);
95 95
	}
96 96
}
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/filteroperator/spatial/BBoxOperatorElement.java
40 40
					resp.setEnvelope(env.getWKT());
41 41
					break;
42 42
				}
43
				break;
43
				/*
44
				 * Any other entity causes parsing error
45
				 */
46
				throw new SLDReadException(
47
						"Bad SLD file. Unexpected entity in BBox operator: " + name);
44 48
			case KXmlParser.END_TAG:
45 49
				break;
46 50
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/filteroperator/spatial/EnvelopeElement.java
39 39
					parser.nextTag();
40 40
					break;
41 41
				}
42
				break;
42
				
43
				/*
44
				 * Any other entity causes parsing error
45
				 */
46
				throw new SLDReadException(
47
						"Bad SLD file. Unexpected entity in envelope: " + name);
43 48
			case KXmlParser.END_TAG:
44 49
				break;
45 50
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/filteroperator/spatial/BinarySpatialOperatorElement.java
44 44
				/*
45 45
				 * TODO GML geometries not supported, only envelope
46 46
				 */
47
				break;
47
				/*
48
				 * Any other entity causes parsing error
49
				 */
50
				throw new SLDReadException(
51
						"Bad SLD file. Unexpected entity in Binary spatial operator: " + name);
48 52
			case KXmlParser.END_TAG:
49 53
				break;
50 54
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/StrokeElement.java
101 101
					}
102 102
					break;
103 103
				}
104
				break;
104
				/*
105
				 * Any other entity causes parsing error
106
				 */
107
				throw new SLDReadException(
108
						"Bad SLD file. Unexpected entity in stroke: " + name);
105 109
			case KXmlParser.END_TAG:
106 110
				break;
107 111
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/RuleElement.java
2 2

  
3 3
import java.io.IOException;
4 4

  
5
import org.gvsig.fmap.dal.exception.ReadException;
5 6
import org.gvsig.sldsupport.exception.SLDReadException;
6 7
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.symbol.SymbolElement;
7 8
import org.gvsig.sldsupport.impl.util.SLDUtils;
......
77 78
				}
78 79
				// ===================================
79 80
				// ===================================
80
				/*
81
				 * Text, Raster, MappedColor symbols not supported
82
				 */
83 81
				if (SLDUtils.isStr(name, SLDTags.POINTSYMBOL)
84 82
						|| SLDUtils.isStr(name, SLDTags.POINTSYMBOLIZER)
85 83
						|| SLDUtils.isStr(name, SLDTags.LINESYMBOL)
......
91 89
					resp.getSymbols().add(sym);
92 90
					break;
93 91
				}
94

  
95
				break;
92
				/*
93
				 * Text, Raster, MappedColor symbols not supported
94
				 */
95
				if (SLDUtils.isStr(name, SLDTags.TEXTSYMBOL)
96
						|| SLDUtils.isStr(name, SLDTags.TEXTSYMBOLIZER)
97
						|| SLDUtils.isStr(name, SLDTags.RASTERSYMBOL)
98
						|| SLDUtils.isStr(name, SLDTags.RASTERSYMBOLIZER)
99
						|| SLDUtils.isStr(name, SLDTags.MAPPEDCOLORSYMBOL)
100
						) {
101
					throw new SLDReadException("Unsupported symbol: " + name);
102
				}
103
				
104
				/*
105
				 * Any other entity causes parsing error
106
				 */
107
				throw new SLDReadException("Bad SLD file. Unexpected entity in Rule: " + name);
108
				
96 109
			case KXmlParser.END_TAG:
97 110
				break;
98 111
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/ExtentElement.java
39 39
					parser.nextTag();
40 40
					break;
41 41
				}
42
				break;
42
				/*
43
				 * Any other entity causes parsing error
44
				 */
45
				throw new SLDReadException(
46
						"Bad SLD file. Unexpected entity in extent: " + name);
43 47
			case KXmlParser.END_TAG:
44 48
				break;
45 49
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/DisplacementElement.java
38 38
					resp.setDisplacementY(pv);
39 39
					break;
40 40
				}
41
				break;
41
				/*
42
				 * Any other entity causes parsing error
43
				 */
44
				throw new SLDReadException(
45
						"Bad SLD file. Unexpected entity in displacement element: " + name);
42 46
			case KXmlParser.END_TAG:
43 47
				break;
44 48
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/SvgCssParameterElement.java
26 26
		}
27 27
		
28 28
		SLDSvgCssParameter resp = new SLDSvgCssParameter();
29
		String att = parser.getAttributeValue(null, "name");
29
		String att = parser.getAttributeValue(null, SLDTags.NAME_ATTR);
30
		if (att == null) {
31
			throw new SLDReadException("Missing name in Svg/CssParameter");
32
		}
30 33
		resp.setName(att);
31 34
		
32 35
		String txt = SLDUtils.getTextUntilTag(parser);
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/symbol/LineSymbolElement.java
3 3
import java.io.IOException;
4 4

  
5 5
import org.gvsig.sldsupport.exception.SLDReadException;
6
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.GeometryElement;
6 7
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.ParameterValueElement;
7 8
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.StrokeElement;
8 9
import org.gvsig.sldsupport.impl.util.SLDUtils;
9 10
import org.gvsig.sldsupport.sld.SLDTags;
10 11
import org.gvsig.sldsupport.sld.symbol.SLDLineSymbol;
12
import org.gvsig.sldsupport.sld.symbol.misc.SLDGeometry;
11 13
import org.gvsig.sldsupport.sld.symbol.misc.SLDParameterValue;
12 14
import org.gvsig.sldsupport.sld.symbol.misc.SLDStroke;
13 15
import org.kxml2.io.KXmlParser;
......
38 40
			switch (tag) {
39 41
			case KXmlParser.START_TAG:
40 42
				if (SLDUtils.isStr(name, SLDTags.GEOMETRY)) {
41
					txt = parser.nextText();
42
					resp.setGeometryPropertyName(txt);
43
					parser.nextTag();
43
					SLDGeometry geom = GeometryElement.parse(parser, version);
44
					resp.setGeometryPropertyName(geom.getPropertyName());
44 45
					break;
45 46
				}
46 47
				if (SLDUtils.isStr(name, SLDTags.STROKE)) {
......
54 55
					resp.setPerpendicularOffset(pv);
55 56
					break;
56 57
				}
57
				break;
58
				/*
59
				 * Any other entity causes parsing error
60
				 */
61
				throw new SLDReadException(
62
						"Bad SLD file. Unexpected entity in line symbol: " + name);
58 63
			case KXmlParser.END_TAG:
59 64
				break;
60 65
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/symbol/PolygonSymbolElement.java
5 5
import org.gvsig.sldsupport.exception.SLDReadException;
6 6
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.DisplacementElement;
7 7
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.FillElement;
8
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.GeometryElement;
8 9
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.StrokeElement;
9 10
import org.gvsig.sldsupport.impl.util.SLDUtils;
10 11
import org.gvsig.sldsupport.sld.SLDTags;
11 12
import org.gvsig.sldsupport.sld.graphic.SLDDisplacement;
12 13
import org.gvsig.sldsupport.sld.symbol.SLDPolygonSymbol;
13 14
import org.gvsig.sldsupport.sld.symbol.misc.SLDFill;
15
import org.gvsig.sldsupport.sld.symbol.misc.SLDGeometry;
14 16
import org.gvsig.sldsupport.sld.symbol.misc.SLDStroke;
15 17
import org.kxml2.io.KXmlParser;
16 18
import org.xmlpull.v1.XmlPullParser;
......
40 42
			switch (tag) {
41 43
			case KXmlParser.START_TAG:
42 44
				if (SLDUtils.isStr(name, SLDTags.GEOMETRY)) {
43
					txt = parser.nextText();
44
					resp.setGeometryPropertyName(txt);
45
					parser.nextTag();
45
					SLDGeometry geom = GeometryElement.parse(parser, version);
46
					resp.setGeometryPropertyName(geom.getPropertyName());
46 47
					break;
47 48
				}
48 49
				if (SLDUtils.isStr(name, SLDTags.FILL)) {
......
61 62
					resp.setDisplacement(disp);
62 63
					break;
63 64
				}
64
				break;
65
				/*
66
				 * Any other entity causes parsing error
67
				 */
68
				throw new SLDReadException(
69
						"Bad SLD file. Unexpected entity in polygon symbol: " + name);
65 70
			case KXmlParser.END_TAG:
66 71
				break;
67 72
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/symbol/PointSymbolElement.java
3 3
import java.io.IOException;
4 4

  
5 5
import org.gvsig.sldsupport.exception.SLDReadException;
6
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.GeometryElement;
6 7
import org.gvsig.sldsupport.impl.sld1_0_0.parsing.GraphicElement;
7 8
import org.gvsig.sldsupport.impl.util.SLDUtils;
8 9
import org.gvsig.sldsupport.sld.SLDTags;
9 10
import org.gvsig.sldsupport.sld.graphic.SLDGraphic;
10 11
import org.gvsig.sldsupport.sld.symbol.SLDPointSymbol;
12
import org.gvsig.sldsupport.sld.symbol.misc.SLDGeometry;
11 13
import org.kxml2.io.KXmlParser;
12 14
import org.xmlpull.v1.XmlPullParser;
13 15
import org.xmlpull.v1.XmlPullParserException;
......
36 38
			switch (tag) {
37 39
			case KXmlParser.START_TAG:
38 40
				if (SLDUtils.isStr(name, SLDTags.GEOMETRY)) {
39
					txt = parser.nextText();
40
					resp.setGeometryPropertyName(txt);
41
					parser.nextTag();
41
					SLDGeometry geom = GeometryElement.parse(parser, version);
42
					resp.setGeometryPropertyName(geom.getPropertyName());
42 43
					break;
43 44
				}
44 45
				if (SLDUtils.isStr(name, SLDTags.GRAPHIC)) {
......
46 47
					resp.setGraphic(gr);
47 48
					break;
48 49
				}
49
				break;
50
				/*
51
				 * Any other entity causes parsing error
52
				 */
53
				throw new SLDReadException(
54
						"Bad SLD file. Unexpected entity in point symbol: " + name);
50 55
			case KXmlParser.END_TAG:
51 56
				break;
52 57
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/UserLayerElement.java
53 53
					resp.getUserStyles().add(usty);
54 54
					break;
55 55
				}				
56
				break;
56
				/*
57
				 * Any other entity causes parsing error
58
				 */
59
				throw new SLDReadException(
60
						"Bad SLD file. Unexpected entity in user layer: " + name);
57 61
			case KXmlParser.END_TAG:
58 62
				break;
59 63
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/FeatureStyleElement.java
25 25
		String txt = null;
26 26
		int tag = 0;
27 27
		SLDFeatureStyle resp = new SLDFeatureStyle();
28
		txt = parser.getAttributeValue(null, SLDTags.VERSION_ATTR);
29
		resp.setVersion(txt);
30 28
		
29
		if (SLDUtils.isStr(ent_name, SLDTags.FEATURESTYLE)) {
30
			txt = parser.getAttributeValue(null, SLDTags.VERSION_ATTR);
31
			if (txt == null) {
32
				throw new SLDReadException("The 'version' attribute is mandatory in "
33
						 + SLDTags.FEATURESTYLE);
34
			} else {
35
				resp.setVersion(txt);
36
			}
37
		}
38

  
31 39
		tag = parser.nextTag();
32 40
		String name = parser.getName();
33 41
		while (!(SLDUtils.isStr(name, ent_name) && tag == KXmlParser.END_TAG)) {
......
70 78
					resp.getRules().add(rule);
71 79
					break;
72 80
				}				
73
				break;
81
				/*
82
				 * Any other entity causes parsing error
83
				 */
84
				throw new SLDReadException(
85
						"Bad SLD file. Unexpected entity in feature[type] style: " + name);
74 86
			case KXmlParser.END_TAG:
75 87
				break;
76 88
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/GraphicElement.java
67 67
					resp.setDisplacement(di);
68 68
					break;
69 69
				}
70
				break;
70
				/*
71
				 * Any other entity causes parsing error
72
				 */
73
				throw new SLDReadException(
74
						"Bad SLD file. Unexpected entity in graphic: " + name);
71 75
			case KXmlParser.END_TAG:
72 76
				break;
73 77
			case KXmlParser.TEXT:
......
78 82
		}
79 83

  
80 84
		parser.nextTag();
85
		/*
86
		 * Set default mark if no mark/graphic was set
87
		 */
88
		if (resp.getElementStack().size() == 0) {
89
			resp.setDefaultMark();
90
		}
81 91
		return resp;
82 92
	}	
83 93
}
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/LayerFeatureConstraintsElement.java
35 35
					resp.getFeatureTypeConstraints().add(co);
36 36
					break;
37 37
				}
38
				break;
38
				/*
39
				 * Any other entity causes parsing error
40
				 */
41
				throw new SLDReadException(
42
						"Bad SLD file. Unexpected entity in layer feature constraints: " + name);
39 43
			case KXmlParser.END_TAG:
40 44
				break;
41 45
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/ExternalGraphicElement.java
35 35
				}
36 36
				if (SLDUtils.isStr(name, SLDTags.ONLINE_RESOURCE)) {
37 37
					// xlink:href="http://somesite.com/something.xml"
38
					String res = parser.getAttributeValue("xlink", "href");
38
					String res = parser.getAttributeValue(null, SLDTags.XLINK_HREF);
39
					if (res == null) {
40
						throw new SLDReadException("URL not found (xlink:href att is missing) in online resource entity");
41
					}
39 42
					resp.setIsOnline(true);
40 43
					resp.setOnlineResource(res);
41 44
					parser.nextTag();
45
					parser.nextTag();
42 46
					break;
43 47
				}
44 48
				if (SLDUtils.isStr(name, SLDTags.INLINE_CONTENT)) {
......
51 55
					parser.nextTag();
52 56
					break;
53 57
				}
54
				break;
58
				/*
59
				 * Any other entity causes parsing error
60
				 */
61
				throw new SLDReadException(
62
						"Bad SLD file. Unexpected entity in external graphic: " + name);
55 63
			case KXmlParser.END_TAG:
56 64
				break;
57 65
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/sld1_0_0/parsing/NamedLayerElement.java
57 57
					break;
58 58
				}
59 59
				
60
				break;
60
				/*
61
				 * Any other entity causes parsing error
62
				 */
63
				throw new SLDReadException(
64
						"Bad SLD file. Unexpected entity in named layer: " + name);
61 65
			case KXmlParser.END_TAG:
62 66
				break;
63 67
			case KXmlParser.TEXT:
branches/v02_desarrollo/libraries/sld/temp/org.gvsig.sldsupport.lib.impl/src/main/java/org/gvsig/sldsupport/impl/util/SLDUtils.java
1 1
package org.gvsig.sldsupport.impl.util;
2 2

  
3 3
import java.io.File;
4
import java.io.FileInputStream;
4 5
import java.io.FileReader;
5 6
import java.io.IOException;
6 7
import java.util.ArrayList;
7 8
import java.util.List;
8 9

  
9 10
import org.gvsig.sldsupport.exception.SLDReadException;
11
import org.gvsig.sldsupport.impl.parser.ExtendedKXmlParser;
12
import org.gvsig.sldsupport.sld.SLDRoot;
10 13
import org.gvsig.sldsupport.sld.SLDTags;
14
import org.gvsig.sldsupport.sld.layer.SLDLayer;
11 15
import org.kxml2.io.KXmlParser;
12 16
import org.slf4j.Logger;
13 17
import org.slf4j.LoggerFactory;
......
103 107
//		fos.close();
104 108
//	}
105 109
	
106
	public String detectVersion(File f)
110
	public static String detectVersion(File infile)
107 111
			throws XmlPullParserException, IOException, SLDReadException {
108 112
		
109
		XmlPullParser parser = new KXmlParser();
113
		XmlPullParser parser = new ExtendedKXmlParser();
114
		FileInputStream fis = new FileInputStream(infile);
110 115
		// xmlSchemaParser = new XMLSchemaParser();
111
		FileReader fr = new FileReader(f);
112
		parser.setInput(fr);
113
		parser.nextTag();
116
		parser.setInput(fis, "ISO-8859-1");
114 117
		
115
		if ( parser.getEventType() != XmlPullParser.END_DOCUMENT ) {
116

  
117
			String value = parser.getAttributeValue("", SLDTags.VERSION_ATTR);
118
			fr.close();
118
		int tag = parser.getEventType();
119
		if (tag == XmlPullParser.START_DOCUMENT) {
120
			parser.nextTag();
121
		} else {
122
			if (tag != XmlPullParser.START_TAG) {
123
				throw new IOException(
124
						"Misplaced input stream (it's not before opening tag)");
125
			}
126
		}		
127
		String value = parser.getAttributeValue(null, SLDTags.VERSION_ATTR);
128
		fis.close();
129
		if (value == null) {
130
			throw new SLDReadException("Version attribute not found");
131
		} else {
119 132
			return value;
120
		} 
121
		fr.close();
122
		throw new SLDReadException("Unable to get SLD version" +
123
				" in file: " + f.getAbsolutePath());
133
		}
124 134
	}
125 135
	
136
	
137

  
138
	
126 139
	public static String getTextUntilTag(XmlPullParser parser)
127 140
			throws XmlPullParserException, IOException {
128 141
		

Also available in: Unified diff