package com.hubspot.baragon.models;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.MoreObjects;
import com.google.common.base.Optional;
@JsonIgnoreProperties( ignoreUnknown = true )
public class BaragonKnownAgentMetadata extends BaragonAgentMetadata {
private long lastSeenAt;
public static BaragonKnownAgentMetadata fromAgentMetadata(BaragonAgentMetadata agentMetadata, long lastSeenAt) {
return new BaragonKnownAgentMetadata(agentMetadata.getBaseAgentUri(), agentMetadata.getAgentId(), agentMetadata.getDomain(), agentMetadata.getEc2(), agentMetadata.getExtraAgentData(), agentMetadata.isBatchEnabled(), lastSeenAt);
}
@JsonCreator
public BaragonKnownAgentMetadata(@JsonProperty("baseAgentUri") String baseAgentUri,
@JsonProperty("agentId") String agentId,
@JsonProperty("domain") Optional<String> domain,
@JsonProperty("ec2") BaragonAgentEc2Metadata ec2,
@JsonProperty("extraAgentData")Map<String, String> extraAgentData,
@JsonProperty("batchEnabled") boolean batchEnabled,
@JsonProperty("lastSeenAt") long lastSeenAt) {
super(baseAgentUri, agentId, domain, ec2, extraAgentData, batchEnabled);
this.lastSeenAt = lastSeenAt;
}
public long getLastSeenAt() {
return lastSeenAt;
}
public void setLastSeenAt(long lastSeenAt) {
this.lastSeenAt = lastSeenAt;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
if (!super.equals(o)) {
return false;
}
BaragonKnownAgentMetadata that = (BaragonKnownAgentMetadata) o;
if (lastSeenAt != that.lastSeenAt) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (int) (lastSeenAt ^ (lastSeenAt >>> 32));
return result;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("baseAgentUri", getBaseAgentUri())
.add("domain", getDomain())
.add("agentId", getAgentId())
.add("lastSeenAt", lastSeenAt)
.toString();
}
}