package com.hubspot.deploy; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonIgnore; import com.google.common.base.Optional; public abstract class RemoteArtifact extends Artifact { private final Optional<Long> filesize; private final Optional<Boolean> isArtifactList; public RemoteArtifact(String name, String filename, Optional<String> md5sum, Optional<Long> filesize, Optional<String> targetFolderRelativeToTask, Optional<Boolean> isArtifactList) { super(name, filename, md5sum, targetFolderRelativeToTask); this.filesize = filesize; this.isArtifactList = isArtifactList; } public Optional<Long> getFilesize() { return filesize; } public Optional<Boolean> getIsArtifactList() { return isArtifactList; } @JsonIgnore public boolean isArtifactList() { return isArtifactList.or(Boolean.FALSE).booleanValue(); } @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; } RemoteArtifact that = (RemoteArtifact) o; return Objects.equals(filesize, that.filesize) && Objects.equals(isArtifactList, that.isArtifactList); } @Override public int hashCode() { return Objects.hash(super.hashCode(), filesize, isArtifactList); } @Override public String toString() { return "RemoteArtifact{" + "filesize=" + filesize + "isArtifactList" + isArtifactList + "} " + super.toString(); } }