package qa.qcri.aidr.manager.dto;
import java.util.ArrayList;
import java.util.List;
import qa.qcri.aidr.dbmanager.dto.CollectionDTO;
import qa.qcri.aidr.dbmanager.dto.ModelFamilyDTO;
public class TaggerCrisis {
private String code;
private String name;
private TaggerCrisisType crisisType;
private TaggerUser users;
private Integer crisisID;
private Boolean isTrashed;
private Boolean isMicromapperEnabled;
private List<TaggerModelFamilyCollection> modelFamilyCollection;
public TaggerCrisis() {
this.isTrashed = false;
}
public TaggerCrisis(Integer crisisID) {
this.crisisID = crisisID;
this.isTrashed = false;
}
public TaggerCrisis(String code, String name, TaggerCrisisType crisisType, TaggerUser users, Boolean isTrashed, Boolean isMicromapperEnabled) {
this.code = code;
this.name = name;
this.crisisType = crisisType;
this.users = users;
this.isTrashed = isTrashed;
this.isMicromapperEnabled = isMicromapperEnabled;
}
public TaggerCrisis(CollectionDTO dto) throws Exception {
if (dto != null) {
this.setCode(dto.getCode());
this.setName(dto.getName());
this.setCrisisID(dto.getCrisisID() != null ? dto.getCrisisID().intValue() : null);
if (dto.getCrisisTypeDTO() != null) {
this.setCrisisType(new TaggerCrisisType(dto.getCrisisTypeDTO()));
}
if (dto.getUsersDTO() != null) {
this.setUsers(new TaggerUser(dto.getUsersDTO()));
}
this.setIsTrashed(dto.isIsTrashed());
this.setIsMicromapperEnabled(dto.isIsMicromapperEnabled());
List<TaggerModelFamilyCollection> mfList = new ArrayList<TaggerModelFamilyCollection>();
if (dto.getModelFamiliesDTO() != null) {
for (ModelFamilyDTO mf: dto.getModelFamiliesDTO()) {
mfList.add(new TaggerModelFamilyCollection(mf));
}
this.setModelFamilyCollection(mfList);
}
}
}
public CollectionDTO toDTO() throws Exception {
CollectionDTO dto = new CollectionDTO();
if (this.getCrisisID() != null) {
dto.setCrisisID(new Long(this.getCrisisID()));
}
dto.setCode(this.getCode());
dto.setName(this.getName());
dto.setIsTrashed(this.getIsTrashed());
if(this.getIsMicromapperEnabled()!=null){
dto.setIsMicromapperEnabled(this.getIsMicromapperEnabled());
}
if (this.getUsers() != null) {
dto.setUsersDTO(this.getUsers().toDTO());
}
if (this.getCrisisType() != null) {
dto.setCrisisTypeDTO(this.getCrisisType().toDTO());
}
List<ModelFamilyDTO> mfDTOList = new ArrayList<ModelFamilyDTO>();
if (this.getModelFamilyCollection() != null) {
for (TaggerModelFamilyCollection mf: this.getModelFamilyCollection()) {
mfDTOList.add(mf.toDTO());
}
dto.setModelFamiliesDTO(mfDTOList);
}
return dto;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public TaggerCrisisType getCrisisType() {
return crisisType;
}
public void setCrisisType(TaggerCrisisType crisisType) {
this.crisisType = crisisType;
}
public TaggerUser getUsers() {
return users;
}
public void setUsers(TaggerUser users) {
this.users = users;
}
public Integer getCrisisID() {
return crisisID;
}
public void setCrisisID(Integer crisisID) {
this.crisisID = crisisID;
}
public List<TaggerModelFamilyCollection> getModelFamilyCollection() {
return modelFamilyCollection;
}
public void setModelFamilyCollection(List<TaggerModelFamilyCollection> modelFamilyCollection) {
this.modelFamilyCollection = modelFamilyCollection;
}
public Boolean getIsTrashed() {
return isTrashed;
}
public void setIsTrashed(Boolean isTrashed) {
this.isTrashed = (isTrashed == null) ? false : isTrashed;
}
public Boolean getIsMicromapperEnabled() {
return isMicromapperEnabled;
}
public void setIsMicromapperEnabled(Boolean isMicromapperEnabled) {
this.isMicromapperEnabled =isMicromapperEnabled;
}
}