if(tab == null || tab.isEmpty()) {
return null;
}
final UserAider u;
if(tab.get("default-group-id") != null) {
final GroupAider defaultGroup = new GroupAider(
(Integer) tab.get("default-group-id"),
(String) tab.get("default-group-realmId"),
(String) tab.get("default-group-name")
);
u = new UserAider(
(String) tab.get("realmId"),
(String) tab.get("name"),
defaultGroup
);
} else {
u = new UserAider(
(String) tab.get("realmId"),
(String) tab.get("name")
);
}
final Object[] groups = (Object[]) tab.get("groups");
for(final Object group : groups) {
u.addGroup((String) group);
}
u.setEnabled(Boolean.valueOf((String)tab.get("enabled")));
u.setUserMask((Integer)tab.get("umask"));
final Map<String, String> metadata = (Map<String, String>)tab.get("metadata");
for(final String key : metadata.keySet()) {
if(AXSchemaType.valueOfNamespace(key) != null) {
u.setMetadataValue(AXSchemaType.valueOfNamespace(key), metadata.get(key));
} else if(EXistSchemaType.valueOfNamespace(key) != null) {
u.setMetadataValue(EXistSchemaType.valueOfNamespace(key), metadata.get(key));
}
}
return u;