package org.cagrid.dorian.service.federation;
import gov.nih.nci.cagrid.common.Utils;
import java.util.Arrays;
import org.cagrid.dorian.model.federation.GridUser;
import org.cagrid.dorian.model.federation.HostCertificateRecord;
import org.cagrid.dorian.model.federation.TrustedIdP;
import org.cagrid.dorian.model.federation.UserCertificateRecord;
public class ReportUtils {
public static String generateReport(TrustedIdP original, TrustedIdP updated) {
StringBuffer sb = new StringBuffer();
sb.append("The following changes were made to the Trusted IdP, "
+ original.getName() + " (" + original.getId() + "): \n");
int count = 0;
if ((Utils.clean(updated.getDisplayName()) != null)
&& (!updated.getDisplayName().equals(original.getDisplayName()))) {
count = count + 1;
sb.append(count + ". Display Name changed from "
+ original.getDisplayName() + " to "
+ updated.getDisplayName() + ".\n");
}
if ((Utils.clean(updated.getUserPolicyClass()) != null)
&& (!updated.getUserPolicyClass().equals(
original.getUserPolicyClass()))) {
count = count + 1;
sb.append(count + ". User policy changed from "
+ original.getUserPolicyClass() + " to "
+ updated.getUserPolicyClass() + ".\n");
}
if ((updated.getStatus() != null)
&& (!updated.getStatus().equals(original.getStatus()))) {
count = count + 1;
sb.append(count + ". Status changed from "
+ original.getStatus().value() + " to "
+ updated.getStatus().value() + ".\n");
}
if ((Utils.clean(updated.getIdPCertificate()) != null)
&& (!updated.getIdPCertificate().equals(
original.getIdPCertificate()))) {
count = count + 1;
sb.append(count + ". Signing certificate changed.\n");
}
if (updated.getAuthenticationServiceURL() == null) {
updated.setAuthenticationServiceURL("");
}
if (!updated.getAuthenticationServiceURL().equals(
original.getAuthenticationServiceURL())) {
count = count + 1;
sb.append(count + ". Authentication Service URL changed from "
+ original.getAuthenticationServiceURL() + " to "
+ updated.getAuthenticationServiceURL() + ".\n");
}
if (updated.getAuthenticationServiceIdentity() == null) {
updated.setAuthenticationServiceIdentity("");
}
if (!updated.getAuthenticationServiceIdentity().equals(
original.getAuthenticationServiceIdentity())) {
count = count + 1;
sb.append(count + ". Authentication Service Identity changed from "
+ original.getAuthenticationServiceIdentity() + " to "
+ updated.getAuthenticationServiceIdentity() + ".\n");
}
if ((updated.getUserIdAttributeDescriptor() != null)
&& (!updated.getUserIdAttributeDescriptor().equals(
original.getUserIdAttributeDescriptor()))) {
count = count + 1;
sb.append(count + ". User Id Attribute changed from "
+ original.getUserIdAttributeDescriptor().getNamespaceURI()
+ ":" + original.getUserIdAttributeDescriptor().getName()
+ " to "
+ updated.getUserIdAttributeDescriptor().getNamespaceURI()
+ ":" + updated.getUserIdAttributeDescriptor().getName()
+ ".\n");
}
if ((updated.getFirstNameAttributeDescriptor() != null)
&& (!updated.getFirstNameAttributeDescriptor().equals(
original.getFirstNameAttributeDescriptor()))) {
count = count + 1;
sb.append(count
+ ". First Name Attribute changed from "
+ original.getFirstNameAttributeDescriptor()
.getNamespaceURI()
+ ":"
+ original.getFirstNameAttributeDescriptor().getName()
+ " to "
+ updated.getFirstNameAttributeDescriptor()
.getNamespaceURI() + ":"
+ updated.getFirstNameAttributeDescriptor().getName()
+ ".\n");
}
if ((updated.getLastNameAttributeDescriptor() != null)
&& (!updated.getLastNameAttributeDescriptor().equals(
original.getLastNameAttributeDescriptor()))) {
count = count + 1;
sb.append(count
+ ". Last Name Attribute changed from "
+ original.getLastNameAttributeDescriptor()
.getNamespaceURI()
+ ":"
+ original.getLastNameAttributeDescriptor().getName()
+ " to "
+ updated.getLastNameAttributeDescriptor()
.getNamespaceURI() + ":"
+ updated.getLastNameAttributeDescriptor().getName()
+ ".\n");
}
if ((updated.getEmailAttributeDescriptor() != null)
&& (!updated.getEmailAttributeDescriptor().equals(
original.getEmailAttributeDescriptor()))) {
count = count + 1;
sb.append(count + ". Email Attribute changed from "
+ original.getEmailAttributeDescriptor().getNamespaceURI() + ":"
+ original.getEmailAttributeDescriptor().getName() + " to "
+ updated.getEmailAttributeDescriptor().getNamespaceURI()
+ ":" + updated.getEmailAttributeDescriptor().getName()
+ ".\n");
}
if (!Arrays.equals(original.getAuthenticationMethod().toArray(),
updated.getAuthenticationMethod().toArray())) {
count = count + 1;
sb.append(count + ". Authentication methods changed from (");
boolean first = true;
if (original.getAuthenticationMethod() != null) {
for (int i = 0; i < original.getAuthenticationMethod().size(); i++) {
if (!first) {
sb.append(", ");
}
sb.append(original.getAuthenticationMethod().get(i));
first = false;
}
}
sb.append(") to (");
first = true;
if (updated.getAuthenticationMethod() != null) {
for (int i = 0; i < updated.getAuthenticationMethod().size(); i++) {
if (!first) {
sb.append(", ");
}
sb.append(updated.getAuthenticationMethod().get(i));
first = false;
}
}
sb.append(").");
}
return sb.toString();
}
public static String generateReport(GridUser original, GridUser updated) {
StringBuffer sb = new StringBuffer();
sb.append("The following changes were made to the Grid user, "
+ original.getGridId() + ": \n");
int count = 0;
if ((updated.getFirstName() != null)
&& (!updated.getFirstName().equals(original.getFirstName()))) {
count = count + 1;
sb.append(count + ". First Name changed from "
+ original.getFirstName() + " to " + updated.getFirstName()
+ ".\n");
}
if ((updated.getLastName() != null)
&& (!updated.getLastName().equals(original.getLastName()))) {
count = count + 1;
sb.append(count + ". Last Name changed from "
+ original.getLastName() + " to " + updated.getLastName()
+ ".\n");
}
if ((updated.getEmail() != null)
&& (!updated.getEmail().equals(original.getEmail()))) {
count = count + 1;
sb.append(count + ". Email changed from " + original.getEmail()
+ " to " + updated.getEmail() + ".\n");
}
if ((updated.getUserStatus() != null)
&& (!updated.getUserStatus().equals(original.getUserStatus()))) {
count = count + 1;
sb.append(count + ". Status changed from "
+ original.getUserStatus().value() + " to "
+ updated.getUserStatus().value() + ".\n");
}
return sb.toString();
}
public static String generateReport(HostCertificateRecord original,
HostCertificateRecord updated) {
StringBuffer sb = new StringBuffer();
sb.append("The following changes were made to the host certificate, "
+ original.getHost() + "(" + original.getId() + "): \n");
int count = 0;
if ((updated.getStatus() != null)
&& (!updated.getStatus().equals(original.getStatus()))) {
count = count + 1;
sb.append(count + ". Status changed from "
+ original.getStatus().value() + " to "
+ updated.getStatus().value() + ".\n");
}
if ((updated.getOwner() != null)
&& (!updated.getOwner().equals(original.getOwner()))) {
count = count + 1;
sb.append(count + ". Owner changed from " + original.getOwner()
+ " to " + updated.getOwner() + ".\n");
}
return sb.toString();
}
public static String generateReport(UserCertificateRecord original,
UserCertificateRecord updated) {
StringBuffer sb = new StringBuffer();
sb.append("The following changes were made to the user certificate, "
+ original.getSerialNumber() + ": \n");
int count = 0;
if ((updated.getStatus() != null)
&& (!updated.getStatus().equals(original.getStatus()))) {
count = count + 1;
sb.append(count + ". Status changed from "
+ original.getStatus().value() + " to "
+ updated.getStatus().value() + ".\n");
}
if ((updated.getNotes() != null)
&& (!updated.getNotes().equals(original.getNotes()))) {
count = count + 1;
sb.append(count + ". Notes updated.\n");
}
return sb.toString();
}
}