1 7 package com.inversoft.savant; 8 9 10 import java.io.File ; 11 import java.util.ArrayList ; 12 import java.util.Collections ; 13 import java.util.Date ; 14 import java.util.List ; 15 16 17 24 public class Artifact { 25 26 private String group; 27 private String project; 28 private String name; 29 private String version; 30 private String type; 31 private int expireMinutes; 32 private Date expireTime; 33 private List dependencies = new ArrayList (); 34 35 36 public String getGroup() { 37 return group; 38 } 39 40 public void setGroup(String group) { 41 this.group = group; 42 } 43 44 public String getProjectname() { 45 return project; 46 } 47 48 public void setProjectname(String project) { 49 this.project = project; 50 } 51 52 public String getName() { 53 return name; 54 } 55 56 public void setName(String name) { 57 this.name = name; 58 } 59 60 public String getVersion() { 61 return version; 62 } 63 64 public void setVersion(String version) { 65 this.version = version; 66 } 67 68 public String getType() { 69 return type; 70 } 71 72 public void setType(String type) { 73 this.type = type; 74 } 75 76 public int getExpireminutes() { 77 return expireMinutes; 78 } 79 80 public void setExpireminutes(int expireMinutes) { 81 this.expireMinutes = expireMinutes; 82 } 83 84 public Date getExpiretime() { 85 return expireTime; 86 } 87 88 public void setExpiretime(Date expireTime) { 89 this.expireTime = expireTime; 90 } 91 92 96 public List getDependencies() { 97 return Collections.unmodifiableList(dependencies); 98 } 99 100 103 public void addDependency(Artifact artifact) { 104 dependencies.add(artifact); 105 } 106 107 119 public String getArtifactDir() { 120 return group + File.separator + project; 121 } 122 123 137 public String getArtifactFile() { 138 return getArtifactDir() + File.separator + name + "-" + version + "." + 139 type; 140 } 141 142 156 public String getArtifactDepsFile() { 157 return getArtifactFile() + ".deps"; 158 } 159 160 165 public String toString() { 166 StringBuffer buf = new StringBuffer (); 167 buf.append(group).append(", ").append(project).append(", ").append(name); 168 if (version != null) { 169 buf.append("-").append(version); 170 } 171 buf.append(".").append(type); 172 173 return buf.toString(); 174 } 175 176 public boolean equals(Object o) { 177 if (this == o) { 178 return true; 179 } 180 181 if (!(o instanceof Artifact)) { 182 return false; 183 } 184 185 final Artifact artifact = (Artifact) o; 186 187 return (group == artifact.group || (group != null && group.equals(artifact.group))) && 188 (name == artifact.name || (name != null && name.equals(artifact.name))) && 189 (project == artifact.project || (project != null && project.equals(artifact.project))) && 190 (type == artifact.type || (type != null && type.equals(artifact.type))) && 191 (version == artifact.version || (version != null && version.equals(artifact.version))); 192 } 193 194 public int hashCode() { 195 int result; 196 result = (group != null ? group.hashCode() : 0); 197 result = 29 * result + (project != null ? project.hashCode() : 0); 198 result = 29 * result + (name != null ? name.hashCode() : 0); 199 result = 29 * result + (version != null ? version.hashCode() : 0); 200 result = 29 * result + (type != null ? type.hashCode() : 0); 201 return result; 202 } 203 204 209 public void validate() throws SavantException { 210 if (group == null || project == null || name == null || type == null) { 211 throw new SavantException("A group, project, name and type are " + 212 "required attributes for artifacts"); 213 } 214 } 215 } | Popular Tags |