Fixes source information and refactors "Reference" property of External References to meet the standards of the Application. (Issue #187)

This commit is contained in:
gkolokythas 2019-11-06 12:05:40 +02:00
parent 0049504304
commit 8567bcea91
22 changed files with 248 additions and 64 deletions

View File

@ -26,7 +26,7 @@ public class DataRepositoryDaoImpl extends DatabaseAccess<DataRepository> implem
if (criteria.getLike() != null) if (criteria.getLike() != null)
query.where((builder, root) -> builder.or( query.where((builder, root) -> builder.or(
builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%"), builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%"),
builder.equal(builder.upper(root.get("label")), "%" + criteria.getLike().toUpperCase() + "%"))); builder.equal(builder.upper(root.get("label")), criteria.getLike().toUpperCase())));
if (criteria.getCreationUserId() != null) if (criteria.getCreationUserId() != null)
query.where((builder, root) -> builder.equal(root.get("creationUser").get("id"), criteria.getCreationUserId())); query.where((builder, root) -> builder.equal(root.get("creationUser").get("id"), criteria.getCreationUserId()));
return query; return query;

View File

@ -25,7 +25,9 @@ public class ExternalDatasetDaoImpl extends DatabaseAccess<ExternalDataset> impl
public QueryableList<ExternalDataset> getWithCriteria(ExternalDatasetCriteria criteria) { public QueryableList<ExternalDataset> getWithCriteria(ExternalDatasetCriteria criteria) {
QueryableList<ExternalDataset> query = this.getDatabaseService().getQueryable(ExternalDataset.class); QueryableList<ExternalDataset> query = this.getDatabaseService().getQueryable(ExternalDataset.class);
if (criteria.getLike() != null && !criteria.getLike().isEmpty()) if (criteria.getLike() != null && !criteria.getLike().isEmpty())
query.where((builder, root) -> builder.like(builder.upper(root.get("label")), "%" + criteria.getLike().toUpperCase() + "%")); query.where((builder, root) -> builder.or(
builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%"),
builder.equal(builder.upper(root.get("label")), criteria.getLike().toUpperCase())));
return query; return query;
} }

View File

@ -27,7 +27,7 @@ public class RegistryDaoImpl extends DatabaseAccess<Registry> implements Registr
if (criteria.getLike() != null) if (criteria.getLike() != null)
query.where((builder, root) -> builder.or( query.where((builder, root) -> builder.or(
builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%"), builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%"),
builder.equal(builder.upper(root.get("label")), "%" + criteria.getLike().toUpperCase() + "%"))); builder.equal(builder.upper(root.get("label")), criteria.getLike().toUpperCase())));
if (criteria.getCreationUserId() != null) if (criteria.getCreationUserId() != null)
query.where((builder, root) -> builder.equal(root.get("creationUser").get("id"), criteria.getCreationUserId())); query.where((builder, root) -> builder.equal(root.get("creationUser").get("id"), criteria.getCreationUserId()));
return query; return query;

View File

@ -26,7 +26,7 @@ public class ServiceDaoImpl extends DatabaseAccess<Service> implements ServiceDa
if (criteria.getLike() != null) if (criteria.getLike() != null)
query.where((builder, root) -> builder.or( query.where((builder, root) -> builder.or(
builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%"), builder.like(builder.upper(root.get("reference")), "%" + criteria.getLike().toUpperCase() + "%"),
builder.equal(builder.upper(root.get("label")), "%" + criteria.getLike().toUpperCase() + "%"))); builder.equal(builder.upper(root.get("label")), criteria.getLike().toUpperCase())));
if (criteria.getCreationUserId() != null) if (criteria.getCreationUserId() != null)
query.where((builder, root) -> builder.equal(root.get("creationUser").get("id"), criteria.getCreationUserId())); query.where((builder, root) -> builder.equal(root.get("creationUser").get("id"), criteria.getCreationUserId()));
return query; return query;

View File

