From f55cb1cbccdf715cbb4211cdfb6cb77c8ac27123 Mon Sep 17 00:00:00 2001 From: Daniele Romagnoli Date: Fri, 19 Jun 2015 18:09:00 +0200 Subject: [PATCH] Issue #151: adding support for nativeCoverageName element of the coverage encoding --- .../geoserver/rest/decoder/RESTCoverage.java | 11 ++++-- .../encoder/coverage/GSCoverageEncoder.java | 34 +++++++++++++++++++ .../coverage/GSCoverageEncoderTest.java | 9 ++++- 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/src/main/java/it/geosolutions/geoserver/rest/decoder/RESTCoverage.java b/src/main/java/it/geosolutions/geoserver/rest/decoder/RESTCoverage.java index 52b5083..19231fc 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/decoder/RESTCoverage.java +++ b/src/main/java/it/geosolutions/geoserver/rest/decoder/RESTCoverage.java @@ -171,9 +171,9 @@ public class RESTCoverage extends RESTResource { // return rootElem.getChildText("name"); // } -// public String getNativeName() { -// return rootElem.getChildText("nativeName"); -// } + public String getNativeCoverageName() { + return rootElem.getChildText("nativeCoverageName"); + } public String getNativeFormat() { return rootElem.getChildText("nativeFormat"); @@ -282,6 +282,11 @@ public class RESTCoverage extends RESTResource { builder.append(getNativeName()); builder.append(", "); } + if (getNativeCoverageName() != null) { + builder.append("getNativeCoverageName()="); + builder.append(getNativeCoverageName()); + builder.append(", "); + } if (getAbstract() != null) { builder.append("getAbstract()="); builder.append(getAbstract()); diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java index e5077fd..ac3b360 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java @@ -41,6 +41,8 @@ import it.geosolutions.geoserver.rest.encoder.utils.ElementUtils; */ public class GSCoverageEncoder extends GSResourceEncoder { + public final static String NATIVECOVERAGENAME = "nativeCoverageName"; + public final static String DIMENSIONS = "dimensions"; final private Element dimensionsEncoder = new Element(DIMENSIONS); @@ -106,4 +108,36 @@ public class GSCoverageEncoder extends GSResourceEncoder { return (dimensionsEncoder.removeContent(GSCoverageDimensionEncoder .getFilterByContent(coverageDimensionName))).size() == 0 ? false : true; } + + /** + * Add the 'nativeCoverageName' node with a text value from 'name' + * + * + */ + public void addNativeCoverageName(final String nativeCoverageName) { + add(NATIVECOVERAGENAME, nativeCoverageName); + } + + /** + * Set the 'nativeCoverageName' node with a text value from 'name' + * + * + */ + public void setNativeCoverageName(final String nativeCoverageName) { + set(NATIVECOVERAGENAME, nativeCoverageName); + } + + /** + * Get the nativeCoverageName + * + * @return + */ + public String getNativeCoverageName() { + final Element nativeCoverageNameNode = ElementUtils.contains(getRoot(), NATIVECOVERAGENAME, 1); + if (nativeCoverageNameNode != null) + return nativeCoverageNameNode.getText(); + else + return null; + } + } 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 bb52927..4c1e30d 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 @@ -19,6 +19,8 @@ */ package it.geosolutions.geoserver.rest.encoder.coverage; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder.ProjectionPolicy; import it.geosolutions.geoserver.rest.encoder.dimensions.GSCoverageDimensionEncoder; @@ -129,9 +131,14 @@ public class GSCoverageEncoderTest extends TestCase { "dobson units³", "REAL_32BITS"); encoder.addCoverageDimensionInfo(gsCoverageDimensionEncoder); - if (LOGGER.isInfoEnabled()) + encoder.setNativeCoverageName("Sample native name"); + if (LOGGER.isInfoEnabled()) LOGGER.info(encoder.toString()); + Element nativeCoverageName = ElementUtils.contains(encoder.getRoot(), GSCoverageEncoder.NATIVECOVERAGENAME); + assertNotNull(nativeCoverageName); + assertEquals("Sample native name", nativeCoverageName.getText()); + final Element el2=ElementUtils.contains(encoder.getRoot(),GSDimensionInfoEncoder.PRESENTATION); Assert.assertNotNull(el2); LOGGER.info("contains_key:"+el2.toString());