From ee61857f6c156a108cfb28d3af69d6c9ad2a711e Mon Sep 17 00:00:00 2001 From: ccancellieri Date: Wed, 14 Sep 2011 01:24:17 +0200 Subject: [PATCH] more fix for defect #16 --- .../encoder/utils/PropertyXMLEncoder.java | 26 ++++++++++--------- .../coverage/GSCoverageEncoderTest.java | 3 ++- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/utils/PropertyXMLEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/utils/PropertyXMLEncoder.java index 8475fcf..9dbcb66 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/utils/PropertyXMLEncoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/encoder/utils/PropertyXMLEncoder.java @@ -56,28 +56,22 @@ public class PropertyXMLEncoder extends XmlElement { public PropertyXMLEncoder(final String rootName) { super(rootName); } - - protected void add(final String key, final String value) { - if (key != null && value != null) { - add(this.getRoot(), key, value); - } - } - protected void set(final String key, final String value) { - set(getRoot(), key, value); + public void set(final String key, final String value) { + if (key != null && value != null) { + set(getRoot(), key, value); + } } private void set(final Element e, final String key, final String value){ if (!key.contains("/")) { - if (key != null && value != null) { Element pp = null; if ((pp = contains(key)) == null) - add(key, value); + add(e,key, value); else { remove(pp); - add(key, value); + add(e,key, value); } - } } else { final int i = key.indexOf("/"); final String childName = key.substring(0, i); @@ -86,11 +80,19 @@ public class PropertyXMLEncoder extends XmlElement { Element child = e.getChild(childName); if (child == null) { child = new Element(childName); + e.addContent(child); + add(child,newkey,value); } set(child, newkey, value); } } + public void add(final String key, final String value) { + if (key != null && value != null) { + add(this.getRoot(), key, value); + } + } + private void add(Element e, String key, String value) { if (!key.contains("/")) { e.addContent(new Element(key).setText(value)); diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java index 11ffb99..54b1b0e 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java @@ -90,7 +90,8 @@ public class GSCoverageEncoderTest extends TestCase { dim2.addPresentation(Presentation.LIST); encoder.addMetadata("elev", dim2); - LOGGER.info(encoder.toString()); + if (LOGGER.isInfoEnabled()) + LOGGER.info(encoder.toString()); final Element el=encoder.contains("metadata"); Assert.assertNotNull(el);