package at.gv.egovernment.moa.spss.server.config;
import java.math.BigInteger;
/**
* A class containing information about an entry in a key group.
*
* @author Patrick Peck
* @version $Id$
*/
public class KeyGroupEntry {
/** The module ID of the key. */
private String moduleID;
/** The issuer DN of the certificate identifying the key. */
private String issuerDN;
/** The serial number of the certificate identifying the key. */
private BigInteger serialNumber;
/**
* Create a new KeyGroupEntry
.
*
* @param moduleID The key module ID to which this entry belongs to.
* @param issuerAndSerial The issuer and serial number which uniquely
* identifies a certificate within the key module.
*/
public KeyGroupEntry(String moduleID, IssuerAndSerial issuerAndSerial) {
this.moduleID = moduleID;
this.issuerDN = issuerAndSerial.getIssuerDN();
this.serialNumber = issuerAndSerial.getSerial();
}
/**
* Create a new KeyGroupEntry
.
*
* @param moduleID The key module ID to which this entry belongs to.
* @param issuerDN The isser DN of the certificate within the key module.
* @param serialNumber The serial number of the certificate within the key
* module.
*/
public KeyGroupEntry(
String moduleID,
String issuerDN,
BigInteger serialNumber) {
this.moduleID = moduleID;
this.issuerDN = issuerDN;
this.serialNumber = serialNumber;
}
/**
* Return the key module ID to which this KeyGroupEntry
belongs
* to.
*
* @return The key module ID.
*/
public String getModuleID() {
return moduleID;
}
/**
* Return the issuer DN of this KeyGroupEntry
for identifying the
* certificate within the key module.
*
* @return The issuer DN of the certificate.
*/
public String getIssuerDN() {
return issuerDN;
}
/**
* Return the serial number of this KeyGroupEntry
for identifying
* the certificate within the key module.
*
* @return The serial number of the certificate.
*/
public BigInteger getSerialNumber() {
return serialNumber;
}
/**
* Compare this KeyGroupEntry
to another.
*
* @param other The KeyGroupEntry
to compare to.
* @return true
, if module ID, isser DN and serial number of
* other
match the ones contained in this object, otherwise
* false
.
* @see java.lang.Object#equals(Object)
*/
public boolean equals(Object other) {
if (other instanceof KeyGroupEntry) {
KeyGroupEntry entry = (KeyGroupEntry) other;
return getModuleID().equals(entry.getModuleID())
&& getIssuerDN().equals(entry.getIssuerDN())
&& getSerialNumber().equals(entry.getSerialNumber());
}
return false;
}
/**
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return getModuleID().hashCode()
^ getIssuerDN().hashCode()
^ getSerialNumber().hashCode();
}
}