/**
*
*/
package org.ihtsdo.otf.refset.domain;
import java.util.Collections;
import java.util.List;
import org.joda.time.DateTime;
/**
* @author Episteme Partners
*
*/
public class Refset extends BaseObj implements Comparable<Refset> {
private String type;
private List<Member> members;
private String typeId;
private String superRefsetTypeId;
private String componentTypeId;
private DateTime expectedReleaseDate;
private long totalNoOfMembers;
private DateTime earliestEffectiveTime;
private DateTime latestEffectiveTime;
/**
* @return the typeId
*/
public String getTypeId() {
return typeId;
}
/**
* @param typeId the typeId to set
*/
public void setTypeId(String typeId) {
this.typeId = typeId;
}
/**
* @return the superRefsetTypeId
*/
public String getSuperRefsetTypeId() {
return superRefsetTypeId;
}
/**
* @param superRefsetTypeId the superRefsetTypeId to set
*/
public void setSuperRefsetTypeId(String superRefsetTypeId) {
this.superRefsetTypeId = superRefsetTypeId;
}
/**
* @return the type
*/
public String getType() {
return type;
}
/**
* @param type the type to set
*/
public void setType(String type) {
this.type = type;
}
/**
* @return the members
*/
public List<Member> getMembers() {
if(members == null) {
members = Collections.emptyList();
}
return members;
}
/**
* @param members the members to set
*/
public void setMembers(List<Member> members) {
this.members = members;
}
@Override
public boolean equals(Object input) {
if ( this == input ) return true;
if ( !(input instanceof Refset) || input == null) return false;
Refset r = (Refset)input;
return ( this.uuid == r.uuid && this.created.equals(r.getCreated()));
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
// TODO Auto-generated method stub
return (uuid + created).hashCode();
}
@Override
public String toString() {
return String.format( "Refset [id - %s, created - %s, createdBy - %s, description - %s, "
+ "effectiveTime - %s, isPublished - %s, languageCode - %s, members - %s, moduleId - %s, publishedDate - %s "
+ "superRefsetTypeId - %s, type - %s, typeId - %s, description - %s, latestEffectiveTime - %s,"
+ " earliestEffectiveTime -%s ]", this.uuid, this.created, this.createdBy, this.description,
this.effectiveTime, this.published, this.languageCode, this.members, this.moduleId, this.publishedDate,
this.superRefsetTypeId, this.type, this.typeId, this.description, this.earliestEffectiveTime, this.latestEffectiveTime );
}
/**
* @return the componentTypeId
*/
public String getComponentTypeId() {
return componentTypeId;
}
/**
* @param componentTypeId the componentTypeId to set
*/
public void setComponentTypeId(String componentTypeId) {
this.componentTypeId = componentTypeId;
}
/**
* @return the expectedReleaseDate
*/
public DateTime getExpectedReleaseDate() {
return expectedReleaseDate;
}
/**
* @param expectedReleaseDate the expectedReleaseDate to set
*/
public void setExpectedReleaseDate(DateTime expectedReleaseDate) {
this.expectedReleaseDate = expectedReleaseDate;
}
/**
* @return the totalNoOfMembers
*/
public long getTotalNoOfMembers() {
return totalNoOfMembers;
}
/**
* @param totalNoOfMembers the totalNoOfMembers to set
*/
public void setTotalNoOfMembers(long totalNoOfMembers) {
this.totalNoOfMembers = totalNoOfMembers;
}
/* (non-Javadoc)
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
public int compareTo(Refset o) {
if(o == null) {
return 1;
}
int outcome = this.created.compareTo(o.getCreated());
return outcome;
}
/**
* @return the earliestEffectiveTime
*/
public DateTime getEarliestEffectiveTime() {
return earliestEffectiveTime;
}
/**
* @param earliestEffectiveTime the earliestEffectiveTime to set
*/
public void setEarliestEffectiveTime(DateTime earliestEffectiveTime) {
this.earliestEffectiveTime = earliestEffectiveTime;
}
/**
* @return the latestEffectiveTime
*/
public DateTime getLatestEffectiveTime() {
return latestEffectiveTime;
}
/**
* @param latestEffectiveTime the latestEffectiveTime to set
*/
public void setLatestEffectiveTime(DateTime latestEffectiveTime) {
this.latestEffectiveTime = latestEffectiveTime;
}
}