package io.trygvis.engine.domain; import javax.persistence.Column; import javax.persistence.Entity; import java.util.Optional; import static io.trygvis.engine.domain.Artifact.Level.UNTESTED; import static java.util.Optional.ofNullable; @Entity public class Artifact extends AbstractEntity { @Column(length = 100, nullable = false) private String groupId; @Column(length = 100, nullable = false) private String artifactId; @Column(length = 100, nullable = false) private String version; @Column(length = 100) private String classifier; @Column(length = 100, nullable = false) private String extension; @Column(nullable = false) private Level level; @Column(length = 40) private String gitHash; public enum Level { UNTESTED } protected Artifact() { } public Artifact(String groupId, String artifactId, String version, String classifier, String extension) { this.groupId = groupId; this.artifactId = artifactId; this.version = version; this.classifier = classifier; this.extension = extension; this.level = UNTESTED; } public String getGroupId() { return groupId; } public String getArtifactId() { return artifactId; } public String getVersion() { return version; } public Optional getClassifier() { return ofNullable(classifier); } public String getExtension() { return extension; } public Level getLevel() { return level; } public String getGitHash() { return gitHash; } @Override public String toString() { return "Artifact{" + "groupId='" + groupId + '\'' + ", artifactId='" + artifactId + '\'' + ", version='" + version + '\'' + ", classifier='" + classifier + '\'' + ", extension='" + extension + '\'' + ", level='" + level + '\'' + ", gitHash='" + gitHash + '\'' + "} " + super.toString(); } }