Revision 40799
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