+ updateUserNaturesWithCheck(userNatures, userNaturesData);
+ }
+
+ public static void updateUserNaturesWithCheck(
+ Map<String, UserNature> userNatures,
+ Map<String, UserNature> userNaturesData) {
+ // checks consistency
+ if (userNatures.size() != userNaturesData.size())
+ throw new ArgeoException(
+ "It is forbidden to add or remove user natures via this method");
+
+ for (String type : userNatures.keySet()) {
+ if (!userNaturesData.containsKey(type))
+ throw new ArgeoException(
+ "Could not find a user nature of type " + type);
+ }
+
+ // for (int i = 0; i < userNatures.size(); i++) {
+ // String type = userNatures.get(i).getType();
+ // boolean found = false;
+ // for (int j = 0; j < userNatures.size(); j++) {
+ // String newType = userNaturesData.get(j).getType();
+ // if (type.equals(newType))
+ // found = true;
+ // }
+ // if (!found)
+ // throw new ArgeoException(
+ // "Could not find a user nature of type " + type);
+ // }
+
+ for (String key : userNatures.keySet()) {
+ userNatures.put(key, userNaturesData.get(key));
+ }
+ }
+
+ @Override
+ public String toString() {
+ return username;