for (int i = 0; i < items.length; i++) {
SecurityPrincipalJson[] jPrincipals = items[i].getChildren();
SecurityRoleJson item = items[i];
GerRoleType role = roleMappings.addNewRole();
role.setRoleName(item.getRoleName());
for (int j = 0; j < jPrincipals.length; j++) {
SecurityPrincipalJson jPrincipal = jPrincipals[j];
String type = jPrincipal.getType();
if (type.equals("Principal")) {
GerPrincipalType principal = role.addNewPrincipal();
principal.setName(jPrincipal.getPrincipalName());
principal.setClass1(jPrincipal.getClassName());
} else if (type.equals("LoginDomainPrincipal")) {
GerLoginDomainPrincipalType principal = role.addNewLoginDomainPrincipal();
principal.setName(jPrincipal.getPrincipalName());
principal.setClass1(jPrincipal.getClassName());
principal.setDomainName(jPrincipal.getDomainName());
} else if (type.equals("RealmPrincipal")) {
GerRealmPrincipalType principal = role.addNewRealmPrincipal();
principal.setName(jPrincipal.getPrincipalName());
principal.setClass1(jPrincipal.getClassName());
principal.setDomainName(jPrincipal.getDomainName());
principal.setRealmName(jPrincipal.getRealmName());
} else if (type.equals("DistinguishedName")) {
GerDistinguishedNameType principal = role.addNewDistinguishedName();
principal.setName(jPrincipal.getPrincipalName());
}
}
if (runAsSubjects != null
&& runAsSubjects.containsKey(item.getRoleName())) {
GerSubjectInfoType gerRunAsSubject = role.addNewRunAsSubject();
Subject runAsSubject = runAsSubjects.get(item.getRoleName());
gerRunAsSubject.setId(runAsSubject.getId());
gerRunAsSubject.setRealm(runAsSubject.getRealm());
}
}