package com.hubspot.deploy;
import java.util.Arrays;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@JsonIgnoreProperties(ignoreUnknown = true)
public class EmbeddedArtifact extends Artifact {
private final byte[] content;
@JsonCreator
@SuppressFBWarnings("EI_EXPOSE_REP2")
public EmbeddedArtifact(@JsonProperty("name") String name, @JsonProperty("filename") String filename, @JsonProperty("md5sum") Optional<String> md5sum,
@JsonProperty("content") byte[] content, @JsonProperty("targetFolderRelativeToTask") Optional<String> targetFolderRelativeToTask) {
super(name, filename, md5sum, targetFolderRelativeToTask);
this.content = content;
}
@SuppressFBWarnings("EI_EXPOSE_REP")
public byte[] getContent() {
return content;
}
@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;
}
EmbeddedArtifact that = (EmbeddedArtifact) o;
return Arrays.equals(content, that.content);
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), content);
}
@Override
public String toString() {
return "EmbeddedArtifact{" +
"content=" + Arrays.toString(content) +
"} " + super.toString();
}
}