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 3069277bc..b3113ceab 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 @@ -20,16 +20,14 @@ import static li.strolch.utils.helper.StringHelper.DASH; import static li.strolch.utils.helper.StringHelper.isNotEmpty; import java.text.MessageFormat; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; -import java.util.Set; +import java.util.*; import li.strolch.agent.api.ComponentContainer; import li.strolch.agent.api.StrolchComponent; import li.strolch.exception.StrolchException; import li.strolch.model.ParameterBag; import li.strolch.model.Resource; +import li.strolch.model.parameter.Parameter; import li.strolch.model.parameter.StringParameter; import li.strolch.persistence.api.StrolchTransaction; import li.strolch.privilege.model.Certificate; @@ -54,11 +52,12 @@ public class DefaultEnumHandler extends StrolchComponent implements EnumHandler Resource enumeration = tx.getResourceBy(TYPE_ENUMERATION, name, true); ParameterBag enumValuesByLanguage = findParameterBagByLanguage(enumeration, locale); - Set parameterKeySet = enumValuesByLanguage.getParameterKeySet(); - Map values = new HashMap<>(parameterKeySet.size()); - for (String paramKey : parameterKeySet) { - StringParameter enumParam = enumValuesByLanguage.getParameter(paramKey); - values.put(paramKey, enumParam.getValue()); + List> parameters = enumValuesByLanguage.getParameters(); + parameters.sort(Comparator.comparing(Parameter::getIndex)); + Map values = new HashMap<>(parameters.size()); + for (Parameter param : parameters) { + StringParameter enumParam = (StringParameter) param; + values.put(enumParam.getId(), enumParam.getValue()); } return new StrolchEnum(name, locale, values);