@ -499,9 +499,9 @@ public class DatasetManager {
if (dataset.getServices() != null && !dataset.getServices().isEmpty()) { if (dataset.getServices() != null && !dataset.getServices().isEmpty()) {
for (DatasetService service : dataset.getServices()) { for (DatasetService service : dataset.getServices()) {
ServiceCriteria criteria = new ServiceCriteria(); ServiceCriteria criteria = new ServiceCriteria();
criteria.setLike(service.getService().getLabel()); criteria.setLike(service.getService().getReference());
List<eu.eudat.data.entities.Service> entries = databaseRepository.getServiceDao().getWithCriteria(criteria).toList(); List<eu.eudat.data.entities.Service> entries = databaseRepository.getServiceDao().getWithCriteria(criteria).toList();
if (entries != null && entries.isEmpty()) { if (entries != null && !entries.isEmpty()) {
service.setDataset(dataset); service.setDataset(dataset);
service.getService().setCreated(new Date()); service.getService().setCreated(new Date());
service.setService(service.getService()); service.setService(service.getService());

View File

@ -29,6 +29,9 @@ public class RegistryManager {
} }
public Registry create(RegistryModel registryModel, Principal principal) throws Exception { public Registry create(RegistryModel registryModel, Principal principal) throws Exception {
if (registryModel.getLabel() == null || registryModel.getAbbreviation() == null || registryModel.getUri() == null) {
throw new Exception("Missing mandatory entity.");
}
Registry registry = registryModel.toDataModel(); Registry registry = registryModel.toDataModel();
registry.getCreationUser().setId(principal.getId()); registry.getCreationUser().setId(principal.getId());
return apiContext.getOperationsContext().getDatabaseRepository().getRegistryDao().createOrUpdate(registry); return apiContext.getOperationsContext().getDatabaseRepository().getRegistryDao().createOrUpdate(registry);

View File

@ -18,9 +18,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/**
* Created by ikalyvas on 9/3/2018.
*/
@Component @Component
public class ServiceManager { public class ServiceManager {

View File

@ -15,11 +15,13 @@ public class DataRepositoryModel implements DataModel<DataRepository, DataReposi
private UUID id; private UUID id;
@JsonProperty("name") @JsonProperty("name")
private String label; private String label;
private String pid;
private String abbreviation; private String abbreviation;
private String uri; private String uri;
private Date created; private Date created;
private Date modified; private Date modified;
private String tag; private String tag; // Api fetching the data
private String source; // Actual harvested source
public UUID getId() { public UUID getId() {
return id; return id;
@ -35,6 +37,13 @@ public class DataRepositoryModel implements DataModel<DataRepository, DataReposi
this.label = label; this.label = label;
} }
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getAbbreviation() { public String getAbbreviation() {
return abbreviation; return abbreviation;
} }
@ -70,13 +79,25 @@ public class DataRepositoryModel implements DataModel<DataRepository, DataReposi
this.tag = tag; this.tag = tag;
} }
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
@Override @Override
public DataRepositoryModel fromDataModel(DataRepository entity) { public DataRepositoryModel fromDataModel(DataRepository entity) {
this.setAbbreviation(entity.getAbbreviation()); this.setAbbreviation(entity.getAbbreviation());
this.setLabel(entity.getLabel()); this.setLabel(entity.getLabel());
this.setUri(entity.getUri()); this.setUri(entity.getUri());
this.setId(entity.getId()); this.setId(entity.getId());
this.tag = "Internal"; String source1 = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source1.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source1;
}
return this; return this;
} }
@ -88,7 +109,11 @@ public class DataRepositoryModel implements DataModel<DataRepository, DataReposi
dataRepository.setCreated(this.created != null ? this.created : new Date()); dataRepository.setCreated(this.created != null ? this.created : new Date());
dataRepository.setModified(new Date()); dataRepository.setModified(new Date());
dataRepository.setLabel(this.label); dataRepository.setLabel(this.label);
dataRepository.setReference("dmpdata/" + dataRepository.getId()); if (this.source.equals("Internal") || this.source.equals(this.id.toString().substring(0, this.source.length()))) {
dataRepository.setReference(this.id.toString());
} else {
dataRepository.setReference(this.source + ":" + this.id);
}
dataRepository.setUri(this.uri); dataRepository.setUri(this.uri);
dataRepository.setStatus((short) 0); dataRepository.setStatus((short) 0);
dataRepository.setCreationUser(new UserInfo()); dataRepository.setCreationUser(new UserInfo());

View File

@ -11,11 +11,12 @@ public class DataRepository implements DataModel<eu.eudat.data.entities.DataRepo
private String uri; private String uri;
private String info; private String info;
private String reference; private String reference;
private String tag;
private String source;
public String getPid() { public String getPid() {
return pid; return pid;
} }
public void setPid(String pid) { public void setPid(String pid) {
this.pid = pid; this.pid = pid;
} }
@ -23,7 +24,6 @@ public class DataRepository implements DataModel<eu.eudat.data.entities.DataRepo
public String getLabel() { public String getLabel() {
return label; return label;
} }
public void setLabel(String label) { public void setLabel(String label) {
this.label = label; this.label = label;
} }
@ -31,7 +31,6 @@ public class DataRepository implements DataModel<eu.eudat.data.entities.DataRepo
public String getUri() { public String getUri() {
return uri; return uri;
} }
public void setUri(String uri) { public void setUri(String uri) {
this.uri = uri; this.uri = uri;
} }
@ -39,7 +38,6 @@ public class DataRepository implements DataModel<eu.eudat.data.entities.DataRepo
public String getInfo() { public String getInfo() {
return info; return info;
} }
public void setInfo(String info) { public void setInfo(String info) {
this.info = info; this.info = info;
} }
@ -47,16 +45,35 @@ public class DataRepository implements DataModel<eu.eudat.data.entities.DataRepo
public String getReference() { public String getReference() {
return reference; return reference;
} }
public void setReference(String reference) { public void setReference(String reference) {
this.reference = reference; this.reference = reference;
} }
public String getTag() {
return tag;
}
public void setTag(String tag) {
this.tag = tag;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public DataRepository fromDataModel(eu.eudat.data.entities.DataRepository entity) { public DataRepository fromDataModel(eu.eudat.data.entities.DataRepository entity) {
this.pid = entity.getReference(); this.pid = entity.getReference();
this.label = entity.getLabel(); this.label = entity.getLabel();
this.uri = entity.getUri(); this.uri = entity.getUri();
this.reference = entity.getReference(); this.reference = entity.getReference();
String source1 = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source1.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source1;
}
return this; return this;
} }
@ -68,7 +85,12 @@ public class DataRepository implements DataModel<eu.eudat.data.entities.DataRepo
entity.setCreated(new Date()); entity.setCreated(new Date());
entity.setModified(new Date()); entity.setModified(new Date());
entity.setStatus((short) 0); entity.setStatus((short) 0);
entity.setReference("dmpdata/" + this.label); if (this.source == null) this.source = "dmp";
if (this.source.equals(this.reference.substring(0, this.source.length()))) {
entity.setReference(this.reference);
} else {
entity.setReference(this.source + ":" + this.reference);
}
return entity; return entity;
} }

View File

@ -13,6 +13,7 @@ public class Registry implements DataModel<eu.eudat.data.entities.Registry, Regi
private String reference; private String reference;
private String uri; private String uri;
private String definition; private String definition;
private String source;
public UUID getId() { public UUID getId() {
return id; return id;
@ -60,6 +61,13 @@ public class Registry implements DataModel<eu.eudat.data.entities.Registry, Regi
this.definition = definition; this.definition = definition;
} }
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public Registry fromDataModel(eu.eudat.data.entities.Registry entity) { public Registry fromDataModel(eu.eudat.data.entities.Registry entity) {
this.id = entity.getId(); this.id = entity.getId();
this.label = entity.getLabel(); this.label = entity.getLabel();
@ -67,6 +75,12 @@ public class Registry implements DataModel<eu.eudat.data.entities.Registry, Regi
this.reference = entity.getReference(); this.reference = entity.getReference();
this.uri = entity.getUri(); this.uri = entity.getUri();
this.definition = entity.getDefinition(); this.definition = entity.getDefinition();
String source1 = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source1.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source1;
}
return this; return this;
} }
@ -75,7 +89,12 @@ public class Registry implements DataModel<eu.eudat.data.entities.Registry, Regi
entity.setId(this.id != null ? this.id : UUID.randomUUID()); entity.setId(this.id != null ? this.id : UUID.randomUUID());
entity.setLabel(this.label); entity.setLabel(this.label);
entity.setAbbreviation(this.abbreviation); entity.setAbbreviation(this.abbreviation);
entity.setReference("dmpdata/" + this.label); if (this.source == null) this.source = "dmp";
if (this.source.equals(this.reference.substring(0, this.source.length()))) {
entity.setReference(this.reference);
} else {
entity.setReference(this.source + ":" + this.reference);
}
entity.setUri(this.uri); entity.setUri(this.uri);
entity.setModified(new Date()); entity.setModified(new Date());
entity.setStatus((short)0); entity.setStatus((short)0);

View File

@ -14,6 +14,7 @@ public class Service implements DataModel<eu.eudat.data.entities.Service, Servic
private String reference; private String reference;
private String uri; private String uri;
private String definition; private String definition;
private String source;
public UUID getId() { public UUID getId() {
return id; return id;
@ -57,6 +58,13 @@ public class Service implements DataModel<eu.eudat.data.entities.Service, Servic
this.definition = definition; this.definition = definition;
} }
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public Service fromDataModel(eu.eudat.data.entities.Service entity) { public Service fromDataModel(eu.eudat.data.entities.Service entity) {
this.id = entity.getId(); this.id = entity.getId();
this.label = entity.getLabel(); this.label = entity.getLabel();
@ -64,6 +72,12 @@ public class Service implements DataModel<eu.eudat.data.entities.Service, Servic
this.reference = entity.getReference(); this.reference = entity.getReference();
this.uri = entity.getUri(); this.uri = entity.getUri();
this.definition = entity.getDefinition(); this.definition = entity.getDefinition();
String source1 = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source1.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source1;
}
return this; return this;
} }
@ -72,7 +86,13 @@ public class Service implements DataModel<eu.eudat.data.entities.Service, Servic
entity.setId(this.id != null ? this.id : UUID.randomUUID()); entity.setId(this.id != null ? this.id : UUID.randomUUID());
entity.setLabel(this.label); entity.setLabel(this.label);
entity.setAbbreviation(this.abbreviation); entity.setAbbreviation(this.abbreviation);
entity.setReference("dmpdata/" + this.label); if (this.source == null) this.source = "dmp";
if (this.reference == null) this.reference = entity.getId().toString();
if (this.source.equals(this.reference.substring(0, this.source.length()))) {
entity.setReference(this.reference);
} else {
entity.setReference(this.source + ":" + this.reference);
}
entity.setUri(this.uri); entity.setUri(this.uri);
entity.setModified(new Date()); entity.setModified(new Date());
entity.setStatus((short)0); entity.setStatus((short)0);

View File

@ -202,14 +202,14 @@ public class DatasetWizardModel implements DataModel<Dataset, DatasetWizardModel
profile.setId(this.profile); profile.setId(this.profile);
entity.setProfile(profile); entity.setProfile(profile);
if (this.registries != null && !this.registries.isEmpty()) { if (this.registries != null && !this.registries.isEmpty()) {
entity.setRegistries(new HashSet<eu.eudat.data.entities.Registry>()); entity.setRegistries(new HashSet<>());
for (Registry registry : this.registries) { for (Registry registry : this.registries) {
entity.getRegistries().add(registry.toDataModel()); entity.getRegistries().add(registry.toDataModel());
} }
} }
if (this.dataRepositories != null && !this.dataRepositories.isEmpty()) { if (this.dataRepositories != null && !this.dataRepositories.isEmpty()) {
entity.setDatasetDataRepositories(new HashSet<DatasetDataRepository>()); entity.setDatasetDataRepositories(new HashSet<>());
for (DataRepository dataRepositoryModel : this.dataRepositories) { for (DataRepository dataRepositoryModel : this.dataRepositories) {
eu.eudat.data.entities.DataRepository dataRepository = dataRepositoryModel.toDataModel(); eu.eudat.data.entities.DataRepository dataRepository = dataRepositoryModel.toDataModel();
DatasetDataRepository datasetDataRepository = new DatasetDataRepository(); DatasetDataRepository datasetDataRepository = new DatasetDataRepository();
@ -224,7 +224,7 @@ public class DatasetWizardModel implements DataModel<Dataset, DatasetWizardModel
} }
if (this.services != null && !this.services.isEmpty()) { if (this.services != null && !this.services.isEmpty()) {
entity.setServices(new HashSet<DatasetService>()); entity.setServices(new HashSet<>());
for (Service serviceModel : this.services) { for (Service serviceModel : this.services) {
eu.eudat.data.entities.Service service = serviceModel.toDataModel(); eu.eudat.data.entities.Service service = serviceModel.toDataModel();
DatasetService datasetService = new DatasetService(); DatasetService datasetService = new DatasetService();
@ -234,7 +234,7 @@ public class DatasetWizardModel implements DataModel<Dataset, DatasetWizardModel
} }
if (this.externalDatasets != null && !this.externalDatasets.isEmpty()) { if (this.externalDatasets != null && !this.externalDatasets.isEmpty()) {
entity.setDatasetExternalDatasets(new HashSet<DatasetExternalDataset>()); entity.setDatasetExternalDatasets(new HashSet<>());
for (ExternalDatasetListingModel externalDataset : this.externalDatasets) { for (ExternalDatasetListingModel externalDataset : this.externalDatasets) {
ExternalDataset externalDatasetEntity = externalDataset.toDataModel(); ExternalDataset externalDatasetEntity = externalDataset.toDataModel();
DatasetExternalDataset datasetExternalDataset = new DatasetExternalDataset(); DatasetExternalDataset datasetExternalDataset = new DatasetExternalDataset();

View File

@ -53,7 +53,7 @@ public class Organisation implements DataModel<eu.eudat.data.entities.Organisati
this.name = entity.getLabel(); this.name = entity.getLabel();
this.label = entity.getUri(); this.label = entity.getUri();
if (entity.getReference().contains(":cristin")) { if (entity.getReference().contains(":cristin")) {
this.tag = "Cristin"; this.tag = "cristin";
} else { } else {
this.tag = entity.getReference().substring(0, entity.getReference().indexOf(":")); this.tag = entity.getReference().substring(0, entity.getReference().indexOf(":"));
} }

View File

@ -60,7 +60,7 @@ public class Researcher implements DataModel<eu.eudat.data.entities.Researcher,
this.status = entity.getStatus(); this.status = entity.getStatus();
if (entity.getReference().contains(":cristin")) { if (entity.getReference().contains(":cristin")) {
this.tag = "Cristin"; this.tag = "cristin";
} else { } else {
String source = entity.getReference().substring(0, entity.getReference().indexOf(":")); String source = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source.equals("dmp")) if (source.equals("dmp"))

View File

@ -7,20 +7,17 @@ import eu.eudat.models.DataModel;
import java.util.Date; import java.util.Date;
import java.util.UUID; import java.util.UUID;
/**
* Created by ikalyvas on 9/3/2018.
*/
public class ExternalDatasetModel implements DataModel<ExternalDataset, ExternalDatasetModel> { public class ExternalDatasetModel implements DataModel<ExternalDataset, ExternalDatasetModel> {
public UUID id; public UUID id;
public String label; public String label;
public String abbreviation; public String abbreviation;
public Date created; public Date created;
public Date modified; public Date modified;
private String source;
public UUID getId() { public UUID getId() {
return id; return id;
} }
public void setId(UUID id) { public void setId(UUID id) {
this.id = id; this.id = id;
} }
@ -28,7 +25,6 @@ public class ExternalDatasetModel implements DataModel<ExternalDataset, External
public String getLabel() { public String getLabel() {
return label; return label;
} }
public void setLabel(String label) { public void setLabel(String label) {
this.label = label; this.label = label;
} }
@ -36,7 +32,6 @@ public class ExternalDatasetModel implements DataModel<ExternalDataset, External
public String getAbbreviation() { public String getAbbreviation() {
return abbreviation; return abbreviation;
} }
public void setAbbreviation(String abbreviation) { public void setAbbreviation(String abbreviation) {
this.abbreviation = abbreviation; this.abbreviation = abbreviation;
} }
@ -44,7 +39,6 @@ public class ExternalDatasetModel implements DataModel<ExternalDataset, External
public Date getCreated() { public Date getCreated() {
return created; return created;
} }
public void setCreated(Date created) { public void setCreated(Date created) {
this.created = created; this.created = created;
} }
@ -52,11 +46,17 @@ public class ExternalDatasetModel implements DataModel<ExternalDataset, External
public Date getModified() { public Date getModified() {
return modified; return modified;
} }
public void setModified(Date modified) { public void setModified(Date modified) {
this.modified = modified; this.modified = modified;
} }
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
@Override @Override
public ExternalDatasetModel fromDataModel(ExternalDataset entity) { public ExternalDatasetModel fromDataModel(ExternalDataset entity) {
this.id = entity.getId(); this.id = entity.getId();
@ -64,6 +64,12 @@ public class ExternalDatasetModel implements DataModel<ExternalDataset, External
this.abbreviation = entity.getAbbreviation(); this.abbreviation = entity.getAbbreviation();
this.created = entity.getCreated(); this.created = entity.getCreated();
this.modified = new Date(); this.modified = new Date();
String source1 = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source1.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source1;
}
return this; return this;
} }
@ -75,7 +81,7 @@ public class ExternalDatasetModel implements DataModel<ExternalDataset, External
externalDataset.setModified(new Date()); externalDataset.setModified(new Date());
externalDataset.setId(this.id != null ? this.id : UUID.randomUUID()); externalDataset.setId(this.id != null ? this.id : UUID.randomUUID());
externalDataset.setLabel(this.label); externalDataset.setLabel(this.label);
externalDataset.setReference("dmpdata/" + externalDataset.getId()); externalDataset.setReference("dmp:" + externalDataset.getId());
externalDataset.setCreationUser(new UserInfo()); externalDataset.setCreationUser(new UserInfo());
return externalDataset; return externalDataset;
} }

View File

@ -1,5 +1,6 @@
package eu.eudat.models.data.registries; package eu.eudat.models.data.registries;
import com.fasterxml.jackson.annotation.JsonProperty;
import eu.eudat.data.entities.Registry; import eu.eudat.data.entities.Registry;
import eu.eudat.data.entities.UserInfo; import eu.eudat.data.entities.UserInfo;
import eu.eudat.models.DataModel; import eu.eudat.models.DataModel;
@ -8,17 +9,17 @@ import java.util.Date;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
/**
* Created by ikalyvas on 9/3/2018.
*/
public class RegistryModel implements DataModel<Registry, RegistryModel> { public class RegistryModel implements DataModel<Registry, RegistryModel> {
private UUID id; private UUID id;
private String name;
private String label; private String label;
private String pid;
private String abbreviation; private String abbreviation;
private String uri; private String uri;
private Date created; private Date created;
private Date modified; private Date modified;
private String tag; private String tag; // Api fetching the data
private String source; // Actual harvested source
public UUID getId() { public UUID getId() {
return id; return id;
@ -27,6 +28,13 @@ public class RegistryModel implements DataModel<Registry, RegistryModel> {
this.id = id; this.id = id;
} }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLabel() { public String getLabel() {
return label; return label;
} }
@ -69,15 +77,35 @@ public class RegistryModel implements DataModel<Registry, RegistryModel> {
this.tag = tag; this.tag = tag;
} }
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
@Override @Override
public RegistryModel fromDataModel(Registry entity) { public RegistryModel fromDataModel(Registry entity) {
this.id = entity.getId(); this.id = entity.getId();
this.abbreviation = entity.getAbbreviation(); this.abbreviation = entity.getAbbreviation();
this.created = entity.getCreated(); this.created = entity.getCreated();
this.label = entity.getLabel(); this.label = entity.getLabel();
this.name = entity.getLabel();
this.modified = entity.getModified(); this.modified = entity.getModified();
this.uri = entity.getUri(); this.uri = entity.getUri();
this.tag = "Internal"; String source1 = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source1.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source1;
}
return this; return this;
} }
@ -87,10 +115,15 @@ public class RegistryModel implements DataModel<Registry, RegistryModel> {
registry.setAbbreviation(this.abbreviation); registry.setAbbreviation(this.abbreviation);
registry.setCreated(this.created != null ? this.created : new Date()); registry.setCreated(this.created != null ? this.created : new Date());
registry.setId(this.id != null ? this.id : UUID.randomUUID()); registry.setId(this.id != null ? this.id : UUID.randomUUID());
registry.setLabel(this.label); registry.setLabel(this.label != null ? this.label : this.name);
registry.setUri(this.uri); registry.setUri(this.uri);
registry.setModified(new Date()); registry.setModified(new Date());
registry.setReference("dmpdata/" + registry.getId()); if (this.source == null) this.source = "dmp";
if (this.source.equals(registry.getId().toString().substring(0, this.source.length()))) {
registry.setReference(registry.getId().toString());
} else {
registry.setReference(this.source + ":" + registry.getId());
}
registry.setStatus((short)0); registry.setStatus((short)0);
registry.setCreationUser(new UserInfo()); registry.setCreationUser(new UserInfo());
return registry; return registry;

View File

@ -7,17 +7,18 @@ import eu.eudat.models.DataModel;
import java.util.Date; import java.util.Date;
import java.util.UUID; import java.util.UUID;
/**
* Created by ikalyvas on 9/3/2018.
*/
public class ServiceModel implements DataModel<Service, ServiceModel> { public class ServiceModel implements DataModel<Service, ServiceModel> {
private UUID id; private UUID id;
private String label; private String label;
private String name;
private String pid;
private String abbreviation; private String abbreviation;
private String uri; private String uri;
private Date created; private Date created;
private Date modified; private Date modified;
private String reference;
private String tag; private String tag;
private String source;
public UUID getId() { public UUID getId() {
return id; return id;
@ -33,6 +34,20 @@ public class ServiceModel implements DataModel<Service, ServiceModel> {
this.label = label; this.label = label;
} }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getAbbreviation() { public String getAbbreviation() {
return abbreviation; return abbreviation;
} }
@ -61,6 +76,13 @@ public class ServiceModel implements DataModel<Service, ServiceModel> {
this.modified = modified; this.modified = modified;
} }
public String getReference() {
return reference;
}
public void setReference(String reference) {
this.reference = reference;
}
public String getTag() { public String getTag() {
return tag; return tag;
} }
@ -68,15 +90,28 @@ public class ServiceModel implements DataModel<Service, ServiceModel> {
this.tag = tag; this.tag = tag;
} }
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
@Override @Override
public ServiceModel fromDataModel(Service entity) { public ServiceModel fromDataModel(Service entity) {
this.abbreviation = entity.getAbbreviation(); this.abbreviation = entity.getAbbreviation();
this.created = entity.getCreated(); this.created = entity.getCreated();
this.id = entity.getId(); this.id = entity.getId();
this.label = entity.getLabel(); this.label = entity.getLabel();
this.name = entity.getLabel();
this.modified = entity.getModified(); this.modified = entity.getModified();
this.uri = entity.getUri(); this.uri = entity.getUri();
this.tag = "Internal"; String source = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source;
}
return this; return this;
} }
@ -86,12 +121,18 @@ public class ServiceModel implements DataModel<Service, ServiceModel> {
service.setId(this.id != null ? this.id : UUID.randomUUID()); service.setId(this.id != null ? this.id : UUID.randomUUID());
service.setAbbreviation(this.abbreviation); service.setAbbreviation(this.abbreviation);
service.setCreated(this.created != null ? this.created : new Date()); service.setCreated(this.created != null ? this.created : new Date());
service.setLabel(this.label); service.setLabel(this.label != null ? this.label : this.name);
service.setModified(new Date()); service.setModified(new Date());
service.setUri(this.uri); service.setUri(this.uri);
service.setReference("innerdata/" + service.getId()); if (this.source == null) this.source = "dmp";
if (this.reference == null) this.reference = service.getId().toString();
if (this.source.equals(this.reference.substring(0, this.source.length()))) {
service.setReference(this.reference);
} else {
service.setReference(this.source + ":" + this.reference);
}
service.setModified(new Date()); service.setModified(new Date());
service.setStatus((short)0); service.setStatus((short) 0);
service.setCreationUser(new UserInfo()); service.setCreationUser(new UserInfo());
return service; return service;
} }

View File

@ -5,4 +5,5 @@ export interface DataRepositoryModel {
uri: string; uri: string;
pid: string; pid: string;
info: string; info: string;
source: string;
} }

View File

@ -7,4 +7,5 @@ export interface ExternalDatasetModel {
reference: String; reference: String;
type: ExternalDatasetType; type: ExternalDatasetType;
info: String; info: String;
} source: String;
}

View File

@ -3,7 +3,9 @@ export interface RegistryModel {
abbreviation: String; abbreviation: String;
definition: String; definition: String;
id: String; id: String;
pid: String;
label: String; label: String;
reference: String; reference: String;
uri: String; uri: String;
source: String;
} }

View File

@ -219,14 +219,16 @@ export class ExternalRegistryEditorModel {
public label: String; public label: String;
public reference: String; public reference: String;
public uri: String; public uri: String;
public source: String
constructor(abbreviation?: String, definition?: String, id?: String, label?: String, reference?: String, uri?: String) { constructor(abbreviation?: String, definition?: String, id?: String, label?: String, reference?: String, uri?: String, source?: String) {
this.abbreviation = abbreviation; this.abbreviation = abbreviation;
this.definition = definition; this.definition = definition;
this.id = id; this.id = id;
this.label = label; this.label = label;
this.reference = reference; this.reference = reference;
this.uri = uri; this.uri = uri;
this.source = source;
} }
fromModel(item: RegistryModel): ExternalRegistryEditorModel { fromModel(item: RegistryModel): ExternalRegistryEditorModel {
@ -234,8 +236,9 @@ export class ExternalRegistryEditorModel {
this.definition = item.definition; this.definition = item.definition;
this.id = item.id; this.id = item.id;
this.label = item.label; this.label = item.label;
this.reference = item.reference; this.reference = item.pid ? item.pid : item.reference;
this.uri = item.uri; this.uri = item.uri;
this.source = item.source
return this; return this;
} }
@ -247,7 +250,8 @@ export class ExternalRegistryEditorModel {
label: [this.label], label: [this.label],
reference: [this.reference], reference: [this.reference],
uri: [this.uri], uri: [this.uri],
definition: [this.definition] definition: [this.definition],
source: [this.source]
}); });
} }
} }
@ -261,14 +265,16 @@ export class ExternalDatasetEditorModel {
public type: ExternalDatasetType; public type: ExternalDatasetType;
public info: String; public info: String;
public validationErrorModel: ValidationErrorModel = new ValidationErrorModel(); public validationErrorModel: ValidationErrorModel = new ValidationErrorModel();
public source: String;
constructor(id?: string, abbreviation?: string, label?: string, reference?: string, info?: string, type?: ExternalDatasetType) { constructor(id?: string, abbreviation?: string, label?: string, reference?: string, info?: string, type?: ExternalDatasetType, source?: String) {
this.id = id; this.id = id;
this.label = label; this.label = label;
this.abbreviation = abbreviation; this.abbreviation = abbreviation;
this.reference = reference; this.reference = reference;
this.info = info; this.info = info;
this.type = type; this.type = type;
this.source = source;
} }
fromModel(item: ExternalDatasetModel): ExternalDatasetEditorModel { fromModel(item: ExternalDatasetModel): ExternalDatasetEditorModel {
@ -278,6 +284,7 @@ export class ExternalDatasetEditorModel {
this.reference = item.reference; this.reference = item.reference;
this.type = item.type; this.type = item.type;
this.info = item.info; this.info = item.info;
this.source = item.source;
return this; return this;
} }
@ -288,7 +295,8 @@ export class ExternalDatasetEditorModel {
label: [this.label], label: [this.label],
reference: [this.reference], reference: [this.reference],
type: [this.type, Validators.required], type: [this.type, Validators.required],
info: [this.info] info: [this.info],
source: [this.source]
}); });
} }
} }
@ -302,13 +310,15 @@ export class ExternalDataRepositoryEditorModel {
public info: string; public info: string;
public created: Date; public created: Date;
public modified: Date; public modified: Date;
public source: string;
constructor(id?: string, label?: string, abbreviation?: string, uri?: string, reference?: string) { constructor(id?: string, label?: string, abbreviation?: string, uri?: string, reference?: string, source?: string) {
this.id = id; this.id = id;
this.label = label; this.label = label;
this.abbreviation = abbreviation; this.abbreviation = abbreviation;
this.uri = uri; this.uri = uri;
this.reference = reference; this.reference = reference;
this.source = source;
} }
fromModel(item: DataRepositoryModel): ExternalDataRepositoryEditorModel { fromModel(item: DataRepositoryModel): ExternalDataRepositoryEditorModel {
@ -318,6 +328,7 @@ export class ExternalDataRepositoryEditorModel {
this.uri = item.uri; this.uri = item.uri;
this.info = item.info; this.info = item.info;
this.reference = item.pid; this.reference = item.pid;
this.source = item.source;
return this; return this;
} }
@ -328,7 +339,8 @@ export class ExternalDataRepositoryEditorModel {
abbreviation: [this.abbreviation], abbreviation: [this.abbreviation],
uri: [this.uri], uri: [this.uri],
info: [this.info], info: [this.info],
reference: [this.reference] reference: [this.reference],
source: [this.source]
}); });
} }
} }

