|
|
|
@ -7,18 +7,19 @@ import org.hibernate.annotations.Type;
|
|
|
|
|
|
|
|
|
|
import javax.persistence.*;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
@Entity
|
|
|
|
|
@Table(name = "\"Dataset\"")
|
|
|
|
|
@NamedEntityGraphs({
|
|
|
|
|
@NamedEntityGraph(
|
|
|
|
|
name = "datasetListingModel",
|
|
|
|
|
attributeNodes = {@NamedAttributeNode("services"), @NamedAttributeNode("dataRepositories"), @NamedAttributeNode("externalDatasets"), @NamedAttributeNode("registries"),
|
|
|
|
|
attributeNodes = {@NamedAttributeNode("services"), @NamedAttributeNode("datasetDataRepositories"), @NamedAttributeNode("datasetExternalDatasets"), @NamedAttributeNode("registries"),
|
|
|
|
|
@NamedAttributeNode(value = "dmp", subgraph = "dmp"), @NamedAttributeNode("profile"), @NamedAttributeNode("creator")},
|
|
|
|
|
subgraphs = @NamedSubgraph(name = "dmp", attributeNodes = {@NamedAttributeNode("creator"), @NamedAttributeNode("users")})),
|
|
|
|
|
@NamedEntityGraph(
|
|
|
|
|
name = "datasetWizardModel",
|
|
|
|
|
attributeNodes = {@NamedAttributeNode("services"), @NamedAttributeNode("dataRepositories"), @NamedAttributeNode("externalDatasets"), @NamedAttributeNode("registries"),
|
|
|
|
|
attributeNodes = {@NamedAttributeNode("services"), @NamedAttributeNode("datasetDataRepositories"), @NamedAttributeNode("datasetExternalDatasets"), @NamedAttributeNode("registries"),
|
|
|
|
|
@NamedAttributeNode("dmp"), @NamedAttributeNode("profile"), @NamedAttributeNode("creator")}),
|
|
|
|
|
@NamedEntityGraph(
|
|
|
|
|
name = "datasetRecentActivity",
|
|
|
|
@ -91,14 +92,6 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|
|
|
|
@Column(name = "\"Reference\"", columnDefinition = "xml", nullable = true)
|
|
|
|
|
private String reference;
|
|
|
|
|
|
|
|
|
|
@OneToMany(fetch = FetchType.LAZY)
|
|
|
|
|
@JoinTable(name = "\"DatasetDataRepository\"",
|
|
|
|
|
joinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")},
|
|
|
|
|
inverseJoinColumns = {@JoinColumn(name = "\"DataRepository\"", referencedColumnName = "\"ID\"")}
|
|
|
|
|
)
|
|
|
|
|
private Set<DataRepository> dataRepositories;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@OneToMany(fetch = FetchType.LAZY)
|
|
|
|
|
@JoinTable(name = "\"DatasetRegistry\"",
|
|
|
|
|
joinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")},
|
|
|
|
@ -107,19 +100,15 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|
|
|
|
private Set<Registry> registries;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@OneToMany(fetch = FetchType.LAZY)
|
|
|
|
|
@JoinTable(name = "\"DatasetService\"",
|
|
|
|
|
joinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")},
|
|
|
|
|
inverseJoinColumns = {@JoinColumn(name = "\"Service\"", referencedColumnName = "\"ID\"")}
|
|
|
|
|
)
|
|
|
|
|
private Set<Service> services;
|
|
|
|
|
@OneToMany(mappedBy = "dataset", cascade = CascadeType.ALL, orphanRemoval = true)
|
|
|
|
|
private Set<DatasetDataRepository> datasetDataRepositories;
|
|
|
|
|
|
|
|
|
|
@OneToMany(fetch = FetchType.LAZY)
|
|
|
|
|
@JoinTable(name = "\"DatasetExternalDataset\"",
|
|
|
|
|
joinColumns = {@JoinColumn(name = "\"Dataset\"", referencedColumnName = "\"ID\"")},
|
|
|
|
|
inverseJoinColumns = {@JoinColumn(name = "\"ExternalDataset\"", referencedColumnName = "\"Id\"")}
|
|
|
|
|
)
|
|
|
|
|
private Set<ExternalDataset> externalDatasets;
|
|
|
|
|
|
|
|
|
|
@OneToMany(mappedBy = "dataset", cascade = CascadeType.ALL, orphanRemoval = true)
|
|
|
|
|
private Set<DatasetService> services;
|
|
|
|
|
|
|
|
|
|
@OneToMany(mappedBy = "dataset", cascade = CascadeType.ALL, orphanRemoval = true)
|
|
|
|
|
private Set<DatasetExternalDataset> datasetExternalDatasets;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Column(name = "\"Status\"", nullable = false)
|
|
|
|
@ -198,17 +187,14 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|
|
|
|
this.registries = registries;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Set<Service> getServices() {
|
|
|
|
|
public Set<DatasetService> getServices() {
|
|
|
|
|
return services;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setServices(Set<Service> services) {
|
|
|
|
|
public void setServices(Set<DatasetService> services) {
|
|
|
|
|
this.services = services;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public UUID getId() {
|
|
|
|
|
return id;
|
|
|
|
|
}
|
|
|
|
@ -269,16 +255,14 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Set<DataRepository> getDataRepositories() {
|
|
|
|
|
return dataRepositories;
|
|
|
|
|
public Set<DatasetDataRepository> getDatasetDataRepositories() {
|
|
|
|
|
return datasetDataRepositories;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setDataRepositories(Set<DataRepository> dataRepositories) {
|
|
|
|
|
this.dataRepositories = dataRepositories;
|
|
|
|
|
public void setDatasetDataRepositories(Set<DatasetDataRepository> datasetDataRepositories) {
|
|
|
|
|
this.datasetDataRepositories = datasetDataRepositories;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getReference() {
|
|
|
|
|
return reference;
|
|
|
|
|
}
|
|
|
|
@ -288,12 +272,12 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|
|
|
|
this.reference = reference;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Set<ExternalDataset> getExternalDatasets() {
|
|
|
|
|
return externalDatasets;
|
|
|
|
|
public Set<DatasetExternalDataset> getDatasetExternalDatasets() {
|
|
|
|
|
return datasetExternalDatasets;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setExternalDatasets(Set<ExternalDataset> externalDatasets) {
|
|
|
|
|
this.externalDatasets = externalDatasets;
|
|
|
|
|
public void setDatasetExternalDatasets(Set<DatasetExternalDataset> datasetExternalDatasets) {
|
|
|
|
|
this.datasetExternalDatasets = datasetExternalDatasets;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean isPublic() {
|
|
|
|
@ -307,11 +291,19 @@ public class Dataset implements DataEntity<Dataset, UUID> {
|
|
|
|
|
@Override
|
|
|
|
|
public void update(Dataset entity) {
|
|
|
|
|
this.setRegistries(entity.getRegistries());
|
|
|
|
|
this.setDataRepositories(entity.getDataRepositories());
|
|
|
|
|
this.getDatasetDataRepositories().removeAll(this.getDatasetDataRepositories());
|
|
|
|
|
this.getDatasetDataRepositories().addAll(entity.getDatasetDataRepositories().stream().map(item->{
|
|
|
|
|
item.setDataset(this);
|
|
|
|
|
return item;
|
|
|
|
|
}).collect(Collectors.toList()));
|
|
|
|
|
this.setDescription(entity.getDescription());
|
|
|
|
|
this.setLabel(entity.getLabel());
|
|
|
|
|
this.setProperties(entity.getProperties());
|
|
|
|
|
this.setExternalDatasets(entity.getExternalDatasets());
|
|
|
|
|
this.getDatasetExternalDatasets().removeAll(this.getDatasetExternalDatasets());
|
|
|
|
|
this.getDatasetExternalDatasets().addAll(entity.getDatasetExternalDatasets().stream().map(item -> {
|
|
|
|
|
item.setDataset(this);
|
|
|
|
|
return item;
|
|
|
|
|
}).collect(Collectors.toList()));
|
|
|
|
|
this.setStatus(entity.getStatus());
|
|
|
|
|
this.setProfile(entity.getProfile());
|
|
|
|
|
this.setModified(new Date());
|
|
|
|
|