[Fix] Fixed parsing and formatting of Locale

This commit is contained in:
Robert von Burg 2019-04-10 16:44:52 +02:00
parent ca7f80d58e
commit 78c96d4351
37 changed files with 68 additions and 61 deletions

View File

@ -16,7 +16,8 @@
package li.strolch.runtime.query.enums;
import static li.strolch.model.StrolchModelConstants.TYPE_ENUMERATION;
import static li.strolch.utils.helper.StringHelper.UNDERLINE;
import static li.strolch.utils.helper.StringHelper.DASH;
import static li.strolch.utils.helper.StringHelper.isNotEmpty;
import java.text.MessageFormat;
import java.util.HashMap;
@ -66,15 +67,19 @@ public class DefaultEnumHandler extends StrolchComponent implements EnumHandler
private ParameterBag findParameterBagByLanguage(Resource enumeration, Locale locale) {
String localeS = locale.getLanguage() + UNDERLINE + locale.getCountry() + UNDERLINE + locale.getVariant();
if (enumeration.hasParameterBag(localeS))
return enumeration.getParameterBag(localeS);
if (isNotEmpty(locale.getVariant())) {
String localeS = locale.getLanguage() + DASH + locale.getCountry() + DASH + locale.getVariant();
if (enumeration.hasParameterBag(localeS))
return enumeration.getParameterBag(localeS);
}
localeS = locale.getLanguage() + UNDERLINE + locale.getCountry();
if (enumeration.hasParameterBag(localeS))
return enumeration.getParameterBag(localeS);
if (isNotEmpty(locale.getCountry())) {
String localeS = locale.getLanguage() + DASH + locale.getCountry();
if (enumeration.hasParameterBag(localeS))
return enumeration.getParameterBag(localeS);
}
localeS = locale.getLanguage();
String localeS = locale.getLanguage();
if (enumeration.hasParameterBag(localeS))
return enumeration.getParameterBag(localeS);

View File

@ -37,7 +37,7 @@ public class StrolchEnum {
public StrolchEnum(String name, Locale locale, Map<String, String> values) {
this.name = name;
this.locale = locale.toString();
this.locale = locale.toLanguageTag();
this.localeL = locale;
this.values = values;
}

View File

@ -51,13 +51,13 @@ public class EnumHandlerTest {
StrolchEnum salutationsEnum = enumHandler.getEnum(certificate, "salutations", Locale.UK);
assertEquals("salutations", salutationsEnum.getName());
assertEquals("en_GB", salutationsEnum.getLocale());
assertEquals("en-GB", salutationsEnum.getLocale());
assertEquals(3, salutationsEnum.size());
assertEquals("Mr", salutationsEnum.getValue("mr"));
StrolchEnum religionsEnum = enumHandler.getEnum(certificate, "religions", Locale.CANADA);
assertEquals("religions", religionsEnum.getName());
assertEquals("en_CA", religionsEnum.getLocale());
assertEquals("en-CA", religionsEnum.getLocale());
assertEquals(9, religionsEnum.size());
assertEquals("Atheist", religionsEnum.getValue("Atheist"));
});

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>
@ -22,7 +22,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>
@ -22,7 +22,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>
@ -22,7 +22,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -67,7 +67,7 @@ public class CertificateStubsDomWriter {
certElement.setAttribute(XmlConstants.XML_ATTR_SOURCE, cert.getSource());
// locale;
certElement.setAttribute(XmlConstants.XML_ATTR_LOCALE, cert.getLocale().toString());
certElement.setAttribute(XmlConstants.XML_ATTR_LOCALE, cert.getLocale().toLanguageTag());
// loginTime;
certElement.setAttribute(XmlConstants.XML_ATTR_LOGIN_TIME,

View File

@ -78,7 +78,7 @@ public class PrivilegeUsersDomWriter {
// add locale element
Element localeElement = doc.createElement(XmlConstants.XML_LOCALE);
localeElement.setTextContent(user.getLocale().toString());
localeElement.setTextContent(user.getLocale().toLanguageTag());
userElement.appendChild(localeElement);
// add all the role elements

View File

@ -89,7 +89,7 @@ public class PrivilegeUsersSaxReader extends DefaultHandler {
// <Firstname>Application</Firstname>
// <Lastname>Administrator</Lastname>
// <State>ENABLED</State>
// <Locale>en_GB</Locale>
// <Locale>en-GB</Locale>
// <Roles>
// <Role>PrivilegeAdmin</Role>
// <Role>AppUser</Role>
@ -200,7 +200,7 @@ public class PrivilegeUsersSaxReader extends DefaultHandler {
case XmlConstants.XML_LOCALE:
this.locale = new Locale(this.text.toString().trim());
this.locale = Locale.forLanguageTag(this.text.toString().trim());
break;
case XmlConstants.XML_ROLE:

View File

@ -172,7 +172,7 @@ public class XmlTest {
assertEquals("Application", admin.getFirstname());
assertEquals("Administrator", admin.getLastname());
assertEquals(UserState.ENABLED, admin.getUserState());
assertEquals("en_gb", admin.getLocale().toString());
assertEquals("en-GB", admin.getLocale().toString());
assertThat(admin.getRoles(), containsInAnyOrder("PrivilegeAdmin", "AppUser"));
Map<String, String> properties = admin.getProperties();
assertEquals(new HashSet<>(Arrays.asList("organization", "organizationalUnit")), properties.keySet());
@ -188,7 +188,7 @@ public class XmlTest {
assertEquals("System User", systemAdmin.getFirstname());
assertEquals("Administrator", systemAdmin.getLastname());
assertEquals(UserState.SYSTEM, systemAdmin.getUserState());
assertEquals("en_gb", systemAdmin.getLocale().toString());
assertEquals("en-GB", systemAdmin.getLocale().toString());
assertThat(systemAdmin.getRoles(), containsInAnyOrder("system_admin_privileges"));
assertTrue(systemAdmin.getProperties().isEmpty());
}

View File

@ -5,7 +5,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>PrivilegeAdmin</Role>
<Role>AppUser</Role>
@ -20,7 +20,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>PrivilegeAdmin</Role>
<Role>AppUser</Role>
@ -35,7 +35,7 @@
<Firstname>System User</Firstname>
<Lastname>Administrator</Lastname>
<State>SYSTEM</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>system_admin_privileges</Role>
</Roles>
@ -45,7 +45,7 @@
<Firstname>System User</Firstname>
<Lastname>Administrator</Lastname>
<State>SYSTEM</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>system_admin_privileges</Role>
</Roles>

View File

@ -5,7 +5,7 @@
<Firstname>System User</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>RoleA1</Role>
<Role>RoleA2</Role>
@ -16,7 +16,7 @@
<Firstname>System User</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>RoleB1</Role>
<Role>RoleB2</Role>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>
@ -24,7 +24,7 @@
<Firstname>Bob</Firstname>
<Lastname>Bernstein</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>
@ -34,7 +34,7 @@
<Firstname>Jill</Firstname>
<Lastname>Johnson</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>OnlyGreetingServiceRole</Role>
</Roles>
@ -44,7 +44,7 @@
<Firstname>System User</Firstname>
<Lastname>Administrator</Lastname>
<State>SYSTEM</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>sysAdmin</Role>
<Role>AppUser</Role>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>
@ -19,7 +19,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
<Role>PrivilegeAdmin</Role>

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>

View File

@ -11,7 +11,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>
@ -25,7 +25,7 @@
<Firstname>Bob</Firstname>
<Lastname>Bernstein</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>
@ -35,7 +35,7 @@
<Firstname>Jill</Firstname>
<Lastname>Johnson</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>OnlyGreetingServiceRole</Role>
</Roles>
@ -45,7 +45,7 @@
<Firstname>System User</Firstname>
<Lastname>Administrator</Lastname>
<State>SYSTEM</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>sysAdmin</Role>
<Role>AppUser</Role>

View File

@ -868,4 +868,6 @@ public class StringHelper {
uniqueId += 1;
return uniqueId;
}
}

View File

@ -70,7 +70,7 @@
&lt;Firstname&gt;Jill&lt;/Firstname&gt;
&lt;Lastname&gt;Someone&lt;/Lastname&gt;
&lt;State&gt;ENABLED&lt;/State&gt;
&lt;Locale&gt;en_GB&lt;/Locale&gt;
&lt;Locale&gt;en-GB&lt;/Locale&gt;
&lt;Roles&gt;
&lt;Role&gt;AppUser&lt;/Role&gt;
&lt;/Roles&gt;

View File

@ -576,7 +576,7 @@
&lt;Firstname&gt;Jill&lt;/Firstname&gt;
&lt;Lastname&gt;Someone&lt;/Lastname&gt;
&lt;State&gt;ENABLED&lt;/State&gt;
&lt;Locale&gt;en_GB&lt;/Locale&gt;
&lt;Locale&gt;en-GB&lt;/Locale&gt;
&lt;Roles&gt;
&lt;Role&gt;User&lt;/Role&gt;
&lt;Role&gt;UserPrivileges&lt;/Role&gt;
@ -590,7 +590,7 @@
&lt;Firstname&gt;Jill&lt;/Firstname&gt;
&lt;Lastname&gt;Someone&lt;/Lastname&gt;
&lt;State&gt;ENABLED&lt;/State&gt;
&lt;Locale&gt;en_GB&lt;/Locale&gt;
&lt;Locale&gt;en-GB&lt;/Locale&gt;
&lt;Roles&gt;
&lt;Role&gt;StrolchAdmin&lt;/Role&gt;
&lt;Role&gt;UserPrivileges&lt;/Role&gt;

View File

@ -10,7 +10,7 @@
<Firstname>Application</Firstname>
<Lastname>Administrator</Lastname>
<State>ENABLED</State>
<Locale>en_GB</Locale>
<Locale>en-GB</Locale>
<Roles>
<Role>AppUser</Role>
</Roles>