package sagan.projects;
import sagan.projects.ProjectRelease.ReleaseStatus;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class ProjectRepository {
private static final ProjectRepository SNAPSHOT = new ProjectRepository("spring-snapshots", "Spring Snapshots",
"https://repo.spring.io/libs-snapshot", true);
private static final ProjectRepository MILESTONE = new ProjectRepository("spring-milestones", "Spring Milestones",
"https://repo.spring.io/libs-milestone", false);
@Id
private String id;
private String name;
private String url;
private Boolean snapshotsEnabled;
@SuppressWarnings("unused")
private ProjectRepository() {
}
ProjectRepository(String id, String name, String url, Boolean snapshotsEnabled) {
this.id = id;
this.name = name;
this.url = url;
this.snapshotsEnabled = snapshotsEnabled;
}
public static ProjectRepository get(String versionName, ReleaseStatus status) {
if (status == ReleaseStatus.GENERAL_AVAILABILITY) {
return null;
}
if (status == ReleaseStatus.SNAPSHOT) {
return SNAPSHOT;
}
return MILESTONE;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getUrl() {
return url;
}
public Boolean getSnapshotsEnabled() {
return snapshotsEnabled;
}
public void setId(String id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setUrl(String url) {
this.url = url;
}
public void setSnapshotsEnabled(Boolean snapshotsEnabled) {
this.snapshotsEnabled = snapshotsEnabled;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || !(o instanceof ProjectRepository))
return false;
ProjectRepository that = (ProjectRepository) o;
if (id != null ? !id.equals(that.id) : that.id != null)
return false;
return true;
}
@Override
public int hashCode() {
return id != null ? id.hashCode() : 0;
}
@Override
public String toString() {
return "ProjectRepository{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", url='" + url + '\'' +
", snapshotsEnabled=" + snapshotsEnabled +
'}';
}
}