View File

@ -70,7 +70,7 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl
initialItems: (type) => this.searchDatasetExternalDataRepositories('', type), initialItems: (type) => this.searchDatasetExternalDataRepositories('', type),
displayFn: (item) => item ? item.name : null, displayFn: (item) => item ? item.name : null,
titleFn: (item) => item ? item.name : null, titleFn: (item) => item ? item.name : null,
subtitleFn: (item) => item.tag ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.tag : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') subtitleFn: (item) => item.source ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.source : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE')
}; };
this.externalDatasetAutoCompleteConfiguration = { this.externalDatasetAutoCompleteConfiguration = {
@ -86,9 +86,9 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl
filterFn: this.searchDatasetExternalRegistries.bind(this), filterFn: this.searchDatasetExternalRegistries.bind(this),
removeAfterSelection: true, removeAfterSelection: true,
initialItems: (type) => this.searchDatasetExternalRegistries('', type), initialItems: (type) => this.searchDatasetExternalRegistries('', type),
displayFn: (item) => item ? item.label : null, displayFn: (item) => item ? item.name : null,
titleFn: (item) => item ? item.label: null, titleFn: (item) => item ? item.name : null,
subtitleFn: (item) => item.tag ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.tag : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') subtitleFn: (item) => item.source ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item.source : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE')
}; };
this.servicesAutoCompleteConfiguration = { this.servicesAutoCompleteConfiguration = {
@ -115,12 +115,12 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl
} }
externalDatasetsOnItemChange(event) { externalDatasetsOnItemChange(event) {
const externalDatasetModel = new ExternalDatasetEditorModel(event.id, event.abbreviation, event.label, event.reference); const externalDatasetModel = new ExternalDatasetEditorModel(event.id, event.abbreviation, event.label, event.reference, event.source);
(<FormArray>this.formGroup.get('externalDatasets')).push(externalDatasetModel.buildForm()); (<FormArray>this.formGroup.get('externalDatasets')).push(externalDatasetModel.buildForm());
} }
registriesOnItemChange(event) { registriesOnItemChange(event) {
const registryModel = new ExternalRegistryEditorModel(event.abbreviation, event.definition, event.id, event.label, event.reference, event.uri); const registryModel = new ExternalRegistryEditorModel(event.abbreviation, event.definition, event.id, event.name, event.pid ? event.pid : event.reference, event.uri, event.source);
(<FormArray>this.formGroup.get('registries')).push(registryModel.buildForm()); (<FormArray>this.formGroup.get('registries')).push(registryModel.buildForm());
} }
@ -136,7 +136,7 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl
dataRepositoriesOnItemChange(event) { dataRepositoriesOnItemChange(event) {
const dataRepositoryModel = new ExternalDataRepositoryEditorModel(event.id, event.name, event.abbreviation, event.uri, event.pid); const dataRepositoryModel = new ExternalDataRepositoryEditorModel(event.id, event.name, event.abbreviation, event.uri, event.pid, event.source);
(<FormArray>this.formGroup.get('dataRepositories')).push(dataRepositoryModel.buildForm()); (<FormArray>this.formGroup.get('dataRepositories')).push(dataRepositoryModel.buildForm());
} }