argos/dmp-backend/web/src/main/java/eu/eudat/models/data/dmp/Researcher.java

114 lines
2.7 KiB
Java

package eu.eudat.models.data.dmp;
import eu.eudat.models.DataModel;
import eu.eudat.logic.utilities.helpers.LabelGenerator;
import java.util.Date;
public class Researcher implements DataModel<eu.eudat.data.entities.Researcher, Researcher>, LabelGenerator {
private String label;
private String name;
private String id;
private int status;
private String tag;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getTag() {
return tag;
}
public void setTag(String tag) {
this.tag = tag;
}
@Override
public Researcher fromDataModel(eu.eudat.data.entities.Researcher entity) {
this.id = entity.getReference();
this.label = entity.getUri();
this.name = entity.getLabel();
this.status = entity.getStatus();
if (entity.getReference().contains(":cristin")) {
this.tag = "cristin";
} else {
String source = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source.equals("dmp"))
this.tag = "Internal";
else
this.tag = source;
}
return this;
}
@Override
public eu.eudat.data.entities.Researcher toDataModel() {
eu.eudat.data.entities.Researcher researcher = new eu.eudat.data.entities.Researcher();
if (this.tag.equals("Internal") || this.tag.equals(this.id.substring(0, this.tag.length()))) {
researcher.setReference(this.id);
} else {
researcher.setReference(this.tag + ":" + this.id);
}
researcher.setLabel(this.name);
researcher.setUri(this.label);
researcher.setCreated(new Date());
researcher.setStatus((short) this.status);
return researcher;
}
@Override
public String generateLabel() {
return this.getName();
}
@Override
public String getHint() {
return null;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Researcher that = (Researcher) o;
return id.equals(that.id);
}
@Override
public int hashCode() {
return id.hashCode();
}
}