From 771fc98e19ad47e0d96222e8965e47149b212eb5 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Tue, 28 Mar 2023 11:35:44 +0200 Subject: [PATCH] Added RESOLVE_AS parameter --- .../query/GeoportalResolverQueryString.java | 12 ++++- .../GeoportalResolverQueryStringBuilder.java | 51 +++++++++++++++++++ src/test/java/UriResolverManagerTest.java | 7 ++- 3 files changed, 67 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryString.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryString.java index b26c023..45d1040 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryString.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryString.java @@ -12,6 +12,7 @@ public class GeoportalResolverQueryString { private final String itemType; private String itemId; private String gcubeScope; + private String resolveAs; /** * Instantiates a new geoportal resolver query string. @@ -22,6 +23,7 @@ public class GeoportalResolverQueryString { this.itemType = builder.getItemType(); this.itemId = builder.getItemId(); this.gcubeScope = builder.getGcubeScope(); + this.resolveAs = builder.getResolveAs() != null ? builder.getResolveAs().getParamValue() : null; } @@ -53,10 +55,14 @@ public class GeoportalResolverQueryString { } /** - * To string. + * Gets the resolver as. * - * @return the string + * @return the resolver as */ + public String getResolveAs() { + return resolveAs; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -66,6 +72,8 @@ public class GeoportalResolverQueryString { builder.append(itemId); builder.append(", gcubeScope="); builder.append(gcubeScope); + builder.append(", resolveAs="); + builder.append(resolveAs); builder.append("]"); return builder.toString(); } diff --git a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryStringBuilder.java b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryStringBuilder.java index f549986..4177c30 100644 --- a/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryStringBuilder.java +++ b/src/main/java/org/gcube/portlets/user/uriresolvermanager/resolvers/query/GeoportalResolverQueryStringBuilder.java @@ -22,10 +22,43 @@ public final class GeoportalResolverQueryStringBuilder { public static final String ITEM_TYPE_PARAMETER = "item_type"; public static final String ITEM_ID_PARAMETER = "item_id"; public static final String GCUBE_SCOPE_PARAMETER = "gcube_scope"; + public static final String RESOLVE_AS_PARAMETER = "res"; private String itemType; private String itemId; private String gcubeScope; + private RESOLVE_AS resolveAs; + + /** + * The Enum RESOLVE_AS_PARAMETER. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * Mar 28, 2023 + */ + public static enum RESOLVE_AS { + PUBLIC("public"), PRIVATE("private"); + + String paramValue; + + /** + * Instantiates a new resolve as. + * + * @param paramValue the param value + */ + RESOLVE_AS(String paramValue) { + this.paramValue = paramValue; + } + + /** + * Gets the param value. + * + * @return the param value + */ + public String getParamValue() { + return paramValue; + } + } /** * Instantiates a new geoportal resolver query string builder. @@ -49,6 +82,17 @@ public final class GeoportalResolverQueryStringBuilder { return this; } + /** + * Resolver as. + * + * @param resolveAs the resolve as + * @return the geoportal resolver query string builder + */ + public GeoportalResolverQueryStringBuilder resolverAs(RESOLVE_AS resolveAs) { + this.resolveAs = resolveAs; + return this; + } + /** * Gets the item type. * @@ -76,6 +120,10 @@ public final class GeoportalResolverQueryStringBuilder { return gcubeScope; } + public RESOLVE_AS getResolveAs() { + return resolveAs; + } + /** * Builds the query parameters. * @@ -101,6 +149,9 @@ public final class GeoportalResolverQueryStringBuilder { query.put(ITEM_TYPE_PARAMETER, crQS.getItemType()); query.put(ITEM_ID_PARAMETER, crQS.getItemId()); query.put(GCUBE_SCOPE_PARAMETER, crQS.getGcubeScope()); + if (crQS.getResolveAs() != null) { + query.put(RESOLVE_AS_PARAMETER, crQS.getResolveAs()); + } return query; diff --git a/src/test/java/UriResolverManagerTest.java b/src/test/java/UriResolverManagerTest.java index cd7f723..e1f1a63 100644 --- a/src/test/java/UriResolverManagerTest.java +++ b/src/test/java/UriResolverManagerTest.java @@ -10,6 +10,8 @@ import org.gcube.portlets.user.uriresolvermanager.exception.IllegalArgumentExcep import org.gcube.portlets.user.uriresolvermanager.exception.UriResolverMapException; import org.gcube.portlets.user.uriresolvermanager.resolvers.query.CatalogueResolverQueryStringBuilder; import org.gcube.portlets.user.uriresolvermanager.resolvers.query.GeoportalResolverQueryStringBuilder; +import org.gcube.portlets.user.uriresolvermanager.resolvers.query.GeoportalResolverQueryStringBuilder.RESOLVE_AS; +import org.junit.Test; /** * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it @@ -144,13 +146,16 @@ public class UriResolverManagerTest { // params.put(GeoportalResolverQueryStringBuilder.GCUBE_SCOPE_PARAMETER, gcubeScope); // params.put(GeoportalResolverQueryStringBuilder.ITEM_ID_PARAMETER, itemId); // params.put(GeoportalResolverQueryStringBuilder.ITEM_TYPE_PARAMETER, itemType); +// params.put(GeoportalResolverQueryStringBuilder.RESOLVE_AS_PARAMETER, GeoportalResolverQueryStringBuilder.RESOLVE_AS.PUBLIC.getParamValue()); //Method 2 GeoportalResolverQueryStringBuilder builder = new GeoportalResolverQueryStringBuilder(itemType,itemId); builder.scope(gcubeScope); + builder.resolverAs(RESOLVE_AS.PUBLIC); + //builder.resolverAs(RESOLVE_AS.PRIVATE); Map params = builder.buildQueryParameters(); - String shortLink = resolver.getLink(params, false); + String shortLink = resolver.getLink(params, true); System.out.println(shortLink); } catch (UriResolverMapException e) { e.printStackTrace();