diff --git a/li.strolch.agent/src/main/java/li/strolch/runtime/query/enums/DefaultEnumHandler.java b/li.strolch.agent/src/main/java/li/strolch/runtime/query/enums/DefaultEnumHandler.java index 7977e662a..dbfe05afd 100644 --- a/li.strolch.agent/src/main/java/li/strolch/runtime/query/enums/DefaultEnumHandler.java +++ b/li.strolch.agent/src/main/java/li/strolch/runtime/query/enums/DefaultEnumHandler.java @@ -44,20 +44,30 @@ public class DefaultEnumHandler extends StrolchComponent implements EnumHandler @Override public StrolchEnum getEnum(Certificate certificate, String name, Locale locale) { + return getEnum(certificate, name, locale, false); + } + + @Override + public StrolchEnum getEnum(Certificate certificate, String name, Locale locale, boolean withoutHidden) { DBC.PRE.assertNotEmpty("Enum name must be given!", name); //$NON-NLS-1$ DBC.PRE.assertNotNull("Locale must be given!", locale); //$NON-NLS-1$ try (StrolchTransaction tx = openTx(certificate, true)) { - return getEnum(tx, name, locale); + return getEnum(tx, name, locale, withoutHidden); } } @Override public StrolchEnum getEnum(StrolchTransaction tx, String name) { - return getEnum(tx, name, tx.getLocale()); + return getEnum(tx, name, tx.getLocale(), false); } - private StrolchEnum getEnum(StrolchTransaction tx, String name, Locale locale) { + @Override + public StrolchEnum getEnum(StrolchTransaction tx, String name, boolean withoutHidden) { + return getEnum(tx, name, tx.getLocale(), withoutHidden); + } + + private StrolchEnum getEnum(StrolchTransaction tx, String name, Locale locale, boolean withoutHidden) { Resource enumeration = tx.getResourceBy(TYPE_ENUMERATION, name, true); ParameterBag enumValuesByLanguage = findParameterBagByLanguage(enumeration, locale); @@ -65,6 +75,8 @@ public class DefaultEnumHandler extends StrolchComponent implements EnumHandler parameters.sort(Comparator.comparing(Parameter::getIndex)); Map values = new LinkedHashMap<>(parameters.size()); for (Parameter param : parameters) { + if (withoutHidden && param.isHidden()) + continue; StringParameter enumParam = (StringParameter) param; values.put(enumParam.getId(), enumParam.getValue()); } diff --git a/li.strolch.agent/src/main/java/li/strolch/runtime/query/enums/EnumHandler.java b/li.strolch.agent/src/main/java/li/strolch/runtime/query/enums/EnumHandler.java index 0eadb8f86..b99f57c98 100644 --- a/li.strolch.agent/src/main/java/li/strolch/runtime/query/enums/EnumHandler.java +++ b/li.strolch.agent/src/main/java/li/strolch/runtime/query/enums/EnumHandler.java @@ -27,5 +27,9 @@ public interface EnumHandler { StrolchEnum getEnum(Certificate certificate, String name, Locale locale); + StrolchEnum getEnum(Certificate certificate, String name, Locale locale, boolean withoutHidden); + StrolchEnum getEnum(StrolchTransaction tx, String name); + + StrolchEnum getEnum(StrolchTransaction tx, String name, boolean withoutHidden); } diff --git a/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/EnumQuery.java b/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/EnumQuery.java index 5efa9c98e..84905fa28 100644 --- a/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/EnumQuery.java +++ b/li.strolch.rest/src/main/java/li/strolch/rest/endpoint/EnumQuery.java @@ -16,10 +16,7 @@ package li.strolch.rest.endpoint; import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -44,15 +41,17 @@ public class EnumQuery { @GET @Produces(MediaType.APPLICATION_JSON) @Path("{name}") - public Response getEnum(@PathParam("name") String name, @Context HttpServletRequest request) { + public Response getEnum(@Context HttpServletRequest request, @PathParam("name") String name, + @QueryParam("withoutHidden") boolean withoutHidden) { try { - EnumHandler enumHandler = RestfulStrolchComponent.getInstance().getContainer() + EnumHandler enumHandler = RestfulStrolchComponent.getInstance() + .getContainer() .getComponent(EnumHandler.class); Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE); - StrolchEnum strolchEnum = enumHandler.getEnum(cert, name, cert.getLocale()); + StrolchEnum strolchEnum = enumHandler.getEnum(cert, name, cert.getLocale(), withoutHidden); return Response.ok().entity(strolchEnum.toJson().toString()).build(); } catch (Exception e) { @@ -69,7 +68,8 @@ public class EnumQuery { try { - EnumHandler enumHandler = RestfulStrolchComponent.getInstance().getContainer() + EnumHandler enumHandler = RestfulStrolchComponent.getInstance() + .getContainer() .getComponent(EnumHandler.class); Certificate cert = (Certificate) request.getAttribute(StrolchRestfulConstants.STROLCH_CERTIFICATE);