diff options
author | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2015-08-11 11:54:15 +0200 |
---|---|---|
committer | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2015-08-11 11:54:15 +0200 |
commit | 7696a5956a8d28a0015ef028ac0225fbaddf6c4d (patch) | |
tree | 027e22dce6adb1c341b527a0ac446e46dbb57cc3 /id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PersonalAttributeList.java | |
parent | a7c29dbe4c1103457d717a90a138fd605d562ac9 (diff) | |
download | moa-id-spss-7696a5956a8d28a0015ef028ac0225fbaddf6c4d.tar.gz moa-id-spss-7696a5956a8d28a0015ef028ac0225fbaddf6c4d.tar.bz2 moa-id-spss-7696a5956a8d28a0015ef028ac0225fbaddf6c4d.zip |
approved some more java changes
Diffstat (limited to 'id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PersonalAttributeList.java')
-rw-r--r-- | id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PersonalAttributeList.java | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PersonalAttributeList.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PersonalAttributeList.java index 233cdebd0..1ddc02e15 100644 --- a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PersonalAttributeList.java +++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PersonalAttributeList.java @@ -53,7 +53,7 @@ public final class PersonalAttributeList extends ConcurrentHashMap<String, Perso /** * Hash with mapping number of alias or the attribute name. */ - private final Map<String, Integer> attrAliasNumber = new HashMap<String, Integer>(); + private final Map<String, List<String>> attrAliasNumber = new HashMap<String, List<String>>(); /** * Default constructor. @@ -123,28 +123,30 @@ public final class PersonalAttributeList extends ConcurrentHashMap<String, Perso * {@inheritDoc} */ public PersonalAttribute put(final String key, final PersonalAttribute val) { - if (StringUtils.isNotEmpty(key) && val != null) { - // Validate if attribute name already exists! - String attrAlias = key; - if (this.containsKey(attrAlias)) { - // TODO isAgeOver should not be hardcoded, a better way of handling multipe isAgeOver requests should be implemented. - if (!val.isEmptyValue() && StringUtils.isNumeric(val.getValue().get(0)) && "isAgeOver".equals(val.getName())) { - final String attrValue = val.getValue().get(0); - attrAlias = key + attrValue; - this.attrAliasNumber.put(key, Integer.valueOf(attrValue)); + PersonalAttribute attr = val; + if (this.containsKey(key)) { + attr = this.get(key); + + if (!attr.isEmptyValue()) { + if (!attr.getValue().containsAll(val.getValue())) { + attr.getValue().addAll(val.getValue()); + } + } else { + + if (!attr.isEmptyComplexValue()) { + for (Map<String, String> valTemp : val.getComplexValues()) { + if (!attr.getComplexValues().contains(valTemp)) { + attr.setComplexValue(valTemp); + } + } } else { - final PersonalAttribute attr = super.get(key); - if (!attr.isEmptyValue() && StringUtils.isNumeric(attr.getValue().get(0))) { - attrAlias = key + attr.getValue().get(0); - super.put(key, (PersonalAttribute) attr); - this.attrAliasNumber.put(key, null); + if (STORKStatusCode.STATUS_NOT_AVAILABLE.toString().equals(attr.getStatus())) { + attr = val; } } } - return super.put(attrAlias, val); - } else { - return null; } + return super.put(key, attr); } /** |