package com.subgraph.orchid.directory.consensus;
import com.subgraph.orchid.ConsensusDocument;
import com.subgraph.orchid.data.HexDigest;
public class RequiredCertificateImpl implements ConsensusDocument.RequiredCertificate {
private final HexDigest identity;
private final HexDigest signingKey;
private int downloadFailureCount;
public RequiredCertificateImpl(HexDigest identity, HexDigest signingKey) {
this.identity = identity;
this.signingKey = signingKey;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((identity == null) ? 0 : identity.hashCode());
result = prime * result
+ ((signingKey == null) ? 0 : signingKey.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
RequiredCertificateImpl other = (RequiredCertificateImpl) obj;
if (identity == null) {
if (other.identity != null)
return false;
} else if (!identity.equals(other.identity))
return false;
if (signingKey == null) {
if (other.signingKey != null)
return false;
} else if (!signingKey.equals(other.signingKey))
return false;
return true;
}
public void incrementDownloadFailureCount() {
downloadFailureCount += 1;
}
public int getDownloadFailureCount() {
return downloadFailureCount;
}
public HexDigest getAuthorityIdentity() {
return identity;
}
public HexDigest getSigningKey() {
return signingKey;
}
}