From: <svn...@os...> - 2012-04-15 23:55:02
|
Author: aaime Date: 2012-04-15 16:54:54 -0700 (Sun, 15 Apr 2012) New Revision: 38666 Modified: trunk/modules/library/main/src/main/java/org/geotools/styling/SLDTransformer.java trunk/modules/library/main/src/test/java/org/geotools/styling/SLDTransformerTest.java Log: [GEOT-4075] Rendering Transforms are not encoded in SLD Modified: trunk/modules/library/main/src/main/java/org/geotools/styling/SLDTransformer.java =================================================================== --- trunk/modules/library/main/src/main/java/org/geotools/styling/SLDTransformer.java 2012-04-15 22:53:28 UTC (rev 38665) +++ trunk/modules/library/main/src/main/java/org/geotools/styling/SLDTransformer.java 2012-04-15 23:54:54 UTC (rev 38666) @@ -993,6 +993,10 @@ if ((fts.featureTypeNames() != null) && (fts.featureTypeNames().size() > 0)) { element("FeatureTypeName", fts.featureTypeNames().iterator().next().toString()); } + + if (fts.getTransformation() != null) { + element("Transformation", fts.getTransformation()); + } String[] sti = fts.getSemanticTypeIdentifiers(); Modified: trunk/modules/library/main/src/test/java/org/geotools/styling/SLDTransformerTest.java =================================================================== --- trunk/modules/library/main/src/test/java/org/geotools/styling/SLDTransformerTest.java 2012-04-15 22:53:28 UTC (rev 38665) +++ trunk/modules/library/main/src/test/java/org/geotools/styling/SLDTransformerTest.java 2012-04-15 23:54:54 UTC (rev 38666) @@ -27,6 +27,7 @@ import java.awt.Color; import java.io.IOException; import java.io.StringReader; +import java.io.StringWriter; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -997,4 +998,60 @@ // compare assertEquals("Perpendicular offset of LineSymbolizer has not been correctly ex- and reimported",ls.getPerpendicularOffset(),copy.getPerpendicularOffset()); } + + + /** + * Make sure the FeatureTypeStyle Transformation element survives a SLD to Style to SLD round + * trip. + * + * @throws Exception if an error occurs + */ + @Test + public void testFeatureTypeStyleTransformation() throws Exception { + + String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<sld:UserStyle xmlns=\"http://www.opengis.net/sld\" " + + " xmlns:sld=\"http://www.opengis.net/sld\" " + + " xmlns:ogc=\"http://www.opengis.net/ogc\" " + + " xmlns:gml=\"http://www.opengis.net/gml\">" + + " <sld:Name>Default Styler</sld:Name>" + + " <sld:Title/>" + + " <sld:FeatureTypeStyle>" + + " <sld:Name>Buffer</sld:Name>" + + " <sld:Transformation>" + + " <ogc:Function name=\"buffer\">" + + " <ogc:PropertyName>the_geom</ogc:PropertyName>" + + " <ogc:Literal>500</ogc:Literal>" + + " </ogc:Function>" + + " </sld:Transformation>" + + " <sld:Rule>" + + " <sld:LineSymbolizer>" + + " <sld:Stroke>" + + " <sld:CssParameter name=\"stroke\">#312624</sld:CssParameter>" + + " <sld:CssParameter name=\"stroke-width\">0.1</sld:CssParameter>" + + " </sld:Stroke>" + " </sld:LineSymbolizer>" + + " <sld:PolygonSymbolizer>" + " <sld:Fill>" + + " <sld:CssParameter name=\"fill\">#f5deb3</sld:CssParameter>" + + " </sld:Fill>" + " </sld:PolygonSymbolizer>" + + " </sld:Rule>" + " </sld:FeatureTypeStyle>" + "</sld:UserStyle>"; + + StringReader reader = new StringReader(xml); + SLDParser sldParser = new SLDParser(sf, reader); + + Style[] styles = sldParser.readXML(); + assertNotNull("parsed xml", styles); + assertTrue("parsed xml into style", styles.length > 0); + + SLDTransformer styleTransform = new SLDTransformer(); + styleTransform.setIndentation(2); + StringWriter writer = new StringWriter(); + styleTransform.transform(styles[0], writer); + String actualXml = writer.toString(); + assertTrue(actualXml.contains("<sld:Transformation>")); + assertTrue(actualXml.contains("<ogc:Function name=\"buffer\">")); + assertTrue(actualXml.contains("<ogc:PropertyName>the_geom</ogc:PropertyName>")); + assertTrue(actualXml.contains("<ogc:Literal>500</ogc:Literal>")); + assertTrue(actualXml.contains("</ogc:Function>")); + assertTrue(actualXml.contains("</sld:Transformation>")); + } } |