remove old code
This commit is contained in:
parent
fde91b6677
commit
55fb0f3e00
|
@ -18,7 +18,7 @@ import java.util.UUID;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "\"Dmp\"")
|
@Table(name = "\"Dmp\"")
|
||||||
public class DmpEntity extends TenantScopedBaseEntity implements DataEntity<DmpEntity, UUID> {
|
public class DmpEntity extends TenantScopedBaseEntity {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
@Column(name = "id", updatable = false, nullable = false, columnDefinition = "BINARY(16)")
|
@Column(name = "id", updatable = false, nullable = false, columnDefinition = "BINARY(16)")
|
||||||
|
@ -246,20 +246,4 @@ public class DmpEntity extends TenantScopedBaseEntity implements DataEntity<DmpE
|
||||||
public void setVersionStatus(DmpVersionStatus versionStatus) {
|
public void setVersionStatus(DmpVersionStatus versionStatus) {
|
||||||
this.versionStatus = versionStatus;
|
this.versionStatus = versionStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void update(DmpEntity entity) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public UUID getKeys() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity buildFromTuple(List<Tuple> tuple, List<String> fields, String base) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
package eu.eudat.data.dao.entities;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.data.dao.DatabaseAccessLayer;
|
|
||||||
import eu.eudat.data.dao.criteria.DataManagementPlanCriteria;
|
|
||||||
import eu.eudat.data.dao.criteria.DatasetWizardUserDmpCriteria;
|
|
||||||
import eu.eudat.data.UserEntity;
|
|
||||||
import eu.eudat.queryable.QueryableList;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public interface DMPDao extends DatabaseAccessLayer<DmpEntity, UUID> {
|
|
||||||
|
|
||||||
QueryableList<DmpEntity> getWithCriteria(DataManagementPlanCriteria criteria);
|
|
||||||
|
|
||||||
QueryableList<DmpEntity> getUserDmps(DatasetWizardUserDmpCriteria datasetWizardAutocompleteRequest, UserEntity userInfo);
|
|
||||||
|
|
||||||
QueryableList<DmpEntity> getAuthenticated(QueryableList<DmpEntity> query, UUID principalId, List<Integer> roles);
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,154 +0,0 @@
|
||||||
package eu.eudat.data.dao.entities;
|
|
||||||
|
|
||||||
import eu.eudat.commons.enums.DmpStatus;
|
|
||||||
import eu.eudat.commons.enums.IsActive;
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.data.dao.DatabaseAccess;
|
|
||||||
import eu.eudat.data.dao.criteria.DataManagementPlanCriteria;
|
|
||||||
import eu.eudat.data.dao.criteria.DatasetWizardUserDmpCriteria;
|
|
||||||
import eu.eudat.data.dao.databaselayer.service.DatabaseService;
|
|
||||||
import eu.eudat.data.UserEntity;
|
|
||||||
import eu.eudat.queryable.QueryableList;
|
|
||||||
import eu.eudat.queryable.types.FieldSelectionType;
|
|
||||||
import eu.eudat.queryable.types.SelectionField;
|
|
||||||
import eu.eudat.types.grant.GrantStateType;
|
|
||||||
import jakarta.persistence.criteria.Join;
|
|
||||||
import jakarta.persistence.criteria.JoinType;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.scheduling.annotation.Async;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import javax.management.InvalidApplicationException;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
|
||||||
|
|
||||||
@Component("dMPDao")
|
|
||||||
public class DMPDaoImpl extends DatabaseAccess<DmpEntity> implements DMPDao {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public DMPDaoImpl(DatabaseService<DmpEntity> databaseService) {
|
|
||||||
super(databaseService);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public QueryableList<DmpEntity> getWithCriteria(DataManagementPlanCriteria criteria) {
|
|
||||||
QueryableList<DmpEntity> query = getDatabaseService().getQueryable(DmpEntity.class);
|
|
||||||
if (criteria.getLike() != null && !criteria.getLike().isEmpty())
|
|
||||||
query.where((builder, root) -> builder.or(
|
|
||||||
builder.like(builder.upper(root.get("label")), "%" + criteria.getLike().toUpperCase() + "%"),
|
|
||||||
builder.like(builder.upper(root.get("description")), "%" + criteria.getLike().toUpperCase() + "%")));
|
|
||||||
if (criteria.getPeriodEnd() != null)
|
|
||||||
query.where((builder, root) -> builder.lessThan(root.get("created"), criteria.getPeriodEnd()));
|
|
||||||
if (criteria.getPeriodStart() != null)
|
|
||||||
query.where((builder, root) -> builder.greaterThan(root.get("created"), criteria.getPeriodStart()));
|
|
||||||
if (criteria.getProfile() != null)
|
|
||||||
query.where((builder, root) -> builder.equal(root.get("profile"), criteria.getProfile()));
|
|
||||||
// if (criteria.getGrants() != null && !criteria.getGrants().isEmpty()) //TODO
|
|
||||||
// query.where(((builder, root) -> root.get("grant").in(criteria.getGrants())));
|
|
||||||
if (!criteria.getAllVersions())
|
|
||||||
query.initSubQuery(String.class).where((builder, root) -> builder.equal(root.get("version"),
|
|
||||||
query.subQueryMax((builder1, externalRoot, nestedRoot) -> builder1.and(
|
|
||||||
builder1.equal(externalRoot.get("groupId"), nestedRoot.get("groupId")),
|
|
||||||
builder1.notEqual(nestedRoot.get("isActive"), IsActive.Inactive.getValue())), Arrays.asList(new SelectionField(FieldSelectionType.FIELD, "version")), Integer.class)));
|
|
||||||
if (criteria.getGroupIds() != null && !criteria.getGroupIds().isEmpty())
|
|
||||||
query.where((builder, root) -> root.get("groupId").in(criteria.getGroupIds()));
|
|
||||||
if (criteria.getStatus() != null) {
|
|
||||||
if (criteria.getStatus() == DmpStatus.Finalized.getValue().intValue()) {
|
|
||||||
query.where((builder, root) -> builder.equal(root.get("status"), DmpStatus.Finalized.getValue()));
|
|
||||||
} else if (criteria.getStatus() == DmpStatus.Draft.getValue().intValue()) {
|
|
||||||
query.where((builder, root) -> builder.equal(root.get("status"), DmpStatus.Draft.getValue()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (criteria.getIsPublic()) {
|
|
||||||
query.where(((builder, root) -> builder.equal(root.get("isPublic"), criteria.getIsPublic())));
|
|
||||||
}
|
|
||||||
/*if (criteria.getRole() != null) {
|
|
||||||
if (criteria.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())) {
|
|
||||||
query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).get("role"), UserDMP.UserDMPRoles.OWNER.getValue()));
|
|
||||||
} else if (criteria.getRole().equals(UserDMP.UserDMPRoles.USER.getValue())) {
|
|
||||||
query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).get("role"), UserDMP.UserDMPRoles.USER.getValue()));
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
if (criteria.getOrganisations() != null && !criteria.getOrganisations().isEmpty()) {
|
|
||||||
query.where((builder, root) -> root.join("organisations").get("reference").in(criteria.getOrganisations()));
|
|
||||||
}
|
|
||||||
if (criteria.getCollaborators() != null && !criteria.getCollaborators().isEmpty()) {
|
|
||||||
query.where((builder, root) -> root.join("users", JoinType.LEFT).join("user", JoinType.LEFT).get("id").in(criteria.getCollaborators()));
|
|
||||||
}
|
|
||||||
if (criteria.getDatasetTemplates() != null && !criteria.getDatasetTemplates().isEmpty()) {
|
|
||||||
query.where((builder, root) -> root.join("associatedDmps", JoinType.LEFT).get("id").in(criteria.getDatasetTemplates()));
|
|
||||||
}
|
|
||||||
if (criteria.getGrantStatus() != null) {
|
|
||||||
if (criteria.getGrantStatus().equals(GrantStateType.FINISHED.getValue().shortValue()))
|
|
||||||
query.where((builder, root) -> builder.lessThan(root.get("grant").get("enddate"), new Date()));
|
|
||||||
if (criteria.getGrantStatus().equals(GrantStateType.ONGOING.getValue().shortValue()))
|
|
||||||
query.where((builder, root) ->
|
|
||||||
builder.or(builder.greaterThan(root.get("grant").get("enddate"), new Date())
|
|
||||||
, builder.isNull(root.get("grant").get("enddate"))));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (criteria.hasDoi()) {
|
|
||||||
query.where((builder, root) -> builder.not(builder.isNull(root.join("dois").get("id"))));
|
|
||||||
}
|
|
||||||
query.where((builder, root) -> builder.notEqual(root.get("isActive"), IsActive.Inactive));
|
|
||||||
return query;
|
|
||||||
}
|
|
||||||
|
|
||||||
public QueryableList<DmpEntity> getAuthenticated(QueryableList<DmpEntity> query, UUID principal, List<Integer> roles) {
|
|
||||||
if (roles != null && !roles.isEmpty()) {
|
|
||||||
query.where((builder, root) -> {
|
|
||||||
Join userJoin = root.join("users", JoinType.LEFT);
|
|
||||||
return builder.and(builder.equal(userJoin.join("user", JoinType.LEFT).get("id"), principal), userJoin.get("role").in(roles));
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).join("user", JoinType.LEFT).get("id"), principal));
|
|
||||||
}
|
|
||||||
|
|
||||||
return query;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public DmpEntity createOrUpdate(DmpEntity item) {
|
|
||||||
return this.getDatabaseService().createOrUpdate(item, DmpEntity.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity find(UUID id) throws InvalidApplicationException {
|
|
||||||
return getDatabaseService().getQueryable(DmpEntity.class).where((builder, root) -> builder.equal((root.get("id")), id)).getSingle();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public QueryableList<DmpEntity> getUserDmps(DatasetWizardUserDmpCriteria datasetWizardUserDmpCriteria, UserEntity userInfo) {
|
|
||||||
QueryableList<DmpEntity> query = getDatabaseService().getQueryable(DmpEntity.class).where((builder, root) -> builder.or(builder.equal(root.get("creator"), userInfo), builder.isMember(userInfo, root.get("users"))));
|
|
||||||
if (datasetWizardUserDmpCriteria.getLike() != null && !datasetWizardUserDmpCriteria.getLike().isEmpty()) {
|
|
||||||
query.where((builder, root) -> builder.like(root.get("label"), "%" + datasetWizardUserDmpCriteria.getLike() + "%"));
|
|
||||||
}
|
|
||||||
return query;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void delete(DmpEntity item) {
|
|
||||||
this.getDatabaseService().delete(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public QueryableList<DmpEntity> asQueryable() {
|
|
||||||
return this.getDatabaseService().getQueryable(DmpEntity.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Async
|
|
||||||
@Override
|
|
||||||
public CompletableFuture<DmpEntity> createOrUpdateAsync(DmpEntity item) {
|
|
||||||
return CompletableFuture.supplyAsync(() -> this.createOrUpdate(item));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity find(UUID id, String hint) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -13,7 +13,7 @@ import java.util.Collection;
|
||||||
* Created by ikalyvas on 3/21/2018.
|
* Created by ikalyvas on 3/21/2018.
|
||||||
*/
|
*/
|
||||||
public class PaginationService {
|
public class PaginationService {
|
||||||
public static <T extends DataEntity> QueryableList<T> applyPaging(QueryableList<T> items, TableQuery tableRequest) {
|
public static <T> QueryableList<T> applyPaging(QueryableList<T> items, TableQuery tableRequest) {
|
||||||
if (tableRequest.getOrderings() != null) applyOrder(items, tableRequest);
|
if (tableRequest.getOrderings() != null) applyOrder(items, tableRequest);
|
||||||
if (tableRequest.getLength() != null) items.take(tableRequest.getLength());
|
if (tableRequest.getLength() != null) items.take(tableRequest.getLength());
|
||||||
if (tableRequest.getOffset() != null) items.skip(tableRequest.getOffset());
|
if (tableRequest.getOffset() != null) items.skip(tableRequest.getOffset());
|
||||||
|
@ -21,12 +21,12 @@ public class PaginationService {
|
||||||
items.withFields(Arrays.asList(tableRequest.getSelection().getFields()));
|
items.withFields(Arrays.asList(tableRequest.getSelection().getFields()));
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
public static <T extends DataEntity> void applyOrder(QueryableList<T> items, TableQuery tableRequest) {
|
public static <T> void applyOrder(QueryableList<T> items, TableQuery tableRequest) {
|
||||||
applyOrder(items, tableRequest.getOrderings());
|
applyOrder(items, tableRequest.getOrderings());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static <T extends DataEntity> void applyOrder(QueryableList<T> items, ColumnOrderings columnOrderings) {
|
public static <T> void applyOrder(QueryableList<T> items, ColumnOrderings columnOrderings) {
|
||||||
for (Ordering ordering : columnOrderings.getFieldOrderings()) {
|
for (Ordering ordering : columnOrderings.getFieldOrderings()) {
|
||||||
if (ordering.getOrderByType() == Ordering.OrderByType.ASC)
|
if (ordering.getOrderByType() == Ordering.OrderByType.ASC)
|
||||||
applyAscOrder(items, ordering);
|
applyAscOrder(items, ordering);
|
||||||
|
@ -37,7 +37,7 @@ public class PaginationService {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static <T extends DataEntity> void applyAscOrder(QueryableList<T> items, Ordering ordering) {
|
private static <T> void applyAscOrder(QueryableList<T> items, Ordering ordering) {
|
||||||
if (ordering.getColumnType() == Ordering.ColumnType.COUNT) {
|
if (ordering.getColumnType() == Ordering.ColumnType.COUNT) {
|
||||||
items.orderBy((builder, root) -> builder.asc(builder.size(root.<Collection>get(ordering.getFieldName()))));
|
items.orderBy((builder, root) -> builder.asc(builder.size(root.<Collection>get(ordering.getFieldName()))));
|
||||||
} else if (ordering.getColumnType() == Ordering.ColumnType.JOIN_COLUMN) {
|
} else if (ordering.getColumnType() == Ordering.ColumnType.JOIN_COLUMN) {
|
||||||
|
@ -48,7 +48,7 @@ public class PaginationService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static <T extends DataEntity> void applyDescOrder(QueryableList<T> items, Ordering ordering) {
|
private static <T> void applyDescOrder(QueryableList<T> items, Ordering ordering) {
|
||||||
if (ordering.getColumnType() == Ordering.ColumnType.COUNT) {
|
if (ordering.getColumnType() == Ordering.ColumnType.COUNT) {
|
||||||
items.orderBy((builder, root) -> builder.desc(builder.size(root.<Collection>get(ordering.getFieldName()))));
|
items.orderBy((builder, root) -> builder.desc(builder.size(root.<Collection>get(ordering.getFieldName()))));
|
||||||
} else if (ordering.getColumnType() == Ordering.ColumnType.JOIN_COLUMN) {
|
} else if (ordering.getColumnType() == Ordering.ColumnType.JOIN_COLUMN) {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import eu.eudat.data.old.queryableentity.DataEntity;
|
||||||
/**
|
/**
|
||||||
* Created by ikalyvas on 3/21/2018.
|
* Created by ikalyvas on 3/21/2018.
|
||||||
*/
|
*/
|
||||||
public interface Collector<T extends DataEntity> {
|
public interface Collector<T> {
|
||||||
QueryableList<T> collect() throws Exception;
|
QueryableList<T> collect() throws Exception;
|
||||||
|
|
||||||
QueryableList<T> collect(QueryableList<T> repo) throws Exception;
|
QueryableList<T> collect(QueryableList<T> repo) throws Exception;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import eu.eudat.data.old.queryableentity.DataEntity;
|
||||||
/**
|
/**
|
||||||
* Created by ikalyvas on 3/21/2018.
|
* Created by ikalyvas on 3/21/2018.
|
||||||
*/
|
*/
|
||||||
public interface CriteriaQuery<C extends Criteria<T>, T extends DataEntity> extends Collector<T> {
|
public interface CriteriaQuery<C extends Criteria<T>, T> extends Collector<T> {
|
||||||
|
|
||||||
QueryableList<T> applyCriteria();
|
QueryableList<T> applyCriteria();
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public abstract class Query<C extends Criteria<T>, T extends DataEntity> implements CriteriaQuery<C, T> {
|
public abstract class Query<C extends Criteria<T>, T> implements CriteriaQuery<C, T> {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(Query.class);
|
private static final Logger logger = LoggerFactory.getLogger(Query.class);
|
||||||
private C criteria;
|
private C criteria;
|
||||||
@ApiModelProperty(value = "query", name = "query", dataType = "String", hidden = true)
|
@ApiModelProperty(value = "query", name = "query", dataType = "String", hidden = true)
|
||||||
|
|
|
@ -7,6 +7,6 @@ import eu.eudat.data.old.queryableentity.DataEntity;
|
||||||
/**
|
/**
|
||||||
* Created by ikalyvas on 3/21/2018.
|
* Created by ikalyvas on 3/21/2018.
|
||||||
*/
|
*/
|
||||||
public interface TableCriteriaQuery<C extends Criteria<T>, T extends DataEntity> extends CriteriaQuery<C, T> {
|
public interface TableCriteriaQuery<C extends Criteria<T>, T> extends CriteriaQuery<C, T> {
|
||||||
QueryableList<T> applyPaging(QueryableList<T> items) ;
|
QueryableList<T> applyPaging(QueryableList<T> items) ;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import eu.eudat.data.old.queryableentity.DataEntity;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
|
|
||||||
public abstract class TableQuery<C extends Criteria<T>, T extends DataEntity<T, K>, K> extends Query<C, T> implements TableCriteriaQuery<C, T> {
|
public abstract class TableQuery<C extends Criteria<T>, T, K> extends Query<C, T> implements TableCriteriaQuery<C, T> {
|
||||||
private ColumnOrderings orderings;
|
private ColumnOrderings orderings;
|
||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
private SelectionFields selection;
|
private SelectionFields selection;
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
package eu.eudat.data.query.items.item.dataset;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.data.dao.criteria.DatasetWizardUserDmpCriteria;
|
|
||||||
import eu.eudat.data.query.definition.Query;
|
|
||||||
import eu.eudat.queryable.QueryableList;
|
|
||||||
|
|
||||||
public class DatasetWizardAutocompleteRequest extends Query<DatasetWizardUserDmpCriteria, DmpEntity> {
|
|
||||||
@Override
|
|
||||||
public QueryableList<DmpEntity> applyCriteria() {
|
|
||||||
QueryableList<DmpEntity> query = this.getQuery().where((builder, root) -> builder.or(builder.equal(root.get("creator"), this.getCriteria().getUserInfo()), builder.isMember(this.getCriteria().getUserInfo(), root.get("users"))));
|
|
||||||
if (this.getCriteria().getLike() != null && !this.getCriteria().getLike().isEmpty()) {
|
|
||||||
query.where((builder, root) -> builder.like(builder.upper(root.get("label")), "%" + this.getCriteria().getLike().toUpperCase() + "%"));
|
|
||||||
}
|
|
||||||
return query;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
package eu.eudat.data.query.items.table.dmp;
|
|
||||||
|
|
||||||
import eu.eudat.commons.enums.IsActive;
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.data.dao.criteria.DataManagementPlanCriteria;
|
|
||||||
import eu.eudat.data.query.PaginationService;
|
|
||||||
import eu.eudat.data.query.definition.TableQuery;
|
|
||||||
import eu.eudat.queryable.QueryableList;
|
|
||||||
import eu.eudat.queryable.types.FieldSelectionType;
|
|
||||||
import eu.eudat.queryable.types.SelectionField;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class DataManagementPlanTableRequest extends TableQuery<DataManagementPlanCriteria, DmpEntity, UUID> {
|
|
||||||
@Override
|
|
||||||
public QueryableList<DmpEntity> applyCriteria() {
|
|
||||||
QueryableList<DmpEntity> query = this.getQuery();
|
|
||||||
if (this.getCriteria().getLike() != null && !this.getCriteria().getLike().isEmpty())
|
|
||||||
query.where((builder, root) -> builder.or(
|
|
||||||
builder.like(builder.upper(root.get("label")), "%" + this.getCriteria().getLike().toUpperCase() + "%"),
|
|
||||||
builder.like(builder.upper(root.get("description")), "%" + this.getCriteria().getLike().toUpperCase() + "%")));
|
|
||||||
if (this.getCriteria().getPeriodEnd() != null)
|
|
||||||
query.where((builder, root) -> builder.lessThan(root.get("created"), this.getCriteria().getPeriodEnd()));
|
|
||||||
if (this.getCriteria().getPeriodStart() != null)
|
|
||||||
query.where((builder, root) -> builder.greaterThan(root.get("created"), this.getCriteria().getPeriodStart()));
|
|
||||||
// if (this.getCriteria().getGrants() != null && !this.getCriteria().getGrants().isEmpty())
|
|
||||||
// query.where(((builder, root) -> root.get("grant").in(this.getCriteria().getGrants()))); //TODO
|
|
||||||
if (!this.getCriteria().getAllVersions())
|
|
||||||
query.initSubQuery(String.class).where((builder, root) -> builder.equal(root.get("version"), query.<String>subQueryMax((builder1, externalRoot, nestedRoot) -> builder1.equal(externalRoot.get("groupId"), nestedRoot.get("groupId")), Arrays.asList(new SelectionField(FieldSelectionType.FIELD, "version")), String.class)));
|
|
||||||
if (this.getCriteria().getGroupIds() != null && !this.getCriteria().getGroupIds().isEmpty())
|
|
||||||
query.where((builder, root) -> root.get("groupId").in(this.getCriteria().getGroupIds()));
|
|
||||||
query.where((builder, root) -> builder.notEqual(root.get("isActive"), IsActive.Inactive.getValue()));
|
|
||||||
return query;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public QueryableList<DmpEntity> applyPaging(QueryableList<DmpEntity> items) {
|
|
||||||
return PaginationService.applyPaging(items, this);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
package eu.eudat.data.query.items.table.dmp;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.data.dao.criteria.DataManagementPlanPublicCriteria;
|
|
||||||
import eu.eudat.data.query.PaginationService;
|
|
||||||
import eu.eudat.data.query.definition.TableQuery;
|
|
||||||
import eu.eudat.queryable.QueryableList;
|
|
||||||
import eu.eudat.queryable.types.FieldSelectionType;
|
|
||||||
import eu.eudat.queryable.types.SelectionField;
|
|
||||||
import eu.eudat.types.grant.GrantStateType;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class DataManagmentPlanPublicTableRequest extends TableQuery<DataManagementPlanPublicCriteria, DmpEntity, UUID> {
|
|
||||||
|
|
||||||
public QueryableList<DmpEntity> applyCriteria() {
|
|
||||||
QueryableList<DmpEntity> query = this.getQuery();
|
|
||||||
query.where((builder, root) -> builder.equal(root.get("isPublic"), true));
|
|
||||||
if (this.getCriteria().getLike() != null && !this.getCriteria().getLike().isEmpty())
|
|
||||||
query.where((builder, root) -> builder.or(
|
|
||||||
builder.like(builder.upper(root.get("label")), "%" + this.getCriteria().getLike().toUpperCase() + "%"),
|
|
||||||
builder.like(builder.upper(root.get("description")), "%" + this.getCriteria().getLike().toUpperCase() + "%")));
|
|
||||||
if (this.getCriteria().getGrants() != null && !this.getCriteria().getGrants().isEmpty())
|
|
||||||
query.where(((builder, root) -> root.get("grant").get("id").in(this.getCriteria().getGrants())));
|
|
||||||
if (this.getCriteria().getGrantStatus() != null) {
|
|
||||||
if (this.getCriteria().getGrantStatus().getValue().equals(GrantStateType.FINISHED.getValue()))
|
|
||||||
query.where((builder, root) -> builder.lessThan(root.get("grant").get("enddate"), new Date()));
|
|
||||||
if (this.getCriteria().getGrantStatus().getValue().equals(GrantStateType.ONGOING.getValue()))
|
|
||||||
query.where((builder, root) ->
|
|
||||||
builder.or(builder.greaterThan(root.get("grant").get("enddate"), new Date())
|
|
||||||
, builder.isNull(root.get("grant").get("enddate"))));
|
|
||||||
}
|
|
||||||
if (this.getCriteria().datasetProfile != null && !this.getCriteria().datasetProfile.isEmpty())
|
|
||||||
query.where((builder, root) -> root.join("associatedDmps").get("id").in(this.getCriteria().datasetProfile));
|
|
||||||
if (this.getCriteria().getDmpOrganisations() != null && !this.getCriteria().getDmpOrganisations().isEmpty())
|
|
||||||
query.where(((builder, root) -> root.join("organisations").get("reference").in(this.getCriteria().getDmpOrganisations())));
|
|
||||||
if (!this.getCriteria().getAllVersions()) {
|
|
||||||
query.initSubQuery(String.class).where((builder, root) -> builder.equal(root.get("version"),
|
|
||||||
query.<String>subQueryMax((builder1, externalRoot, nestedRoot) -> builder1.and(builder1.equal(externalRoot.get("groupId"),
|
|
||||||
nestedRoot.get("groupId")), builder1.equal(nestedRoot.get("isPublic"), true)), Arrays.asList(new SelectionField(FieldSelectionType.FIELD, "version")), String.class)));
|
|
||||||
}
|
|
||||||
if (this.getCriteria().getGroupIds() != null && !this.getCriteria().getGroupIds().isEmpty()) {
|
|
||||||
query.where((builder, root) -> root.get("groupId").in(this.getCriteria().getGroupIds()));
|
|
||||||
}
|
|
||||||
return query;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public QueryableList<DmpEntity> applyPaging(QueryableList<DmpEntity> items) {
|
|
||||||
return PaginationService.applyPaging(items, this);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,135 +0,0 @@
|
||||||
package eu.eudat.query;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.data.dao.DatabaseAccessLayer;
|
|
||||||
import eu.eudat.data.DescriptionEntity;
|
|
||||||
import eu.eudat.queryable.QueryableList;
|
|
||||||
import eu.eudat.queryable.types.FieldSelectionType;
|
|
||||||
import eu.eudat.queryable.types.SelectionField;
|
|
||||||
|
|
||||||
import jakarta.persistence.criteria.Subquery;
|
|
||||||
|
|
||||||
import javax.management.InvalidApplicationException;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class DMPQuery extends Query<DmpEntity, UUID> {
|
|
||||||
private UUID id;
|
|
||||||
private UUID groupId;
|
|
||||||
private String label;
|
|
||||||
private int version;
|
|
||||||
// private UserQueryOld userQuery;
|
|
||||||
private DatasetQuery datasetQuery;
|
|
||||||
private List<Integer> statuses;
|
|
||||||
private Date created;
|
|
||||||
private Date modified;
|
|
||||||
|
|
||||||
public DMPQuery(DatabaseAccessLayer<DmpEntity, UUID> databaseAccessLayer) {
|
|
||||||
super(databaseAccessLayer);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DMPQuery(DatabaseAccessLayer<DmpEntity, UUID> databaseAccessLayer, List<String> selectionFields) {
|
|
||||||
super(databaseAccessLayer, selectionFields);
|
|
||||||
}
|
|
||||||
|
|
||||||
public UUID getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(UUID id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UUID getGroupId() {
|
|
||||||
return groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGroupId(UUID groupId) {
|
|
||||||
this.groupId = groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(int version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public List<Integer> getStatuses() {
|
|
||||||
return statuses;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatuses(List<Integer> statuses) {
|
|
||||||
statuses = statuses;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getCreated() {
|
|
||||||
return created;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreated(Date created) {
|
|
||||||
this.created = created;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getModified() {
|
|
||||||
return modified;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setModified(Date modified) {
|
|
||||||
this.modified = modified;
|
|
||||||
}
|
|
||||||
|
|
||||||
// public UserQueryOld getUserQuery() {
|
|
||||||
// return userQuery;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setUserQuery(UserQueryOld userQuery) {
|
|
||||||
// this.userQuery = userQuery;
|
|
||||||
// }
|
|
||||||
|
|
||||||
public DatasetQuery getDatasetQuery() {
|
|
||||||
return datasetQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasetQuery(DatasetQuery datasetQuery) {
|
|
||||||
this.datasetQuery = datasetQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
public QueryableList<DmpEntity> getQuery() throws InvalidApplicationException {
|
|
||||||
QueryableList<DmpEntity> query = this.databaseAccessLayer.asQueryable();
|
|
||||||
if (this.id != null) {
|
|
||||||
query.where((builder, root) -> builder.equal(root.get("id"), this.id));
|
|
||||||
}
|
|
||||||
// if (this.grantQuery != null) { //TODO
|
|
||||||
// Subquery<Grant> grantQuery = this.grantQuery.getQuery().query(Arrays.asList(new SelectionField(FieldSelectionType.FIELD, "id")));
|
|
||||||
// query.where((builder, root) -> root.get("grant").get("id").in(grantQuery));
|
|
||||||
// }
|
|
||||||
if (this.getStatuses() != null && !this.getStatuses().isEmpty()) {
|
|
||||||
query.where((builder, root) -> root.get("status").in(this.getStatuses()));
|
|
||||||
}
|
|
||||||
// if (this.userQuery != null) {
|
|
||||||
// Subquery<UserEntity> userInfoSubQuery = this.userQuery.getQuery().query(Arrays.asList(new SelectionField(FieldSelectionType.FIELD, "id")));
|
|
||||||
// query.where((builder, root) -> root.get("creator").get("id").in(userInfoSubQuery));
|
|
||||||
// }
|
|
||||||
if(this.datasetQuery != null){
|
|
||||||
Subquery<DescriptionEntity> datasetSubQuery = this.datasetQuery.getQuery().query(Arrays.asList(new SelectionField(FieldSelectionType.COMPOSITE_FIELD, "dmp:id")));
|
|
||||||
query.where((builder, root) -> root.get("id").in(datasetSubQuery ));
|
|
||||||
}
|
|
||||||
if (!this.getSelectionFields().isEmpty() && this.getSelectionFields() != null) {
|
|
||||||
query.withFields(this.getSelectionFields());
|
|
||||||
}
|
|
||||||
return query;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -18,7 +18,6 @@ public class DatasetQuery extends Query<DescriptionEntity, UUID> {
|
||||||
|
|
||||||
private UUID id;
|
private UUID id;
|
||||||
private String label;
|
private String label;
|
||||||
private DMPQuery dmpQuery;
|
|
||||||
|
|
||||||
public DatasetQuery(DatabaseAccessLayer<DescriptionEntity, UUID> databaseAccessLayer) {
|
public DatasetQuery(DatabaseAccessLayer<DescriptionEntity, UUID> databaseAccessLayer) {
|
||||||
super(databaseAccessLayer);
|
super(databaseAccessLayer);
|
||||||
|
@ -44,13 +43,6 @@ public class DatasetQuery extends Query<DescriptionEntity, UUID> {
|
||||||
this.label = label;
|
this.label = label;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DMPQuery getDmpQuery() {
|
|
||||||
return dmpQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDmpQuery(DMPQuery dmpQuery) {
|
|
||||||
this.dmpQuery = dmpQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public QueryableList<DescriptionEntity> getQuery() throws InvalidApplicationException {
|
public QueryableList<DescriptionEntity> getQuery() throws InvalidApplicationException {
|
||||||
|
@ -58,10 +50,6 @@ public class DatasetQuery extends Query<DescriptionEntity, UUID> {
|
||||||
if (this.id != null) {
|
if (this.id != null) {
|
||||||
query.where((builder, root) -> builder.equal(root.get("id"), this.id));
|
query.where((builder, root) -> builder.equal(root.get("id"), this.id));
|
||||||
}
|
}
|
||||||
if (this.dmpQuery != null) {
|
|
||||||
Subquery<DmpEntity> dmpSubQuery = this.dmpQuery.getQuery().query(Arrays.asList(new SelectionField(FieldSelectionType.FIELD, "id")));
|
|
||||||
query.where((builder, root) -> root.get("dmp").get("id").in(dmpSubQuery));
|
|
||||||
}
|
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
public interface QueryableList<T extends DataEntity> {
|
public interface QueryableList<T> {
|
||||||
QueryableList<T> where(SinglePredicate<T> predicate);
|
QueryableList<T> where(SinglePredicate<T> predicate);
|
||||||
|
|
||||||
<R> List<R> select(SelectPredicate<T, R> predicate) throws InvalidApplicationException;
|
<R> List<R> select(SelectPredicate<T, R> predicate) throws InvalidApplicationException;
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
package eu.eudat.controllers;
|
package eu.eudat.controllers;
|
||||||
|
|
||||||
import eu.eudat.logic.services.ApiContext;
|
import eu.eudat.logic.services.ApiContext;
|
||||||
import eu.eudat.models.validators.*;
|
|
||||||
import org.springframework.web.bind.WebDataBinder;
|
|
||||||
import org.springframework.web.bind.annotation.InitBinder;
|
|
||||||
|
|
||||||
|
|
||||||
public abstract class BaseController {
|
public abstract class BaseController {
|
||||||
|
@ -18,12 +15,4 @@ public abstract class BaseController {
|
||||||
|
|
||||||
this.apiContext = apiContext;
|
this.apiContext = apiContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
@InitBinder()
|
|
||||||
protected void initBinder(WebDataBinder binder) {
|
|
||||||
if (binder.getTarget() != null && DataManagementPlanTableRequestValidator.supportsType((binder.getTarget().getClass())))
|
|
||||||
binder.addValidators(this.apiContext.getOperationsContext().getApplicationContext().getBean("dataManagementPlanTableRequestValidator", DataManagementPlanTableRequestValidator.class));
|
|
||||||
if (binder.getTarget() != null && DataManagementPlanNewVersionValidator.supportsType((binder.getTarget().getClass())))
|
|
||||||
binder.addValidators(this.apiContext.getOperationsContext().getApplicationContext().getBean("dataManagementPlanNewVersionValidator", DataManagementPlanNewVersionValidator.class));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,417 +0,0 @@
|
||||||
package eu.eudat.controllers;
|
|
||||||
|
|
||||||
|
|
||||||
import eu.eudat.authorization.Permission;
|
|
||||||
import eu.eudat.criteria.DMPCriteria;
|
|
||||||
import eu.eudat.data.DescriptionEntity;
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.data.query.items.table.dmp.DataManagementPlanTableRequest;
|
|
||||||
import eu.eudat.exceptions.datamanagementplan.DMPNewVersionException;
|
|
||||||
import eu.eudat.exceptions.datamanagementplan.DMPWithDatasetsDeleteException;
|
|
||||||
import eu.eudat.exceptions.security.UnauthorisedException;
|
|
||||||
import eu.eudat.logic.managers.DataManagementPlanManager;
|
|
||||||
import eu.eudat.logic.proxy.config.configloaders.ConfigLoader;
|
|
||||||
import eu.eudat.logic.services.ApiContext;
|
|
||||||
import eu.eudat.logic.services.operations.DatabaseRepository;
|
|
||||||
import eu.eudat.model.DmpUser;
|
|
||||||
import eu.eudat.model.file.FileEnvelope;
|
|
||||||
import eu.eudat.models.data.datasetwizard.DatasetsToBeFinalized;
|
|
||||||
import eu.eudat.models.data.dmp.DataManagementPlan;
|
|
||||||
import eu.eudat.models.data.helpers.common.DataTableData;
|
|
||||||
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
|
||||||
import eu.eudat.models.data.listingmodels.DataManagementPlanListingModel;
|
|
||||||
import eu.eudat.models.data.listingmodels.DataManagementPlanOverviewModel;
|
|
||||||
import eu.eudat.models.data.listingmodels.VersionListingModel;
|
|
||||||
import eu.eudat.query.DMPQuery;
|
|
||||||
import eu.eudat.types.ApiMessageCode;
|
|
||||||
import gr.cite.commons.web.authz.service.AuthorizationService;
|
|
||||||
import jakarta.activation.MimetypesFileTypeMap;
|
|
||||||
import jakarta.validation.Valid;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.core.env.Environment;
|
|
||||||
import org.springframework.http.HttpHeaders;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
import javax.management.InvalidApplicationException;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static org.springframework.http.MediaType.*;
|
|
||||||
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@CrossOrigin
|
|
||||||
@RequestMapping(value = {"/api/dmps/"})
|
|
||||||
public class DMPs extends BaseController {
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(DMPs.class);
|
|
||||||
|
|
||||||
private Environment environment;
|
|
||||||
private DataManagementPlanManager dataManagementPlanManager;
|
|
||||||
private ConfigLoader configLoader;
|
|
||||||
private final AuthorizationService authorizationService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public DMPs(ApiContext apiContext, Environment environment,
|
|
||||||
DataManagementPlanManager dataManagementPlanManager, ConfigLoader configLoader, AuthorizationService authorizationService) {
|
|
||||||
super(apiContext);
|
|
||||||
this.environment = environment;
|
|
||||||
this.dataManagementPlanManager = dataManagementPlanManager;
|
|
||||||
this.configLoader = configLoader;
|
|
||||||
this.authorizationService = authorizationService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Data Retrieval
|
|
||||||
* */
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = {"/paged"}, consumes = "application/json", produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<DataTableData<DataManagementPlanListingModel>>> getPaged(@Valid @RequestBody DataManagementPlanTableRequest dataManagementPlanTableRequest,
|
|
||||||
@RequestParam String fieldsGroup) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.ManagerRole, Permission.UserRole, Permission.AnonymousRole);
|
|
||||||
|
|
||||||
DataTableData<DataManagementPlanListingModel> dataTable = this.dataManagementPlanManager.getPaged(dataManagementPlanTableRequest, fieldsGroup);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataTableData<DataManagementPlanListingModel>>().status(ApiMessageCode.NO_MESSAGE).payload(dataTable));
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"{id}"})
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity getSingle(@PathVariable String id, @RequestHeader("Content-Type") String contentType) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.ManagerRole, Permission.UserRole, Permission.AnonymousRole);
|
|
||||||
|
|
||||||
if (contentType.equals("application/xml") || contentType.equals("application/msword")) {
|
|
||||||
return this.dataManagementPlanManager.getDocument(id, contentType, this.configLoader);
|
|
||||||
} else {
|
|
||||||
eu.eudat.models.data.dmp.DataManagementPlan dataManagementPlan = this.dataManagementPlanManager.getSingle(id, false, true);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataManagementPlan>().status(ApiMessageCode.NO_MESSAGE).payload(dataManagementPlan));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"/plain/{id}"})
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity getSingleNoDatasets(@PathVariable String id, @RequestHeader("Content-Type") String contentType) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.ManagerRole, Permission.UserRole, Permission.AnonymousRole);
|
|
||||||
|
|
||||||
eu.eudat.models.data.dmp.DataManagementPlan dataManagementPlan = this.dataManagementPlanManager.getSingle(id, false, false);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataManagementPlan>().status(ApiMessageCode.NO_MESSAGE).payload(dataManagementPlan));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// @RequestMapping(method = RequestMethod.POST, value = {"/datasetProfilesUsedByDmps/paged"}, produces = "application/json")
|
|
||||||
// public @ResponseBody
|
|
||||||
// ResponseEntity<ResponseItem<DataTableData<DatasetProfileListingModel>>> getUsingDatasetProfilesPaged(@RequestBody DatasetProfileTableRequestItem datasetProfileTableRequestItem) throws InvalidApplicationException {
|
|
||||||
// this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
//
|
|
||||||
// DataTableData<DatasetProfileListingModel> datasetProfileTableData = this.dataManagementPlanManager.getDatasetProfilesUsedByDMP(datasetProfileTableRequestItem);
|
|
||||||
// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataTableData<DatasetProfileListingModel>>().status(ApiMessageCode.NO_MESSAGE).payload(datasetProfileTableData));
|
|
||||||
// }
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"/overview/{id}"})
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity getOverviewSingle(@PathVariable String id) {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.ManagerRole, Permission.UserRole, Permission.AnonymousRole);
|
|
||||||
try {
|
|
||||||
DataManagementPlanOverviewModel dataManagementPlan = this.dataManagementPlanManager.getOverviewSingle(id, false);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataManagementPlanOverviewModel>().status(ApiMessageCode.NO_MESSAGE).payload(dataManagementPlan));
|
|
||||||
} catch (Exception e) {
|
|
||||||
if (e instanceof UnauthorisedException) {
|
|
||||||
return ResponseEntity.status(HttpStatus.FORBIDDEN).body(new ResponseItem<DataManagementPlanOverviewModel>().status(ApiMessageCode.ERROR_MESSAGE));
|
|
||||||
} else {
|
|
||||||
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ResponseItem<DataManagementPlanOverviewModel>().status(ApiMessageCode.ERROR_MESSAGE));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"/public/{id}"})
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity getSinglePublic(@PathVariable String id) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.ManagerRole, Permission.UserRole, Permission.AnonymousRole);
|
|
||||||
// try {
|
|
||||||
eu.eudat.models.data.dmp.DataManagementPlan dataManagementPlan = this.dataManagementPlanManager.getSingle(id, true, true);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataManagementPlan>().status(ApiMessageCode.NO_MESSAGE).payload(dataManagementPlan));
|
|
||||||
// } catch (Exception ex) {
|
|
||||||
// return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<DataManagementPlan>().status(ApiMessageCode.NO_MESSAGE).message(ex.getMessage()));
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"/publicOverview/{id}"})
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<DataManagementPlanOverviewModel>> getOverviewSinglePublic(@PathVariable String id) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.ManagerRole, Permission.UserRole, Permission.AnonymousRole);
|
|
||||||
// try {
|
|
||||||
DataManagementPlanOverviewModel dataManagementPlan = this.dataManagementPlanManager.getOverviewSingle(id, true);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataManagementPlanOverviewModel>().status(ApiMessageCode.NO_MESSAGE).payload(dataManagementPlan));
|
|
||||||
// } catch (Exception ex) {
|
|
||||||
// return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<DataManagementPlanOverviewModel>().status(ApiMessageCode.NO_MESSAGE).message(ex.getMessage()));
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
// @RequestMapping(method = RequestMethod.POST, value = {"/dynamic"}, consumes = "application/json", produces = "application/json")
|
|
||||||
// public @ResponseBody
|
|
||||||
// ResponseEntity<ResponseItem<List<Tuple<String, String>>>> getWithCriteria(@RequestBody RequestItem<DynamicFieldsCriteria> criteriaRequestItem) throws InstantiationException, IllegalAccessException {
|
|
||||||
// this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
//
|
|
||||||
// List<Tuple<String, String>> dataTable = this.dataManagementPlanManager.getDynamicFields(criteriaRequestItem.getCriteria().getId(), this.dynamicGrantConfiguration, criteriaRequestItem.getCriteria());
|
|
||||||
// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<List<Tuple<String, String>>>().status(ApiMessageCode.NO_MESSAGE).payload(dataTable));
|
|
||||||
// }
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"/versions/{id}"}, consumes = "application/json", produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<List<VersionListingModel>>> getVersions(@PathVariable(value= "id") String groupId, @RequestParam(value= "public") Boolean isPublic) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.ManagerRole, Permission.UserRole, Permission.AnonymousRole);
|
|
||||||
List<VersionListingModel> versions = this.dataManagementPlanManager.getAllVersions(groupId, isPublic);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<List<VersionListingModel>>().status(ApiMessageCode.NO_MESSAGE).payload(versions));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Data Export
|
|
||||||
* */
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"rda/{id}"})
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity getRDAJsonDocument(@PathVariable String id) {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.ManagerRole, Permission.UserRole, Permission.AnonymousRole);
|
|
||||||
try {
|
|
||||||
FileEnvelope rdaJsonDocument = this.dataManagementPlanManager.getRDAJsonDocument(id);
|
|
||||||
|
|
||||||
HttpHeaders responseHeaders = new HttpHeaders();
|
|
||||||
responseHeaders.setContentLength(rdaJsonDocument.getFile().length());
|
|
||||||
responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
|
|
||||||
responseHeaders.set("Content-Disposition", "attachment;filename=" + rdaJsonDocument.getFilename());
|
|
||||||
responseHeaders.set("Access-Control-Expose-Headers", "Content-Disposition");
|
|
||||||
responseHeaders.get("Access-Control-Expose-Headers").add("Content-Type");
|
|
||||||
|
|
||||||
InputStream resource = new FileInputStream(rdaJsonDocument.getFile());
|
|
||||||
byte[] content = org.apache.poi.util.IOUtils.toByteArray(resource);
|
|
||||||
resource.close();
|
|
||||||
Files.deleteIfExists(rdaJsonDocument.getFile().toPath());
|
|
||||||
|
|
||||||
return new ResponseEntity<>(content, responseHeaders, HttpStatus.OK);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return ResponseEntity.status(HttpStatus.EXPECTATION_FAILED).body(new ResponseItem<>().message(e.getMessage()).status(ApiMessageCode.ERROR_MESSAGE));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"/getPDF/{id}"})
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<byte[]> getPDFDocument(@PathVariable String id, @RequestHeader("Content-Type") String contentType) throws IllegalAccessException, IOException, InstantiationException, InterruptedException, InvalidApplicationException {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.ManagerRole, Permission.UserRole, Permission.AnonymousRole);
|
|
||||||
FileEnvelope file = this.dataManagementPlanManager.getWordDocument(id, configLoader);
|
|
||||||
String name = file.getFilename().substring(0, file.getFilename().length() - 5).replace(" ", "_").replace(",", "_");
|
|
||||||
File pdffile = null; //PDFUtils.convertToPDF(file, environment); //TODO
|
|
||||||
InputStream resource = new FileInputStream(pdffile);
|
|
||||||
logger.info("Mime Type of " + name + " is " +
|
|
||||||
new MimetypesFileTypeMap().getContentType(file.getFile()));
|
|
||||||
HttpHeaders responseHeaders = new HttpHeaders();
|
|
||||||
responseHeaders.setContentLength(pdffile.length());
|
|
||||||
responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
|
|
||||||
responseHeaders.set("Content-Disposition", "attachment;filename=" + name + ".pdf");
|
|
||||||
responseHeaders.set("Access-Control-Expose-Headers", "Content-Disposition");
|
|
||||||
responseHeaders.get("Access-Control-Expose-Headers").add("Content-Type");
|
|
||||||
|
|
||||||
byte[] content = org.apache.poi.util.IOUtils.toByteArray(resource);
|
|
||||||
resource.close();
|
|
||||||
Files.deleteIfExists(file.getFile().toPath());
|
|
||||||
Files.deleteIfExists(pdffile.toPath());
|
|
||||||
return new ResponseEntity<>(content, responseHeaders, HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Data Management
|
|
||||||
* */
|
|
||||||
|
|
||||||
@Transactional
|
|
||||||
@RequestMapping(method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<eu.eudat.models.data.dmp.DataManagementPlan>> createOrUpdate(@RequestBody eu.eudat.models.data.dmp.DataManagementPlanEditorModel dataManagementPlanEditorModel) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
DmpEntity dmp = this.dataManagementPlanManager.createOrUpdate(dataManagementPlanEditorModel);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<eu.eudat.models.data.dmp.DataManagementPlan>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Created").payload(new eu.eudat.models.data.dmp.DataManagementPlan().fromDataModel(dmp)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
|
||||||
@RequestMapping(method = RequestMethod.POST, path = "full", consumes = "application/json", produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<UUID>> createOrUpdateWithDatasets(@RequestBody eu.eudat.models.data.dmp.DataManagementPlanEditorModel dataManagementPlanEditorModel) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
DmpEntity dmp = this.dataManagementPlanManager.createOrUpdateWithDatasets(dataManagementPlanEditorModel);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<UUID>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Created").payload(dmp.getId()));
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = {"/new/{id}"}, consumes = "application/json", produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<UUID>> newVersion(@PathVariable UUID id, @Valid @RequestBody eu.eudat.models.data.dmp.DataManagementPlanNewVersionModel dataManagementPlan) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
try {
|
|
||||||
UUID result = this.dataManagementPlanManager.newVersion(id, dataManagementPlan);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<UUID>().status(ApiMessageCode.NO_MESSAGE).payload(result));
|
|
||||||
} catch (DMPNewVersionException exception) {
|
|
||||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<UUID>().status(ApiMessageCode.ERROR_MESSAGE).message(exception.getMessage()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = {"/clone/{id}"}, consumes = "application/json", produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<UUID>> clone(@PathVariable UUID id, @RequestBody eu.eudat.models.data.dmp.DataManagementPlanNewVersionModel dataManagementPlan) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
UUID cloneId = this.dataManagementPlanManager.clone(id, dataManagementPlan);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<UUID>().status(ApiMessageCode.SUCCESS_MESSAGE).payload(cloneId));
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.DELETE, value = {"{id}"}, consumes = "application/json", produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<DmpEntity>> delete(@PathVariable UUID id) {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
try {
|
|
||||||
this.dataManagementPlanManager.delete(id);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Successfully Deleted Datamanagement Plan"));
|
|
||||||
} catch (DMPWithDatasetsDeleteException | IOException | InvalidApplicationException exception) {
|
|
||||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.ERROR_MESSAGE).message(exception.getMessage()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = {"/upload"})
|
|
||||||
public ResponseEntity<ResponseItem> dmpUpload(@RequestParam("file") MultipartFile[] files, @RequestParam(name = "profiles", required = false)String[] profiles) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
if (files[0].getContentType().equals(APPLICATION_JSON.toString())) {
|
|
||||||
this.dataManagementPlanManager.createFromRDA(files, profiles);
|
|
||||||
} else if (files[0].getContentType().equals(APPLICATION_ATOM_XML.toString()) || files[0].getContentType().equals(TEXT_XML.toString())) {
|
|
||||||
this.dataManagementPlanManager.createDmpFromXml(files, profiles);
|
|
||||||
} else {
|
|
||||||
return ResponseEntity.badRequest().body(new ResponseItem().status(ApiMessageCode.ERROR_MESSAGE).message("File format is not supported"));
|
|
||||||
}
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<List>()
|
|
||||||
.status(ApiMessageCode.SUCCESS_MESSAGE));
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"/makepublic/{id}"})
|
|
||||||
public ResponseEntity<ResponseItem<DmpEntity>> makePublic(@PathVariable String id) {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
try {
|
|
||||||
this.dataManagementPlanManager.makePublic(UUID.fromString(id));
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Successfully Data Datamanagement Plan made public."));
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(e.getMessage(), e);
|
|
||||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.ERROR_MESSAGE).message("Failed to make Data Management Plan public."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = {"/finalize/{id}"})
|
|
||||||
public ResponseEntity<ResponseItem<DmpEntity>> makeFinalize(@PathVariable String id, @RequestBody DatasetsToBeFinalized datasetsToBeFinalized) {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
try {
|
|
||||||
this.dataManagementPlanManager.makeFinalize(UUID.fromString(id), datasetsToBeFinalized);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Successfully Data Datamanagement Plan made finalized."));
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(e.getMessage(), e);
|
|
||||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.ERROR_MESSAGE).message("Failed to finalize Data Management Plan."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = {"/unfinalize/{id}"})
|
|
||||||
public ResponseEntity<ResponseItem<DmpEntity>> undoFinalize(@PathVariable String id) {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
try {
|
|
||||||
this.dataManagementPlanManager.undoFinalize(UUID.fromString(id));
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Successfully Data Datamanagement Plan made active."));
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(e.getMessage(), e);
|
|
||||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.ERROR_MESSAGE).message("Failed to unfinalize the Data Management Plan."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = {"/updateusers/{id}"})
|
|
||||||
public ResponseEntity<ResponseItem<DmpEntity>> updateUsers(@PathVariable String id, @RequestBody List<DmpUser> users) {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
try {
|
|
||||||
this.dataManagementPlanManager.updateUsers(UUID.fromString(id), users);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Successfully Updated Colaborators for Data Datamanagement Plan."));
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(e.getMessage(), e);
|
|
||||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<DmpEntity>().status(ApiMessageCode.ERROR_MESSAGE).message("Failed to update the users of Data Management Plan."));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Data Index
|
|
||||||
* */
|
|
||||||
|
|
||||||
@Transactional
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = {"/index"})
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<DescriptionEntity>> generateIndex() throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
//this.dataManagementPlanManager.generateIndex(); //TODO
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DescriptionEntity>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Generated").payload(null));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
|
||||||
@RequestMapping(method = RequestMethod.DELETE, value = {"/index"})
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<DescriptionEntity>> clearIndex() throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AuthenticatedRole);
|
|
||||||
|
|
||||||
//this.dataManagementPlanManager.clearIndex(); //TODO
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DescriptionEntity>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Cleared").payload(null));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Misc
|
|
||||||
* */
|
|
||||||
|
|
||||||
@RequestMapping(method = RequestMethod.POST, value = {"/test"}, consumes = "application/json", produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<DataTableData<Map>>> test(@RequestBody DMPCriteria criteria) throws Exception {
|
|
||||||
this.authorizationService.authorizeForce(Permission.AnonymousRole);
|
|
||||||
|
|
||||||
DatabaseRepository dbRepo = this.getApiContext().getOperationsContext().getDatabaseRepository();
|
|
||||||
|
|
||||||
DMPQuery query = criteria.buildQuery(dbRepo);
|
|
||||||
|
|
||||||
List<Map> models = query.getQuery().toListWithFields();
|
|
||||||
DataTableData<Map> dmp = new DataTableData<>();
|
|
||||||
dmp.setData(models);
|
|
||||||
dmp.setTotalCount(query.getQuery().count());
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataTableData<Map>>().status(ApiMessageCode.NO_MESSAGE).payload(dmp));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*@RequestMapping(method = RequestMethod.POST, value = {"/public/paged"}, consumes = "application/json", produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<DataTableData<DataManagementPlanListingModel>>> getPublicPaged(@RequestBody DataManagmentPlanPublicTableRequest dmpTableRequest,
|
|
||||||
@ClaimedAuthorities(claims = {Authorities.ADMIN, Authorities.MANAGER, Authorities.USER, Authorities.ANONYMOUS}) Principal principal,
|
|
||||||
@RequestParam String fieldsGroup) throws Exception {
|
|
||||||
DataTableData<DataManagementPlanListingModel> dmp = this.dataManagementPlanManager.getPublicPaged(dmpTableRequest, fieldsGroup, principal);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataTableData<DataManagementPlanListingModel>>().status(ApiMessageCode.NO_MESSAGE).payload(dmp));
|
|
||||||
}*/
|
|
||||||
/*@Transactional
|
|
||||||
@RequestMapping(method = RequestMethod.GET, value = {"{id}/unlock"}, produces = "application/json")
|
|
||||||
public @ResponseBody
|
|
||||||
ResponseEntity<ResponseItem<DMP>> unlock(@PathVariable(value = "id") UUID id) throws Exception {
|
|
||||||
this.dataManagementPlanManager.unlock(id);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DMP>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Unlocked"));
|
|
||||||
}*/
|
|
||||||
}
|
|
|
@ -24,6 +24,7 @@ import eu.eudat.models.data.datasetwizard.DatasetWizardModel;
|
||||||
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
||||||
import eu.eudat.query.DescriptionTemplateQuery;
|
import eu.eudat.query.DescriptionTemplateQuery;
|
||||||
import eu.eudat.query.DmpDescriptionTemplateQuery;
|
import eu.eudat.query.DmpDescriptionTemplateQuery;
|
||||||
|
import eu.eudat.query.DmpQuery;
|
||||||
import eu.eudat.types.ApiMessageCode;
|
import eu.eudat.types.ApiMessageCode;
|
||||||
import gr.cite.commons.web.authz.service.AuthorizationService;
|
import gr.cite.commons.web.authz.service.AuthorizationService;
|
||||||
import gr.cite.tools.data.query.QueryFactory;
|
import gr.cite.tools.data.query.QueryFactory;
|
||||||
|
@ -145,7 +146,7 @@ public class FileController {
|
||||||
throw new NoSuchElementException("No dataset with id " + fileUpload.getEntityId() + " found. This dataset was related to the file with id " + id);
|
throw new NoSuchElementException("No dataset with id " + fileUpload.getEntityId() + " found. This dataset was related to the file with id " + id);
|
||||||
}
|
}
|
||||||
|
|
||||||
DmpEntity dmp = databaseRepository.getDmpDao().find(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId());
|
DmpEntity dmp = this.queryFactory.query(DmpQuery.class).ids(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId()).first();
|
||||||
|
|
||||||
if (!dmp.getAccessType().equals(DmpAccessType.Public)
|
if (!dmp.getAccessType().equals(DmpAccessType.Public)
|
||||||
//TODO
|
//TODO
|
||||||
|
|
|
@ -4,12 +4,9 @@ package eu.eudat.controllers;
|
||||||
import eu.eudat.authorization.Permission;
|
import eu.eudat.authorization.Permission;
|
||||||
import eu.eudat.commons.scope.user.UserScope;
|
import eu.eudat.commons.scope.user.UserScope;
|
||||||
import eu.eudat.data.DescriptionTemplateEntity;
|
import eu.eudat.data.DescriptionTemplateEntity;
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.logic.managers.DatasetManager;
|
import eu.eudat.logic.managers.DatasetManager;
|
||||||
import eu.eudat.logic.managers.QuickWizardManager;
|
import eu.eudat.logic.managers.QuickWizardManager;
|
||||||
import eu.eudat.logic.services.ApiContext;
|
import eu.eudat.logic.services.ApiContext;
|
||||||
import eu.eudat.models.data.datasetwizard.DatasetWizardModel;
|
|
||||||
import eu.eudat.models.data.dmp.DataManagementPlan;
|
|
||||||
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
||||||
import eu.eudat.models.data.quickwizard.DatasetCreateWizardModel;
|
import eu.eudat.models.data.quickwizard.DatasetCreateWizardModel;
|
||||||
import eu.eudat.models.data.quickwizard.DatasetDescriptionQuickWizardModel;
|
import eu.eudat.models.data.quickwizard.DatasetDescriptionQuickWizardModel;
|
||||||
|
@ -86,17 +83,17 @@ public class QuickWizardController extends BaseController {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
//Create Dmp
|
//Create Dmp
|
||||||
DataManagementPlan dataManagementPlan = quickWizard.getDmp().toDataDmp(/*grantEntity,*/ userScope);
|
// DataManagementPlan dataManagementPlan = quickWizard.getDmp().toDataDmp(/*grantEntity,*/ userScope);
|
||||||
DmpEntity dmpEntity = this.quickWizardManager.createOrUpdate(dataManagementPlan/*, funderEntity*/);
|
// DmpEntity dmpEntity = this.quickWizardManager.createOrUpdate(dataManagementPlan/*, funderEntity*/);
|
||||||
|
//
|
||||||
//Create Datasets
|
// //Create Datasets
|
||||||
quickWizard.getDmp().setId(dmpEntity.getId());
|
// quickWizard.getDmp().setId(dmpEntity.getId());
|
||||||
for (DatasetDescriptionQuickWizardModel dataset : quickWizard.getDatasets().getDatasetsList()) {
|
// for (DatasetDescriptionQuickWizardModel dataset : quickWizard.getDatasets().getDatasetsList()) {
|
||||||
DataManagementPlan dmp = quickWizard.getDmp().toDataDmp(/*grantEntity , projectEntity, */ userScope);
|
// DataManagementPlan dmp = quickWizard.getDmp().toDataDmp(/*grantEntity , projectEntity, */ userScope);
|
||||||
DescriptionTemplateEntity profile = quickWizard.getDmp().getDatasetProfile();
|
// DescriptionTemplateEntity profile = quickWizard.getDmp().getDatasetProfile();
|
||||||
DatasetWizardModel datasetWizardModel = dataset.toDataModel(dmp, profile);
|
// DatasetWizardModel datasetWizardModel = dataset.toDataModel(dmp, profile);
|
||||||
this.datasetManager.createOrUpdate(datasetWizardModel);
|
// this.datasetManager.createOrUpdate(datasetWizardModel);
|
||||||
}
|
// }
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<QuickWizardModel>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Created"));
|
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<QuickWizardModel>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Created"));
|
||||||
}
|
}
|
||||||
|
@ -108,9 +105,9 @@ public class QuickWizardController extends BaseController {
|
||||||
|
|
||||||
for(DatasetDescriptionQuickWizardModel dataset : datasetCreateWizardModel.getDatasets().getDatasetsList()){
|
for(DatasetDescriptionQuickWizardModel dataset : datasetCreateWizardModel.getDatasets().getDatasetsList()){
|
||||||
DescriptionTemplateEntity profile = new DescriptionTemplateEntity();
|
DescriptionTemplateEntity profile = new DescriptionTemplateEntity();
|
||||||
profile.setId(datasetCreateWizardModel.getDmpMeta().getDatasetProfile().getId());
|
// profile.setId(datasetCreateWizardModel.getDmpMeta().getDatasetProfile().getId());
|
||||||
profile.setLabel(datasetCreateWizardModel.getDmpMeta().getDatasetProfile().getLabel());
|
// profile.setLabel(datasetCreateWizardModel.getDmpMeta().getDatasetProfile().getLabel());
|
||||||
this.datasetManager.createOrUpdate(dataset.toDataModel(datasetCreateWizardModel.getDmpMeta().getDmp(), profile));
|
this.datasetManager.createOrUpdate(dataset.toDataModel(profile));
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DatasetCreateWizardModel>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Dataset added!"));
|
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DatasetCreateWizardModel>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Dataset added!"));
|
||||||
|
|
|
@ -1,141 +0,0 @@
|
||||||
package eu.eudat.criteria;
|
|
||||||
|
|
||||||
import eu.eudat.criteria.entities.Criteria;
|
|
||||||
import eu.eudat.criteria.entities.DateCriteria;
|
|
||||||
import eu.eudat.logic.services.operations.DatabaseRepository;
|
|
||||||
import eu.eudat.query.DMPQuery;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
public class DMPCriteria {
|
|
||||||
private Criteria<UUID> id;
|
|
||||||
private Criteria<UUID> groupId;
|
|
||||||
private Criteria<String> label;
|
|
||||||
private Criteria<Integer> version;
|
|
||||||
private DateCriteria created;
|
|
||||||
private DateCriteria modified;
|
|
||||||
private UserCriteria creator;
|
|
||||||
private DatasetCriteria dataset;
|
|
||||||
|
|
||||||
public Criteria<UUID> getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(Criteria<UUID> id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
Criteria<UUID> criteria = new Criteria<>();
|
|
||||||
criteria.setAs(id);
|
|
||||||
this.id = criteria;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria<UUID> getGroupId() {
|
|
||||||
return groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGroupId(Criteria<UUID> groupId) {
|
|
||||||
this.groupId = groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGroupId(String groupId) {
|
|
||||||
Criteria<UUID> criteria = new Criteria<>();
|
|
||||||
criteria.setAs(groupId);
|
|
||||||
this.groupId = criteria;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria<String> getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLabel(Criteria<String> label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLabel(String label) {
|
|
||||||
Criteria<String> criteria = new Criteria<>();
|
|
||||||
criteria.setAs(label);
|
|
||||||
this.label = criteria;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria<Integer> getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(Criteria<Integer> version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(String version) {
|
|
||||||
Criteria<Integer> criteria = new Criteria<>();
|
|
||||||
criteria.setAs(version);
|
|
||||||
this.version = criteria;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DateCriteria getCreated() {
|
|
||||||
return created;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreated(DateCriteria created) {
|
|
||||||
this.created = created;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreated(String created) {
|
|
||||||
DateCriteria criteria = new DateCriteria();
|
|
||||||
criteria.setAs(created);
|
|
||||||
this.created = criteria;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DateCriteria getModified() {
|
|
||||||
return modified;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setModified(DateCriteria modified) {
|
|
||||||
this.modified = modified;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setModified(String modified) {
|
|
||||||
DateCriteria criteria = new DateCriteria();
|
|
||||||
criteria.setAs(modified);
|
|
||||||
this.modified = criteria;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UserCriteria getCreator() {
|
|
||||||
return creator;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCreator(UserCriteria creator) {
|
|
||||||
this.creator = creator;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DatasetCriteria getDataset() {
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataset(DatasetCriteria dataset) {
|
|
||||||
this.dataset = dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected List<String> buildFields(String path) {
|
|
||||||
Set<String> fields = new LinkedHashSet<>();
|
|
||||||
path = path != null && !path.isEmpty() ? path + "." : "";
|
|
||||||
if (this.id != null) fields.add(path + this.id.getAs());
|
|
||||||
if (this.label != null) fields.add(path + this.label.getAs());
|
|
||||||
// if (this.grant != null) fields.addAll(this.grant.buildFields(path + "grant"));
|
|
||||||
if (this.creator != null) fields.addAll(this.creator.buildFields(path + "creator"));
|
|
||||||
if (this.dataset != null) fields.addAll(this.dataset.buildFields(path + "dataset"));
|
|
||||||
if (!fields.contains(path + "id")) fields.add(path + "id");
|
|
||||||
return new LinkedList<>(fields);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DMPQuery buildQuery(DatabaseRepository dao) {
|
|
||||||
List<String> fields = this.buildFields("");
|
|
||||||
DMPQuery dmpQuery = new DMPQuery(dao.getDmpDao(), fields);
|
|
||||||
if (this.id != null) dmpQuery.setId(this.id.getValue());
|
|
||||||
// if (this.grant != null) dmpQuery.setGrantQuery(this.grant.buildQuery(dao));
|
|
||||||
// if (this.creator != null) dmpQuery.setUserQuery(this.creator.buildQuery(dao));
|
|
||||||
if (this.dataset != null) dmpQuery.setDatasetQuery(this.dataset.buildQuery(dao));
|
|
||||||
return dmpQuery;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -15,7 +15,6 @@ import java.util.*;
|
||||||
public class DatasetCriteria {
|
public class DatasetCriteria {
|
||||||
private Criteria<UUID> id;
|
private Criteria<UUID> id;
|
||||||
private Criteria<String> label;
|
private Criteria<String> label;
|
||||||
private DMPCriteria dmp;
|
|
||||||
|
|
||||||
public Criteria<UUID> getId() {
|
public Criteria<UUID> getId() {
|
||||||
return id;
|
return id;
|
||||||
|
@ -49,20 +48,12 @@ public class DatasetCriteria {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public DMPCriteria getDmp() {
|
|
||||||
return dmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDmp(DMPCriteria dmp) {
|
|
||||||
this.dmp = dmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected List<String> buildFields(String path) {
|
protected List<String> buildFields(String path) {
|
||||||
Set<String> fields = new HashSet<>();
|
Set<String> fields = new HashSet<>();
|
||||||
path = path != null && !path.isEmpty() ? path + "." : "";
|
path = path != null && !path.isEmpty() ? path + "." : "";
|
||||||
if (this.id != null) fields.add(path + this.id.getAs());
|
if (this.id != null) fields.add(path + this.id.getAs());
|
||||||
if (this.label != null) fields.add(path + this.label.getAs());
|
if (this.label != null) fields.add(path + this.label.getAs());
|
||||||
if (this.dmp != null) fields.addAll(this.dmp.buildFields(path + "dmp"));
|
|
||||||
if (!fields.contains(path + "id")) fields.add(path + "id");
|
if (!fields.contains(path + "id")) fields.add(path + "id");
|
||||||
return new LinkedList<>(fields);
|
return new LinkedList<>(fields);
|
||||||
}
|
}
|
||||||
|
@ -71,7 +62,6 @@ public class DatasetCriteria {
|
||||||
List<String> fields = this.buildFields("");
|
List<String> fields = this.buildFields("");
|
||||||
DatasetQuery datasetQuery = new DatasetQuery(dao.getDatasetDao(), fields);
|
DatasetQuery datasetQuery = new DatasetQuery(dao.getDatasetDao(), fields);
|
||||||
if (this.id != null) datasetQuery.setId(this.id.getValue());
|
if (this.id != null) datasetQuery.setId(this.id.getValue());
|
||||||
if (this.dmp != null) datasetQuery.setDmpQuery(this.dmp.buildQuery(dao));
|
|
||||||
return datasetQuery;
|
return datasetQuery;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -41,6 +41,7 @@ import eu.eudat.models.data.listingmodels.DatasetListingModel;
|
||||||
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
|
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
|
||||||
import eu.eudat.query.DescriptionTemplateQuery;
|
import eu.eudat.query.DescriptionTemplateQuery;
|
||||||
import eu.eudat.query.DmpDescriptionTemplateQuery;
|
import eu.eudat.query.DmpDescriptionTemplateQuery;
|
||||||
|
import eu.eudat.query.DmpQuery;
|
||||||
import eu.eudat.query.DmpUserQuery;
|
import eu.eudat.query.DmpUserQuery;
|
||||||
import eu.eudat.queryable.QueryableList;
|
import eu.eudat.queryable.QueryableList;
|
||||||
import eu.eudat.types.MetricNames;
|
import eu.eudat.types.MetricNames;
|
||||||
|
@ -288,7 +289,7 @@ public class DatasetManager {
|
||||||
DatasetWizardModel dataset = new DatasetWizardModel();
|
DatasetWizardModel dataset = new DatasetWizardModel();
|
||||||
DescriptionEntity descriptionEntityEntity = databaseRepository.getDatasetDao().find(UUID.fromString(id), HintedModelFactory.getHint(DatasetWizardModel.class));
|
DescriptionEntity descriptionEntityEntity = databaseRepository.getDatasetDao().find(UUID.fromString(id), HintedModelFactory.getHint(DatasetWizardModel.class));
|
||||||
;
|
;
|
||||||
DmpEntity dmp = databaseRepository.getDmpDao().find(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId());
|
DmpEntity dmp = this.queryFactory.query(DmpQuery.class).ids(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId()).first();
|
||||||
if (
|
if (
|
||||||
//TODO
|
//TODO
|
||||||
// dmp.getUsers()
|
// dmp.getUsers()
|
||||||
|
@ -314,11 +315,11 @@ public class DatasetManager {
|
||||||
|
|
||||||
// Iterate through the versions and remove those that are not included in the DMP of the dataset in question.
|
// Iterate through the versions and remove those that are not included in the DMP of the dataset in question.
|
||||||
for (DescriptionTemplateEntity version : profileVersions) {
|
for (DescriptionTemplateEntity version : profileVersions) {
|
||||||
for (AssociatedProfile p : dataset.getDmp().getProfiles()) {
|
// for (AssociatedProfile p : dataset.getDmp().getProfiles()) {
|
||||||
if (version.getId().toString().equals(p.getDescriptionTemplateId().toString())) {
|
// if (version.getId().toString().equals(p.getDescriptionTemplateId().toString())) {
|
||||||
profileVersionsIncluded.add(version);
|
// profileVersionsIncluded.add(version);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort the list with the included Versions.
|
// Sort the list with the included Versions.
|
||||||
|
@ -356,7 +357,7 @@ public class DatasetManager {
|
||||||
public DatasetWizardModel getSinglePublic(String id) throws Exception {
|
public DatasetWizardModel getSinglePublic(String id) throws Exception {
|
||||||
DatasetWizardModel dataset = new DatasetWizardModel();
|
DatasetWizardModel dataset = new DatasetWizardModel();
|
||||||
DescriptionEntity descriptionEntityEntity = databaseRepository.getDatasetDao().isPublicDataset(UUID.fromString(id));
|
DescriptionEntity descriptionEntityEntity = databaseRepository.getDatasetDao().isPublicDataset(UUID.fromString(id));
|
||||||
DmpEntity dmp = databaseRepository.getDmpDao().find(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getId()).isActive(IsActive.Active).first().getDmpId());
|
DmpEntity dmp = this.queryFactory.query(DmpQuery.class).ids(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId()).first();
|
||||||
if (descriptionEntityEntity != null && descriptionEntityEntity.getStatus() == DescriptionStatus.Finalized && dmp.getStatus().getValue() == 1) {
|
if (descriptionEntityEntity != null && descriptionEntityEntity.getStatus() == DescriptionStatus.Finalized && dmp.getStatus().getValue() == 1) {
|
||||||
dataset.setDatasetProfileDefinition(getPagedProfile(dataset, descriptionEntityEntity));
|
dataset.setDatasetProfileDefinition(getPagedProfile(dataset, descriptionEntityEntity));
|
||||||
dataset.fromDataModel(descriptionEntityEntity);
|
dataset.fromDataModel(descriptionEntityEntity);
|
||||||
|
@ -371,7 +372,7 @@ public class DatasetManager {
|
||||||
if (descriptionEntityEntity.getIsActive() == IsActive.Inactive) {
|
if (descriptionEntityEntity.getIsActive() == IsActive.Inactive) {
|
||||||
throw new Exception("Dataset is deleted.");
|
throw new Exception("Dataset is deleted.");
|
||||||
}
|
}
|
||||||
DmpEntity dmp = databaseRepository.getDmpDao().find(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId());
|
DmpEntity dmp = this.queryFactory.query(DmpQuery.class).ids(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId()).first();
|
||||||
if (!isPublic && !this.userScope.isSet()) {
|
if (!isPublic && !this.userScope.isSet()) {
|
||||||
throw new UnauthorisedException();
|
throw new UnauthorisedException();
|
||||||
} else
|
} else
|
||||||
|
@ -412,7 +413,7 @@ public class DatasetManager {
|
||||||
DatasetWizardModel dataset = new DatasetWizardModel();
|
DatasetWizardModel dataset = new DatasetWizardModel();
|
||||||
XWPFDocument document = configLoader.getDatasetDocument();
|
XWPFDocument document = configLoader.getDatasetDocument();
|
||||||
|
|
||||||
DmpEntity dmpEntity = databaseRepository.getDmpDao().find(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId());
|
DmpEntity dmpEntity = this.queryFactory.query(DmpQuery.class).ids(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId()).first();
|
||||||
if (!dmpEntity.getAccessType().equals(DmpAccessType.Public)
|
if (!dmpEntity.getAccessType().equals(DmpAccessType.Public)
|
||||||
//TODO
|
//TODO
|
||||||
// && dmpEntity.getUsers().stream().filter(userInfo -> this.userScope.getUserIdSafe().equals(userInfo.getUser().getId())).collect(Collectors.toList()).size() == 0
|
// && dmpEntity.getUsers().stream().filter(userInfo -> this.userScope.getUserIdSafe().equals(userInfo.getUser().getId())).collect(Collectors.toList()).size() == 0
|
||||||
|
@ -553,7 +554,7 @@ public class DatasetManager {
|
||||||
|
|
||||||
public FileEnvelope getWordDocumentFile(ConfigLoader configLoader, String id, VisibilityRuleService visibilityRuleService) throws IOException, InvalidApplicationException {
|
public FileEnvelope getWordDocumentFile(ConfigLoader configLoader, String id, VisibilityRuleService visibilityRuleService) throws IOException, InvalidApplicationException {
|
||||||
DescriptionEntity descriptionEntityEntity = databaseRepository.getDatasetDao().find(UUID.fromString(id), HintedModelFactory.getHint(DatasetWizardModel.class));
|
DescriptionEntity descriptionEntityEntity = databaseRepository.getDatasetDao().find(UUID.fromString(id), HintedModelFactory.getHint(DatasetWizardModel.class));
|
||||||
DmpEntity dmp = databaseRepository.getDmpDao().find(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId());
|
DmpEntity dmp = this.queryFactory.query(DmpQuery.class).ids(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId()).first();
|
||||||
if (!dmp.getAccessType().equals(DmpAccessType.Public)
|
if (!dmp.getAccessType().equals(DmpAccessType.Public)
|
||||||
//TODO
|
//TODO
|
||||||
// && dmp.getUsers()
|
// && dmp.getUsers()
|
||||||
|
@ -586,7 +587,7 @@ public class DatasetManager {
|
||||||
ExportXmlBuilder xmlBuilder = new ExportXmlBuilder();
|
ExportXmlBuilder xmlBuilder = new ExportXmlBuilder();
|
||||||
DatasetWizardModel dataset = new DatasetWizardModel();
|
DatasetWizardModel dataset = new DatasetWizardModel();
|
||||||
DescriptionEntity descriptionEntityEntity = databaseRepository.getDatasetDao().find(UUID.fromString(id), HintedModelFactory.getHint(DatasetWizardModel.class));
|
DescriptionEntity descriptionEntityEntity = databaseRepository.getDatasetDao().find(UUID.fromString(id), HintedModelFactory.getHint(DatasetWizardModel.class));
|
||||||
DmpEntity dmp = databaseRepository.getDmpDao().find(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId());
|
DmpEntity dmp = this.queryFactory.query(DmpQuery.class).ids(this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntityEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId()).first();
|
||||||
if (!dmp.getAccessType().equals(DmpAccessType.Public)
|
if (!dmp.getAccessType().equals(DmpAccessType.Public)
|
||||||
//TODO
|
//TODO
|
||||||
// && dmp.getUsers()
|
// && dmp.getUsers()
|
||||||
|
@ -613,7 +614,7 @@ public class DatasetManager {
|
||||||
public DescriptionEntity createOrUpdate(DatasetWizardModel datasetWizardModel) throws Exception {
|
public DescriptionEntity createOrUpdate(DatasetWizardModel datasetWizardModel) throws Exception {
|
||||||
Boolean sendNotification = false;
|
Boolean sendNotification = false;
|
||||||
DescriptionEntity tempDescriptionEntity = null;
|
DescriptionEntity tempDescriptionEntity = null;
|
||||||
DmpEntity dmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(datasetWizardModel.getDmp().getId());
|
DmpEntity dmp = null; //apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(datasetWizardModel.getDmp().getId());
|
||||||
if (datasetWizardModel.getId() != null) {
|
if (datasetWizardModel.getId() != null) {
|
||||||
tempDescriptionEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().find(datasetWizardModel.getId());
|
tempDescriptionEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().find(datasetWizardModel.getId());
|
||||||
if (tempDescriptionEntity != null) {
|
if (tempDescriptionEntity != null) {
|
||||||
|
@ -659,7 +660,7 @@ public class DatasetManager {
|
||||||
// descriptionEntity1.setDescriptionTemplateId(datasetWizardModel.getProfile().getId()); //TODO
|
// descriptionEntity1.setDescriptionTemplateId(datasetWizardModel.getProfile().getId()); //TODO
|
||||||
// datasetWizardModel.setDatasetProfileDefinition(getPagedProfile(datasetWizardModel, dataset1));
|
// datasetWizardModel.setDatasetProfileDefinition(getPagedProfile(datasetWizardModel, dataset1));
|
||||||
UUID dmpId = this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntity1.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId();
|
UUID dmpId = this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(descriptionEntity1.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId();
|
||||||
DmpEntity dmp1 = databaseRepository.getDmpDao().find(dmpId);
|
DmpEntity dmp1 = this.queryFactory.query(DmpQuery.class).ids(dmpId).first();
|
||||||
// dmp1.setUsers(new HashSet<>(apiContext.getOperationsContext().getDatabaseRepository().getUserDmpDao().asQueryable().where((builder, root) -> builder.equal(root.get("dmp").get("id"), dmpId)).toList()));//TODO
|
// dmp1.setUsers(new HashSet<>(apiContext.getOperationsContext().getDatabaseRepository().getUserDmpDao().asQueryable().where((builder, root) -> builder.equal(root.get("dmp").get("id"), dmpId)).toList()));//TODO
|
||||||
//updateTags(descriptionEntity1, datasetWizardModel.getTags()); //TODO
|
//updateTags(descriptionEntity1, datasetWizardModel.getTags()); //TODO
|
||||||
if (sendNotification) {
|
if (sendNotification) {
|
||||||
|
@ -1096,12 +1097,11 @@ public class DatasetManager {
|
||||||
|
|
||||||
public void generateIndex() throws InvalidApplicationException {
|
public void generateIndex() throws InvalidApplicationException {
|
||||||
if (this.authorizationService.authorize(Permission.AdminRole)) {
|
if (this.authorizationService.authorize(Permission.AdminRole)) {
|
||||||
this.apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().asQueryable().toList();
|
|
||||||
List<DescriptionEntity> descriptionEntityEntities = new ArrayList<>(this.apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().asQueryable().toList());
|
List<DescriptionEntity> descriptionEntityEntities = new ArrayList<>(this.apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().asQueryable().toList());
|
||||||
descriptionEntityEntities.forEach(datasetEntity -> {
|
descriptionEntityEntities.forEach(datasetEntity -> {
|
||||||
try {
|
try {
|
||||||
UUID dmpId = this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(datasetEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId();
|
UUID dmpId = this.queryFactory.query(DmpDescriptionTemplateQuery.class).ids(datasetEntity.getDmpDescriptionTemplateId()).isActive(IsActive.Active).first().getDmpId();
|
||||||
DmpEntity dmp = databaseRepository.getDmpDao().find(dmpId);
|
DmpEntity dmp = this.queryFactory.query(DmpQuery.class).ids(dmpId).first();
|
||||||
//dmp.setUsers(new HashSet<>(apiContext.getOperationsContext().getDatabaseRepository().getUserDmpDao().asQueryable().where((builder, root) -> builder.equal(root.get("dmp").get("id"), dmpId)).toList())); //TODO
|
//dmp.setUsers(new HashSet<>(apiContext.getOperationsContext().getDatabaseRepository().getUserDmpDao().asQueryable().where((builder, root) -> builder.equal(root.get("dmp").get("id"), dmpId)).toList())); //TODO
|
||||||
// eu.eudat.elastic.entities.Dataset dataset = apiContext.getOperationsContext().getElasticRepository().getDatasetRepository().findDocument(datasetEntity.getId().toString()); //TODO
|
// eu.eudat.elastic.entities.Dataset dataset = apiContext.getOperationsContext().getElasticRepository().getDatasetRepository().findDocument(datasetEntity.getId().toString()); //TODO
|
||||||
// updateTags(datasetEntity, dataset != null ? dataset.getTags() : null);
|
// updateTags(datasetEntity, dataset != null ? dataset.getTags() : null);
|
||||||
|
|
|
@ -7,11 +7,8 @@ import eu.eudat.commons.scope.user.UserScope;
|
||||||
import eu.eudat.data.DescriptionEntity;
|
import eu.eudat.data.DescriptionEntity;
|
||||||
import eu.eudat.data.DmpEntity;
|
import eu.eudat.data.DmpEntity;
|
||||||
import eu.eudat.data.UserEntity;
|
import eu.eudat.data.UserEntity;
|
||||||
import eu.eudat.data.dao.entities.DMPDao;
|
|
||||||
import eu.eudat.data.query.items.item.dataset.DatasetWizardAutocompleteRequest;
|
|
||||||
import eu.eudat.exceptions.datasetwizard.DatasetWizardCannotUnlockException;
|
import eu.eudat.exceptions.datasetwizard.DatasetWizardCannotUnlockException;
|
||||||
import eu.eudat.logic.services.ApiContext;
|
import eu.eudat.logic.services.ApiContext;
|
||||||
import eu.eudat.models.data.datasetwizard.DataManagentPlanListingModel;
|
|
||||||
import eu.eudat.queryable.QueryableList;
|
import eu.eudat.queryable.QueryableList;
|
||||||
import gr.cite.tools.data.query.QueryFactory;
|
import gr.cite.tools.data.query.QueryFactory;
|
||||||
|
|
||||||
|
@ -23,13 +20,13 @@ import java.util.UUID;
|
||||||
|
|
||||||
public class DatasetWizardManager {
|
public class DatasetWizardManager {
|
||||||
|
|
||||||
public static List<DataManagentPlanListingModel> getUserDmps(DMPDao dmpRepository, DatasetWizardAutocompleteRequest datasetWizardAutocompleteRequest, UserScope userScope) throws InstantiationException, IllegalAccessException, InvalidApplicationException {
|
// public static List<DataManagentPlanListingModel> getUserDmps(DMPDao dmpRepository, DatasetWizardAutocompleteRequest datasetWizardAutocompleteRequest, UserScope userScope) throws InstantiationException, IllegalAccessException, InvalidApplicationException {
|
||||||
UserEntity userInfo = new UserEntity();
|
// UserEntity userInfo = new UserEntity();
|
||||||
userInfo.setId(userScope.getUserId());
|
// userInfo.setId(userScope.getUserId());
|
||||||
QueryableList<DmpEntity> items = dmpRepository.getUserDmps(datasetWizardAutocompleteRequest.getCriteria(), userInfo);
|
// QueryableList<DmpEntity> items = dmpRepository.getUserDmps(datasetWizardAutocompleteRequest.getCriteria(), userInfo);
|
||||||
List<DataManagentPlanListingModel> dataManagementPlans = items.select(item -> new DataManagentPlanListingModel().fromDataModel(item));
|
// List<DataManagentPlanListingModel> dataManagementPlans = items.select(item -> new DataManagentPlanListingModel().fromDataModel(item));
|
||||||
return dataManagementPlans;
|
// return dataManagementPlans;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// public static List<AssociatedProfile> getAvailableProfiles(DMPDao dmpRepository, DatasetProfileDao profileDao, DatasetProfileWizardAutocompleteRequest datasetProfileWizardAutocompleteRequest) throws InstantiationException, IllegalAccessException, InvalidApplicationException {
|
// public static List<AssociatedProfile> getAvailableProfiles(DMPDao dmpRepository, DatasetProfileDao profileDao, DatasetProfileWizardAutocompleteRequest datasetProfileWizardAutocompleteRequest) throws InstantiationException, IllegalAccessException, InvalidApplicationException {
|
||||||
// DataManagementPlan dataManagementPlan = new DataManagementPlan().fromDataModel(dmpRepository.find(datasetProfileWizardAutocompleteRequest.getCriteria().getId()));
|
// DataManagementPlan dataManagementPlan = new DataManagementPlan().fromDataModel(dmpRepository.find(datasetProfileWizardAutocompleteRequest.getCriteria().getId()));
|
||||||
|
@ -46,14 +43,14 @@ public class DatasetWizardManager {
|
||||||
// return profiles;
|
// return profiles;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public void unlock(ApiContext apiContext, QueryFactory queryFactory, UUID uuid) throws DatasetWizardCannotUnlockException, InvalidApplicationException {
|
// public void unlock(ApiContext apiContext, QueryFactory queryFactory, UUID uuid) throws DatasetWizardCannotUnlockException, InvalidApplicationException {
|
||||||
DescriptionEntity descriptionEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().find(uuid);
|
// DescriptionEntity descriptionEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().find(uuid);
|
||||||
DmpEntity dmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(descriptionEntity.getDescriptionTemplateId());
|
// DmpEntity dmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(descriptionEntity.getDescriptionTemplateId());
|
||||||
if(dmp.getStatus().equals(DmpStatus.Finalized)) throw new DatasetWizardCannotUnlockException("To perform this action you will need to revert DMP's finalisation");
|
// if(dmp.getStatus().equals(DmpStatus.Finalized)) throw new DatasetWizardCannotUnlockException("To perform this action you will need to revert DMP's finalisation");
|
||||||
descriptionEntity.setStatus(DescriptionStatus.Draft);
|
// descriptionEntity.setStatus(DescriptionStatus.Draft);
|
||||||
apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().createOrUpdate(descriptionEntity);
|
// apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().createOrUpdate(descriptionEntity);
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void delete(ApiContext apiContext, UUID uuid) throws IOException, InvalidApplicationException {
|
public void delete(ApiContext apiContext, UUID uuid) throws IOException, InvalidApplicationException {
|
||||||
DescriptionEntity oldDescriptionEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().find(uuid);
|
DescriptionEntity oldDescriptionEntity = apiContext.getOperationsContext().getDatabaseRepository().getDatasetDao().find(uuid);
|
||||||
|
|
|
@ -210,7 +210,8 @@ public class MetricsManager {
|
||||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||||
criteria.setStatus(0);
|
criteria.setStatus(0);
|
||||||
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
||||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).count();
|
// return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).count();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long countAllFinalizedDMPs() throws InvalidApplicationException {
|
private long countAllFinalizedDMPs() throws InvalidApplicationException {
|
||||||
|
@ -221,7 +222,8 @@ public class MetricsManager {
|
||||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||||
criteria.setStatus(1);
|
criteria.setStatus(1);
|
||||||
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
||||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).count();
|
// return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).count();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long countAllPublishedDMPs() throws InvalidApplicationException {
|
private long countAllPublishedDMPs() throws InvalidApplicationException {
|
||||||
|
@ -233,7 +235,8 @@ public class MetricsManager {
|
||||||
criteria.setIsPublic(true);
|
criteria.setIsPublic(true);
|
||||||
criteria.setOnlyPublic(true);
|
criteria.setOnlyPublic(true);
|
||||||
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
||||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).count();
|
// return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).count();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long countAllDoiedDMPs() throws InvalidApplicationException {
|
private long countAllDoiedDMPs() throws InvalidApplicationException {
|
||||||
|
@ -244,7 +247,8 @@ public class MetricsManager {
|
||||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||||
criteria.setHasDoi(true);
|
criteria.setHasDoi(true);
|
||||||
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
||||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).count();
|
// return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).count();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long countAllDraftDMPsWithGrantId() throws InvalidApplicationException {
|
private long countAllDraftDMPsWithGrantId() throws InvalidApplicationException {
|
||||||
|
@ -255,7 +259,8 @@ public class MetricsManager {
|
||||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||||
criteria.setStatus(0);
|
criteria.setStatus(0);
|
||||||
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
||||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
// return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long countAllFinalizedDMPsWithGrantId() throws InvalidApplicationException {
|
private long countAllFinalizedDMPsWithGrantId() throws InvalidApplicationException {
|
||||||
|
@ -266,7 +271,8 @@ public class MetricsManager {
|
||||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||||
criteria.setStatus(1);
|
criteria.setStatus(1);
|
||||||
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
||||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
// return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long countAllPublishedDMPsWithGrantId() throws InvalidApplicationException {
|
private long countAllPublishedDMPsWithGrantId() throws InvalidApplicationException {
|
||||||
|
@ -278,7 +284,8 @@ public class MetricsManager {
|
||||||
criteria.setIsPublic(true);
|
criteria.setIsPublic(true);
|
||||||
criteria.setOnlyPublic(true);
|
criteria.setOnlyPublic(true);
|
||||||
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
||||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
// return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long countAllDoiedDMPsWithGrantId() throws InvalidApplicationException {
|
private long countAllDoiedDMPsWithGrantId() throws InvalidApplicationException {
|
||||||
|
@ -289,7 +296,8 @@ public class MetricsManager {
|
||||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||||
criteria.setHasDoi(true);
|
criteria.setHasDoi(true);
|
||||||
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
if (countNexus) criteria.setPeriodStart(getNexusDate());
|
||||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
// return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long countAllResearchers() throws InvalidApplicationException {
|
private long countAllResearchers() throws InvalidApplicationException {
|
||||||
|
|
|
@ -8,7 +8,6 @@ import eu.eudat.data.UserEntity;
|
||||||
import eu.eudat.data.old.*;
|
import eu.eudat.data.old.*;
|
||||||
import eu.eudat.logic.services.ApiContext;
|
import eu.eudat.logic.services.ApiContext;
|
||||||
import eu.eudat.logic.services.operations.DatabaseRepository;
|
import eu.eudat.logic.services.operations.DatabaseRepository;
|
||||||
import eu.eudat.models.data.dmp.DataManagementPlan;
|
|
||||||
import eu.eudat.query.UserQuery;
|
import eu.eudat.query.UserQuery;
|
||||||
import gr.cite.tools.data.query.QueryFactory;
|
import gr.cite.tools.data.query.QueryFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -55,32 +54,32 @@ public class QuickWizardManager {
|
||||||
// return databaseRepository.getProjectDao().createOrUpdate(projectEntity);
|
// return databaseRepository.getProjectDao().createOrUpdate(projectEntity);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public DmpEntity createOrUpdate(DataManagementPlan dataManagementPlan/*, Funder funderEntity*/) throws Exception {
|
// public DmpEntity createOrUpdate(DataManagementPlan dataManagementPlan/*, Funder funderEntity*/) throws Exception {
|
||||||
DmpEntity newDmp = dataManagementPlan.toDataModel();
|
// DmpEntity newDmp = dataManagementPlan.toDataModel();
|
||||||
// if (funderEntity != null) {
|
//// if (funderEntity != null) {
|
||||||
// //TODO
|
//// //TODO
|
||||||
// //newDmp.getGrant().setFunder(funderEntity);
|
//// //newDmp.getGrant().setFunder(funderEntity);
|
||||||
// }
|
//// }
|
||||||
UserEntity user = this.queryFactory.query(UserQuery.class).ids(this.userScope.getUserId()).first();
|
// UserEntity user = this.queryFactory.query(UserQuery.class).ids(this.userScope.getUserId()).first();
|
||||||
createFunderIfItDoesntExist(newDmp, user);
|
// createFunderIfItDoesntExist(newDmp, user);
|
||||||
createGrantIfItDoesntExist(newDmp, user);
|
// createGrantIfItDoesntExist(newDmp, user);
|
||||||
//TODO
|
// //TODO
|
||||||
// if (newDmp.getProject() == null) {
|
//// if (newDmp.getProject() == null) {
|
||||||
// newDmp.setProject(new Project());
|
//// newDmp.setProject(new Project());
|
||||||
// newDmp.setProject(newDmp.getProject().projectFromGrant(newDmp.getGrant()));
|
//// newDmp.setProject(newDmp.getProject().projectFromGrant(newDmp.getGrant()));
|
||||||
// }
|
//// }
|
||||||
createProjectIfItDoesntExist(newDmp, user);
|
// createProjectIfItDoesntExist(newDmp, user);
|
||||||
|
//
|
||||||
//TODO
|
// //TODO
|
||||||
//apiContext.getOperationsContext().getDatabaseRepository().getGrantDao().createOrUpdate(newDmp.getGrant());
|
// //apiContext.getOperationsContext().getDatabaseRepository().getGrantDao().createOrUpdate(newDmp.getGrant());
|
||||||
DmpEntity dmpret = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(newDmp);
|
// DmpEntity dmpret = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(newDmp);
|
||||||
// if (dataManagementPlan.getAssociatedUsers().size() == 0)
|
//// if (dataManagementPlan.getAssociatedUsers().size() == 0)
|
||||||
// assignUser(newDmp, user, apiContext);
|
//// assignUser(newDmp, user, apiContext);
|
||||||
|
//
|
||||||
// this.updateIndex(dmpret);
|
//// this.updateIndex(dmpret);
|
||||||
|
//
|
||||||
return dmpret;
|
// return dmpret;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// private void updateIndex(DMP dmp) throws IOException, InvalidApplicationException {
|
// private void updateIndex(DMP dmp) throws IOException, InvalidApplicationException {
|
||||||
// DmpMapper mapper = new DmpMapper(apiContext, datasetManager);
|
// DmpMapper mapper = new DmpMapper(apiContext, datasetManager);
|
||||||
|
|
|
@ -8,7 +8,6 @@ public interface DatabaseRepository {
|
||||||
DatasetDao getDatasetDao();
|
DatasetDao getDatasetDao();
|
||||||
|
|
||||||
|
|
||||||
DMPDao getDmpDao();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,6 @@ public class DatabaseRepositoryImpl implements DatabaseRepository {
|
||||||
private DatasetDao datasetDao;
|
private DatasetDao datasetDao;
|
||||||
|
|
||||||
|
|
||||||
private DMPDao dmpDao;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private FileUploadDao fileUploadDao;
|
private FileUploadDao fileUploadDao;
|
||||||
|
@ -25,10 +23,6 @@ public class DatabaseRepositoryImpl implements DatabaseRepository {
|
||||||
this.datasetDao = datasetDao;
|
this.datasetDao = datasetDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private void setDmpDao(DMPDao dmpDao) {
|
|
||||||
this.dmpDao = dmpDao;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
||||||
|
@ -37,11 +31,6 @@ public class DatabaseRepositoryImpl implements DatabaseRepository {
|
||||||
return datasetDao;
|
return datasetDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public DMPDao getDmpDao() {
|
|
||||||
return dmpDao;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public void setEntityManager(EntityManager entityManager) {
|
public void setEntityManager(EntityManager entityManager) {
|
||||||
|
|
|
@ -1,76 +0,0 @@
|
||||||
package eu.eudat.models.data.dashboard.recent.model;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.models.data.urls.DatasetUrlListing;
|
|
||||||
|
|
||||||
import jakarta.transaction.Transactional;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class RecentDmpModel extends RecentActivityModel<DmpEntity, RecentDmpModel> {
|
|
||||||
private Map<String, Object> extraProperties;
|
|
||||||
private List<DatasetUrlListing> datasets;
|
|
||||||
private UUID groupId;
|
|
||||||
|
|
||||||
public Map<String, Object> getExtraProperties() {
|
|
||||||
return extraProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExtraProperties(Map<String, Object> extraProperties) {
|
|
||||||
this.extraProperties = extraProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DatasetUrlListing> getDatasets() {
|
|
||||||
return datasets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasets(List<DatasetUrlListing> datasets) {
|
|
||||||
this.datasets = datasets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UUID getGroupId() {
|
|
||||||
return groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGroupId(UUID groupId) {
|
|
||||||
this.groupId = groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public RecentActivityModel fromEntity(DmpEntity entity) {
|
|
||||||
this.setType(RecentActivityType.DMP.getIndex());
|
|
||||||
this.setId(entity.getId().toString());
|
|
||||||
this.setTitle(entity.getLabel()); //TODO
|
|
||||||
// this.setCreated(entity.getCreated());
|
|
||||||
// this.setModified(entity.getModified());
|
|
||||||
// this.setStatus(entity.getStatus());
|
|
||||||
// this.setVersion(entity.getVersion());
|
|
||||||
// this.datasets = entity.getDataset().stream().map(dataset -> new DatasetUrlListing().fromDataModel(dataset)).collect(Collectors.toList());
|
|
||||||
// this.setFinalizedAt(entity.getFinalizedAt());
|
|
||||||
// if (entity.getGrant() != null) {
|
|
||||||
// this.setGrant(entity.getGrant().getLabel());
|
|
||||||
// }
|
|
||||||
// this.groupId = entity.getGroupId();
|
|
||||||
// this.setPublic(entity.isPublic());
|
|
||||||
// this.setPublishedAt(entity.getPublishedAt());
|
|
||||||
// this.setUsers(entity.getUsers().stream().map(x -> new UserInfoListingModel().fromDataModel(x)).collect(Collectors.toList()));
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RecentDmpModel fromDataModel(DmpEntity entity) {
|
|
||||||
return (RecentDmpModel) this.fromEntity(entity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity toDataModel() throws Exception {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getHint() {
|
|
||||||
return "recentDmpModel";
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -2,7 +2,6 @@ package eu.eudat.models.data.dataset;
|
||||||
|
|
||||||
import eu.eudat.data.DescriptionEntity;
|
import eu.eudat.data.DescriptionEntity;
|
||||||
import eu.eudat.models.DataModel;
|
import eu.eudat.models.DataModel;
|
||||||
import eu.eudat.models.data.dmp.DataManagementPlan;
|
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
@ -16,7 +15,6 @@ public class Dataset implements DataModel<DescriptionEntity, Dataset> {
|
||||||
private short status;
|
private short status;
|
||||||
private String properties;
|
private String properties;
|
||||||
private Date created;
|
private Date created;
|
||||||
private DataManagementPlan dmp;
|
|
||||||
|
|
||||||
public UUID getId() {
|
public UUID getId() {
|
||||||
return id;
|
return id;
|
||||||
|
@ -83,13 +81,13 @@ public class Dataset implements DataModel<DescriptionEntity, Dataset> {
|
||||||
this.description = description;
|
this.description = description;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataManagementPlan getDmp() {
|
// public DataManagementPlan getDmp() {
|
||||||
return dmp;
|
// return dmp;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void setDmp(DataManagementPlan dmp) {
|
// public void setDmp(DataManagementPlan dmp) {
|
||||||
this.dmp = dmp;
|
// this.dmp = dmp;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public Dataset fromDataModel(DescriptionEntity entity) {
|
public Dataset fromDataModel(DescriptionEntity entity) {
|
||||||
//TODO
|
//TODO
|
||||||
|
|
|
@ -4,7 +4,6 @@ import eu.eudat.commons.enums.DescriptionStatus;
|
||||||
import eu.eudat.data.DescriptionEntity;
|
import eu.eudat.data.DescriptionEntity;
|
||||||
import eu.eudat.model.DmpUser;
|
import eu.eudat.model.DmpUser;
|
||||||
import eu.eudat.models.DataModel;
|
import eu.eudat.models.DataModel;
|
||||||
import eu.eudat.models.data.listingmodels.DataManagementPlanOverviewModel;
|
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -16,7 +15,7 @@ public class DatasetOverviewModel implements DataModel<DescriptionEntity, Datase
|
||||||
private String label;
|
private String label;
|
||||||
private DescriptionStatus status;
|
private DescriptionStatus status;
|
||||||
private List<DmpUser> users;
|
private List<DmpUser> users;
|
||||||
private DataManagementPlanOverviewModel dmp;
|
// private DataManagementPlanOverviewModel dmp;
|
||||||
private String description;
|
private String description;
|
||||||
private Boolean isPublic;
|
private Boolean isPublic;
|
||||||
private Instant modified;
|
private Instant modified;
|
||||||
|
@ -51,13 +50,13 @@ public class DatasetOverviewModel implements DataModel<DescriptionEntity, Datase
|
||||||
this.users = users;
|
this.users = users;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataManagementPlanOverviewModel getDmp() {
|
// public DataManagementPlanOverviewModel getDmp() {
|
||||||
return dmp;
|
// return dmp;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void setDmp(DataManagementPlanOverviewModel dmp) {
|
// public void setDmp(DataManagementPlanOverviewModel dmp) {
|
||||||
this.dmp = dmp;
|
// this.dmp = dmp;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return description;
|
return description;
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
package eu.eudat.models.data.datasetwizard;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.models.DataModel;
|
|
||||||
|
|
||||||
|
|
||||||
public class DataManagentPlanListingModel implements DataModel<DmpEntity, DataManagentPlanListingModel> {
|
|
||||||
|
|
||||||
private String id;
|
|
||||||
private String label;
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DataManagentPlanListingModel fromDataModel(DmpEntity entity) {
|
|
||||||
this.id = entity.getId().toString();
|
|
||||||
this.label = entity.getLabel();
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity toDataModel() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getHint() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -3,7 +3,6 @@ package eu.eudat.models.data.datasetwizard;
|
||||||
import eu.eudat.commons.enums.DescriptionStatus;
|
import eu.eudat.commons.enums.DescriptionStatus;
|
||||||
import eu.eudat.data.DescriptionEntity;
|
import eu.eudat.data.DescriptionEntity;
|
||||||
import eu.eudat.models.DataModel;
|
import eu.eudat.models.DataModel;
|
||||||
import eu.eudat.models.data.dmp.DataManagementPlan;
|
|
||||||
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
|
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
@ -20,7 +19,7 @@ public class DatasetWizardModel implements DataModel<DescriptionEntity, DatasetW
|
||||||
private String description;
|
private String description;
|
||||||
private DescriptionStatus status;
|
private DescriptionStatus status;
|
||||||
private Instant created;
|
private Instant created;
|
||||||
private DataManagementPlan dmp;
|
// private DataManagementPlan dmp;
|
||||||
private Integer dmpSectionIndex;
|
private Integer dmpSectionIndex;
|
||||||
private PagedDatasetProfile datasetProfileDefinition;
|
private PagedDatasetProfile datasetProfileDefinition;
|
||||||
// private List<Tag> tags; //TODO
|
// private List<Tag> tags; //TODO
|
||||||
|
@ -76,12 +75,12 @@ public class DatasetWizardModel implements DataModel<DescriptionEntity, DatasetW
|
||||||
this.created = created;
|
this.created = created;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataManagementPlan getDmp() {
|
// public DataManagementPlan getDmp() {
|
||||||
return dmp;
|
// return dmp;
|
||||||
}
|
// }
|
||||||
public void setDmp(DataManagementPlan dmp) {
|
// public void setDmp(DataManagementPlan dmp) {
|
||||||
this.dmp = dmp;
|
// this.dmp = dmp;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public Integer getDmpSectionIndex() {
|
public Integer getDmpSectionIndex() {
|
||||||
return dmpSectionIndex;
|
return dmpSectionIndex;
|
||||||
|
|
|
@ -1,378 +0,0 @@
|
||||||
package eu.eudat.models.data.dmp;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.model.DmpUser;
|
|
||||||
import eu.eudat.model.EntityDoi;
|
|
||||||
import eu.eudat.models.DataModel;
|
|
||||||
import eu.eudat.models.data.datasetwizard.DatasetWizardModel;
|
|
||||||
import eu.eudat.models.data.dynamicfields.DynamicFieldWithValue;
|
|
||||||
import eu.eudat.models.data.helpermodels.Tuple;
|
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
public class DataManagementPlan implements DataModel<DmpEntity, DataManagementPlan> {
|
|
||||||
private UUID id;
|
|
||||||
private String label;
|
|
||||||
private UUID groupId;
|
|
||||||
private Tuple<UUID, String> profile;
|
|
||||||
private int version;
|
|
||||||
private int status;
|
|
||||||
private boolean lockable;
|
|
||||||
private String description;
|
|
||||||
private List<DatasetWizardModel> datasets;
|
|
||||||
private List<AssociatedProfile> profiles;
|
|
||||||
private List<ExtraFieldModel> extraFields;
|
|
||||||
private Date modified;
|
|
||||||
private Date created;
|
|
||||||
private List<DynamicFieldWithValue> dynamicFields;
|
|
||||||
private Map<String, Object> properties;
|
|
||||||
private List<DmpUser> users;
|
|
||||||
private List<EntityDoi> dois;
|
|
||||||
private Boolean isPublic;
|
|
||||||
private Map<String, Object> extraProperties;
|
|
||||||
|
|
||||||
public UUID getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
public void setId(UUID id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Tuple<UUID, String> getProfile() {
|
|
||||||
return profile;
|
|
||||||
}
|
|
||||||
public void setProfile(Tuple<UUID, String> profile) {
|
|
||||||
this.profile = profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UUID getGroupId() {
|
|
||||||
return groupId;
|
|
||||||
}
|
|
||||||
public void setGroupId(UUID groupId) {
|
|
||||||
this.groupId = groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
public void setVersion(int version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
public void setStatus(int status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<AssociatedProfile> getProfiles() {
|
|
||||||
return profiles;
|
|
||||||
}
|
|
||||||
public void setProfiles(List<AssociatedProfile> profiles) {
|
|
||||||
this.profiles = profiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getModified() {
|
|
||||||
return modified;
|
|
||||||
}
|
|
||||||
public void setModified(Date modified) {
|
|
||||||
this.modified = modified;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getCreated() {
|
|
||||||
return created;
|
|
||||||
}
|
|
||||||
public void setCreated(Date created) {
|
|
||||||
this.created = created;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ExtraFieldModel> getExtraFields() {
|
|
||||||
return extraFields;
|
|
||||||
}
|
|
||||||
public void setExtraFields(List<ExtraFieldModel> extraFields) {
|
|
||||||
this.extraFields = extraFields;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Object> getProperties() {
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
public void setProperties(Map<String, Object> properties) {
|
|
||||||
this.properties = properties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DynamicFieldWithValue> getDynamicFields() {
|
|
||||||
return dynamicFields;
|
|
||||||
}
|
|
||||||
public void setDynamicFields(List<DynamicFieldWithValue> dynamicFields) {
|
|
||||||
this.dynamicFields = dynamicFields;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getLockable() {
|
|
||||||
return lockable;
|
|
||||||
}
|
|
||||||
public void setLockable(boolean lockable) {
|
|
||||||
this.lockable = lockable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DatasetWizardModel> getDatasets() {
|
|
||||||
return datasets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasets(List<DatasetWizardModel> datasets) {
|
|
||||||
this.datasets = datasets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DmpUser> getUsers() {
|
|
||||||
return users;
|
|
||||||
}
|
|
||||||
public void setUsers(List<DmpUser> users) {
|
|
||||||
this.users = users;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<EntityDoi> getDois() {
|
|
||||||
return dois;
|
|
||||||
}
|
|
||||||
public void setDois(List<EntityDoi> dois) {
|
|
||||||
this.dois = dois;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getPublic() {
|
|
||||||
return isPublic;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPublic(Boolean aPublic) {
|
|
||||||
isPublic = aPublic;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Object> getExtraProperties() {
|
|
||||||
return extraProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExtraProperties(Map<String, Object> extraProperties) {
|
|
||||||
this.extraProperties = extraProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DataManagementPlan fromDataModel(DmpEntity entity) {
|
|
||||||
this.id = entity.getId();
|
|
||||||
//TODO
|
|
||||||
// this.profile = entity.getProfile() != null ? new Tuple<UUID, String>(entity.getProfile().getId(), entity.getProfile().getLabel()) : null;
|
|
||||||
// this.organisations = entity.getOrganisations() != null ? entity.getOrganisations().stream().map(item -> new Organisation().fromDataModel(item)).collect(Collectors.toList()) : new ArrayList<>();
|
|
||||||
// this.researchers = entity.getResearchers() != null ? entity.getResearchers().stream().map(item -> new Researcher().fromDataModel(item)).collect(Collectors.toList()): new ArrayList<>();
|
|
||||||
// this.version = entity.getVersion();
|
|
||||||
// this.groupId = this.groupId == null ? null : entity.getGroupId();
|
|
||||||
// this.label = entity.getLabel();
|
|
||||||
// this.properties = entity.getProperties() != null ? new org.json.JSONObject(entity.getProperties()).toMap() : null;
|
|
||||||
// if(entity.getGrant() != null) {
|
|
||||||
// this.grant = new Grant();
|
|
||||||
// this.grant.fromDataModel(entity.getGrant());
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// this.grant = null;
|
|
||||||
// }
|
|
||||||
// this.creator = new eu.eudat.models.data.userinfo.UserInfo();
|
|
||||||
// this.groupId = entity.getGroupId();
|
|
||||||
// this.lockable = entity.getDataset() != null && entity.getDataset().stream().findAny().isPresent();
|
|
||||||
// if (this.properties != null) {
|
|
||||||
// this.extraFields = new ArrayList<>();
|
|
||||||
// this.properties.forEach((id, value) -> {
|
|
||||||
// if (value != null) {
|
|
||||||
// ExtraFieldModel extraField = new ExtraFieldModel();
|
|
||||||
// extraField.setId(id);
|
|
||||||
// extraField.setValue(value.toString());
|
|
||||||
// this.extraFields.add(extraField);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// if (entity.getUsers() != null && entity.getUsers().stream().anyMatch(userDMP -> userDMP.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())))
|
|
||||||
// this.creator.fromDataModel(entity.getUsers().stream().filter(user -> user.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())).findFirst().get().getUser());
|
|
||||||
//
|
|
||||||
// if (entity.getAssociatedDmps() != null && !entity.getAssociatedDmps().isEmpty()) {
|
|
||||||
// this.profiles = new LinkedList<>();
|
|
||||||
// for (DMPDatasetProfile dmpDescriptionProfile : entity.getAssociatedDmps()) {
|
|
||||||
// AssociatedProfile associatedProfile = new AssociatedProfile().fromData(dmpDescriptionProfile.getDatasetprofile());
|
|
||||||
// associatedProfile.setId(dmpDescriptionProfile.getId());
|
|
||||||
// try {
|
|
||||||
// associatedProfile.setData(new ObjectMapper().readValue(dmpDescriptionProfile.getData(), new TypeReference<Map<String, Object>>() {}));
|
|
||||||
// }
|
|
||||||
// catch (Exception e) {
|
|
||||||
// associatedProfile.setData(null);
|
|
||||||
// }
|
|
||||||
// this.profiles.add(associatedProfile);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if (entity.getDataset() != null) {
|
|
||||||
// if (entity.isPublic()) {
|
|
||||||
// this.datasets = entity.getDataset().stream()
|
|
||||||
// .filter(dataset -> !dataset.getIsActive().equals(IsActive.Inactive) && !dataset.getStatus().equals(DescriptionStatus.Canceled) && !dataset.getStatus().equals(DescriptionStatus.Draft))
|
|
||||||
// .map(x -> new DatasetWizardModel().fromDataModelNoDmp(x)).collect(Collectors.toList());
|
|
||||||
// } else {
|
|
||||||
// this.datasets = entity.getDataset().stream()
|
|
||||||
// .filter(dataset -> !dataset.getIsActive().equals(IsActive.Inactive) && !dataset.getStatus().equals(DescriptionStatus.Draft))
|
|
||||||
// .map(x -> new DatasetWizardModel().fromDataModelNoDmp(x)).collect(Collectors.toList());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// this.modified = entity.getModified();
|
|
||||||
// this.created = entity.getCreated();
|
|
||||||
// this.description = entity.getDescription();
|
|
||||||
// this.status = entity.getStatus();
|
|
||||||
// this.associatedUsers = entity.getUsers() != null ? entity.getUsers().stream().map(item -> new UserListingModel().fromDataModel(item.getUser())).collect(Collectors.toList()) : new ArrayList<>();
|
|
||||||
// this.users = entity.getUsers() != null ? entity.getUsers().stream().map(item -> new UserInfoListingModel().fromDataModel(item)).collect(Collectors.toList()) : new ArrayList<>();
|
|
||||||
// this.dois = entity.getDois() != null ? entity.getDois().stream().map(item -> new Doi().fromDataModel(item)).collect(Collectors.toList()): new ArrayList<>();
|
|
||||||
//
|
|
||||||
// if (entity.getProject() != null) {
|
|
||||||
// this.project = new Project();
|
|
||||||
// this.project = new Project().fromDataModel(entity.getProject());
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (entity.getGrant() != null && entity.getGrant().getFunder() != null) {
|
|
||||||
// this.funder = new Funder();
|
|
||||||
// this.funder.fromDataModel(entity.getGrant().getFunder());
|
|
||||||
// }
|
|
||||||
// this.isPublic = entity.isPublic();
|
|
||||||
//
|
|
||||||
// this.extraProperties = entity.getExtraProperties() != null ? new org.json.JSONObject(entity.getExtraProperties()).toMap() : null;
|
|
||||||
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity toDataModel() throws Exception {
|
|
||||||
DmpEntity dataManagementPlanEntity = new DmpEntity(); //TODO
|
|
||||||
// if (this.profile != null) {
|
|
||||||
// DmpBlueprintEntity dmpBlueprint = new DmpBlueprintEntity();
|
|
||||||
// dmpBlueprint.setId(this.profile.getId());
|
|
||||||
// dataManagementPlanEntity.setProfile(dmpBlueprint);
|
|
||||||
// }
|
|
||||||
// dataManagementPlanEntity.setId(this.id);
|
|
||||||
// if (this.organisations != null && !this.organisations.isEmpty())
|
|
||||||
// dataManagementPlanEntity.setOrganisations(new HashSet<>(this.organisations.stream().map(item -> item.toDataModel()).collect(Collectors.toList())));
|
|
||||||
// if (this.researchers != null && !this.researchers.isEmpty())
|
|
||||||
// dataManagementPlanEntity.setResearchers(new HashSet<>(this.researchers.stream().map(item -> item.toDataModel()).collect(Collectors.toList())));
|
|
||||||
// dataManagementPlanEntity.setVersion(this.version);
|
|
||||||
// dataManagementPlanEntity.setLabel(this.label);
|
|
||||||
// if (this.grant != null) dataManagementPlanEntity.setGrant(this.grant.toDataModel());
|
|
||||||
// dataManagementPlanEntity.setStatus((short) this.status);
|
|
||||||
// dataManagementPlanEntity.setDescription(this.description);
|
|
||||||
// if (this.project != null) {
|
|
||||||
// dataManagementPlanEntity.setProject(this.project.toDataModel());
|
|
||||||
// }
|
|
||||||
// if (this.profiles != null) {
|
|
||||||
// Set<DMPDatasetProfile> dmpDatasetProfiles = new HashSet<>();
|
|
||||||
// for (AssociatedProfile profile : this.profiles) {
|
|
||||||
// DMPDatasetProfile dmpDatasetProfile = new DMPDatasetProfile();
|
|
||||||
// dmpDatasetProfile.setId(profile.getId());
|
|
||||||
// dmpDatasetProfile.setDmp(dataManagementPlanEntity);
|
|
||||||
// dmpDatasetProfile.setDatasetprofile(profile.toData());
|
|
||||||
// dmpDatasetProfile.setData(new ObjectMapper().writeValueAsString(profile.getData()));
|
|
||||||
// dmpDatasetProfiles.add(dmpDatasetProfile);
|
|
||||||
// }
|
|
||||||
// dataManagementPlanEntity.setAssociatedDmps(dmpDatasetProfiles);
|
|
||||||
// }
|
|
||||||
// if(this.extraFields != null) {
|
|
||||||
// this.properties = this.extraFields.stream().collect(Collectors.toMap(ExtraFieldModel::getId, ExtraFieldModel::getValue));
|
|
||||||
// }
|
|
||||||
// dataManagementPlanEntity.setProperties(this.properties != null ? JSONObject.toJSONString(this.properties) : null);
|
|
||||||
// dataManagementPlanEntity.setGroupId(this.groupId != null ? this.groupId : UUID.randomUUID());
|
|
||||||
// dataManagementPlanEntity.setModified(this.modified != null ? this.modified : new Date());
|
|
||||||
// dataManagementPlanEntity.setCreated(this.created != null ? this.created : new Date());
|
|
||||||
// if (this.dynamicFields != null)
|
|
||||||
// dataManagementPlanEntity.setDmpProperties(JSONObject.toJSONString(this.dynamicFields.stream().filter(item -> item.getValue() != null).collect(Collectors.toMap(DynamicFieldWithValue::getId, DynamicFieldWithValue::getValue))));
|
|
||||||
//
|
|
||||||
// if (this.isPublic != null) {
|
|
||||||
// dataManagementPlanEntity.setPublic(this.isPublic);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// dataManagementPlanEntity.setExtraProperties(this.extraProperties != null ? JSONObject.toJSONString(this.extraProperties) : null);
|
|
||||||
return dataManagementPlanEntity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataManagementPlan fromDataModelNoDatasets(DmpEntity entity) {
|
|
||||||
this.id = entity.getId(); //TODO
|
|
||||||
// this.profile = entity.getProfile() != null ? new Tuple<UUID, String>(entity.getProfile().getId(), entity.getProfile().getLabel()) : null;
|
|
||||||
// this.organisations = entity.getOrganisations() != null ? entity.getOrganisations().stream().map(item -> new Organisation().fromDataModel(item)).collect(Collectors.toList()) : new ArrayList<>();
|
|
||||||
// this.researchers = entity.getResearchers() != null ? entity.getResearchers().stream().filter(Objects::nonNull).map(item -> new Researcher().fromDataModel(item)).collect(Collectors.toList()) : new ArrayList<>();
|
|
||||||
// this.version = entity.getVersion();
|
|
||||||
// this.label = entity.getLabel();
|
|
||||||
// this.properties = entity.getProperties() != null ? new org.json.JSONObject(entity.getProperties()).toMap() : null;
|
|
||||||
// this.creator = new eu.eudat.models.data.userinfo.UserInfo();
|
|
||||||
// this.groupId = entity.getGroupId();
|
|
||||||
// this.lockable = entity.getDataset() != null && entity.getDataset().stream().findAny().isPresent();
|
|
||||||
// if (this.properties != null) {
|
|
||||||
// this.extraFields = new ArrayList<>();
|
|
||||||
// this.properties.forEach((id, value) -> {
|
|
||||||
// if (value != null) {
|
|
||||||
// ExtraFieldModel extraField = new ExtraFieldModel();
|
|
||||||
// extraField.setId(id);
|
|
||||||
// extraField.setValue(value.toString());
|
|
||||||
// this.extraFields.add(extraField);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// if (entity.getUsers() != null && entity.getUsers().stream().anyMatch(userDMP -> userDMP.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())))
|
|
||||||
// this.creator.fromDataModel(entity.getUsers().stream().filter(user -> user.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())).findFirst().get().getUser());
|
|
||||||
//
|
|
||||||
// if (entity.getAssociatedDmps() != null && !entity.getAssociatedDmps().isEmpty()) {
|
|
||||||
// this.profiles = new LinkedList<>();
|
|
||||||
// for (DMPDatasetProfile dmpDescriptionProfile : entity.getAssociatedDmps()) {
|
|
||||||
// AssociatedProfile associatedProfile = new AssociatedProfile().fromData(dmpDescriptionProfile.getDatasetprofile());
|
|
||||||
// associatedProfile.setId(dmpDescriptionProfile.getId());
|
|
||||||
// try {
|
|
||||||
// associatedProfile.setData(new ObjectMapper().readValue(dmpDescriptionProfile.getData(), new TypeReference<Map<String, Object>>() {}));
|
|
||||||
// }
|
|
||||||
// catch (Exception e) {
|
|
||||||
// associatedProfile.setData(null);
|
|
||||||
// }
|
|
||||||
// this.profiles.add(associatedProfile);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// this.modified = entity.getModified();
|
|
||||||
// this.created = entity.getCreated();
|
|
||||||
// this.description = entity.getDescription();
|
|
||||||
// this.status = entity.getStatus();
|
|
||||||
// this.associatedUsers = entity.getUsers() != null ? entity.getUsers().stream().map(item -> new UserListingModel().fromDataModel(item.getUser())).collect(Collectors.toList()) : new ArrayList<>();
|
|
||||||
// this.users = entity.getUsers() != null ? entity.getUsers().stream().map(item -> new UserInfoListingModel().fromDataModel(item)).collect(Collectors.toList()) : new ArrayList<>();
|
|
||||||
// this.dois = entity.getDois() != null ? entity.getDois().stream().map(item -> new Doi().fromDataModel(item)).collect(Collectors.toList()): new ArrayList<>();
|
|
||||||
// if(entity.getGrant() != null) {
|
|
||||||
// this.grant = new Grant();
|
|
||||||
// this.grant.fromDataModel(entity.getGrant());
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// this.grant = null;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (entity.getProject() != null) {
|
|
||||||
// this.project = new Project();
|
|
||||||
// this.project = new Project().fromDataModel(entity.getProject());
|
|
||||||
// }
|
|
||||||
// if (entity.getGrant() != null && entity.getGrant().getFunder() != null) {
|
|
||||||
// this.funder = new Funder();
|
|
||||||
// this.funder.fromDataModel(entity.getGrant().getFunder());
|
|
||||||
// }
|
|
||||||
// this.isPublic = entity.isPublic();
|
|
||||||
//
|
|
||||||
// this.extraProperties = entity.getExtraProperties() != null ? new org.json.JSONObject(entity.getExtraProperties()).toMap() : null;
|
|
||||||
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getHint() {
|
|
||||||
return "fullyDetailed";
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,343 +0,0 @@
|
||||||
package eu.eudat.models.data.dmp;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.model.DmpUser;
|
|
||||||
import eu.eudat.models.DataModel;
|
|
||||||
import eu.eudat.models.data.datasetwizard.DatasetWizardModel;
|
|
||||||
import eu.eudat.models.data.dynamicfields.DynamicFieldWithValue;
|
|
||||||
import eu.eudat.models.data.helpermodels.Tuple;
|
|
||||||
import eu.eudat.models.data.project.ProjectDMPEditorModel;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class DataManagementPlanEditorModel implements DataModel<DmpEntity, DataManagementPlanEditorModel> {
|
|
||||||
private UUID id;
|
|
||||||
private String label;
|
|
||||||
private UUID groupId;
|
|
||||||
private Tuple<UUID, String> profile;
|
|
||||||
private int version;
|
|
||||||
private int status;
|
|
||||||
private boolean lockable;
|
|
||||||
private String description;
|
|
||||||
private List<DatasetWizardModel> datasets;
|
|
||||||
private List<AssociatedProfile> profiles;
|
|
||||||
private List<ExtraFieldModel> extraFields;
|
|
||||||
private Date modified;
|
|
||||||
private Date created;
|
|
||||||
private List<DynamicFieldWithValue> dynamicFields;
|
|
||||||
private Map<String, Object> properties;
|
|
||||||
private List<DmpUser> users;
|
|
||||||
private List<UUID> datasetsToBeFinalized;
|
|
||||||
private ProjectDMPEditorModel project;
|
|
||||||
private Map<String, Object> extraProperties;
|
|
||||||
|
|
||||||
public UUID getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
public void setId(UUID id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Tuple<UUID, String> getProfile() {
|
|
||||||
return profile;
|
|
||||||
}
|
|
||||||
public void setProfile(Tuple<UUID, String> profile) {
|
|
||||||
this.profile = profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UUID getGroupId() {
|
|
||||||
return groupId;
|
|
||||||
}
|
|
||||||
public void setGroupId(UUID groupId) {
|
|
||||||
this.groupId = groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(int version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
public void setStatus(int status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<AssociatedProfile> getProfiles() {
|
|
||||||
return profiles;
|
|
||||||
}
|
|
||||||
public void setProfiles(List<AssociatedProfile> profiles) {
|
|
||||||
this.profiles = profiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getModified() {
|
|
||||||
return modified;
|
|
||||||
}
|
|
||||||
public void setModified(Date modified) {
|
|
||||||
this.modified = modified;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getCreated() {
|
|
||||||
return created;
|
|
||||||
}
|
|
||||||
public void setCreated(Date created) {
|
|
||||||
this.created = created;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ExtraFieldModel> getExtraFields() {
|
|
||||||
return extraFields;
|
|
||||||
}
|
|
||||||
public void setExtraFields(List<ExtraFieldModel> extraFields) {
|
|
||||||
this.extraFields = extraFields;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Object> getProperties() {
|
|
||||||
return properties;
|
|
||||||
}
|
|
||||||
public void setProperties(Map<String, Object> properties) {
|
|
||||||
this.properties = properties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DynamicFieldWithValue> getDynamicFields() {
|
|
||||||
return dynamicFields;
|
|
||||||
}
|
|
||||||
public void setDynamicFields(List<DynamicFieldWithValue> dynamicFields) {
|
|
||||||
this.dynamicFields = dynamicFields;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getLockable() {
|
|
||||||
return lockable;
|
|
||||||
}
|
|
||||||
public void setLockable(boolean lockable) {
|
|
||||||
this.lockable = lockable;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DatasetWizardModel> getDatasets() {
|
|
||||||
return datasets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasets(List<DatasetWizardModel> datasets) {
|
|
||||||
this.datasets = datasets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DmpUser> getUsers() {
|
|
||||||
return users;
|
|
||||||
}
|
|
||||||
public void setUsers(List<DmpUser> users) {
|
|
||||||
this.users = users;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<UUID> getDatasetsToBeFinalized() {
|
|
||||||
return datasetsToBeFinalized;
|
|
||||||
}
|
|
||||||
public void setDatasetsToBeFinalized(List<UUID> datasetsToBeFinalized) {
|
|
||||||
this.datasetsToBeFinalized = datasetsToBeFinalized;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProjectDMPEditorModel getProject() {
|
|
||||||
return project;
|
|
||||||
}
|
|
||||||
public void setProject(ProjectDMPEditorModel project) {
|
|
||||||
this.project = project;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, Object> getExtraProperties() {
|
|
||||||
return extraProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExtraProperties(Map<String, Object> extraProperties) {
|
|
||||||
this.extraProperties = extraProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DataManagementPlanEditorModel fromDataModel(DmpEntity entity) {
|
|
||||||
this.id = entity.getId();
|
|
||||||
// this.profile = entity.getProfile() != null ? new Tuple<UUID, String>(entity.getProfile().getId(), entity.getProfile().getLabel()) : null; //TODO
|
|
||||||
// this.organisations = entity.getOrganisations().stream().map(item -> new Organisation().fromDataModel(item)).collect(Collectors.toList());
|
|
||||||
// this.researchers = entity.getResearchers().stream().map(item -> new Researcher().fromDataModel(item)).collect(Collectors.toList());
|
|
||||||
// this.version = entity.getVersion();
|
|
||||||
// this.groupId = this.groupId == null ? null : entity.getGroupId();
|
|
||||||
// this.label = entity.getLabel();
|
|
||||||
// this.properties = entity.getProperties() != null ? new org.json.JSONObject(entity.getProperties()).toMap() : null;
|
|
||||||
// if (entity.getGrant() != null) {
|
|
||||||
// this.grant = new GrantDMPEditorModel();
|
|
||||||
// this.grant.getExistGrant().fromDataModel(entity.getGrant());
|
|
||||||
// this.grant.getExistGrant().setSource("");
|
|
||||||
// }
|
|
||||||
// this.creator = new eu.eudat.models.data.userinfo.UserInfo();
|
|
||||||
// this.groupId = entity.getGroupId();
|
|
||||||
// this.lockable = entity.getDataset().stream().findAny().isPresent();
|
|
||||||
// if (this.properties != null) {
|
|
||||||
// this.extraFields = new ArrayList<>();
|
|
||||||
// this.properties.forEach((id, value) -> {
|
|
||||||
// ExtraFieldModel extraField = new ExtraFieldModel();
|
|
||||||
// extraField.setId(id);
|
|
||||||
// extraField.setValue(value.toString());
|
|
||||||
// this.extraFields.add(extraField);
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// if (entity.getUsers().stream().anyMatch(userDMP -> userDMP.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())))
|
|
||||||
// this.creator.fromDataModel(entity.getUsers().stream().filter(user -> user.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())).findFirst().get().getUser());
|
|
||||||
//
|
|
||||||
// if (entity.getAssociatedDmps() != null && !entity.getAssociatedDmps().isEmpty()) {
|
|
||||||
// this.profiles = new LinkedList<>();
|
|
||||||
// for (DMPDatasetProfile dmpDescriptionProfile : entity.getAssociatedDmps()) {
|
|
||||||
// AssociatedProfile associatedProfile = new AssociatedProfile().fromData(dmpDescriptionProfile.getDatasetprofile());
|
|
||||||
// try {
|
|
||||||
// associatedProfile.setData(new ObjectMapper().readValue(dmpDescriptionProfile.getData(), new TypeReference<Map<String, Object>>() {}));
|
|
||||||
// }
|
|
||||||
// catch (Exception e) {
|
|
||||||
// associatedProfile.setData(null);
|
|
||||||
// }
|
|
||||||
// this.profiles.add(associatedProfile);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// this.datasets = entity.getDataset().stream().map(item -> new DatasetWizardModel().fromDataModelNoDmp(item)).collect(Collectors.toList());
|
|
||||||
// this.modified = entity.getModified();
|
|
||||||
// this.created = entity.getCreated();
|
|
||||||
// this.description = entity.getDescription();
|
|
||||||
// this.status = entity.getStatus();
|
|
||||||
// this.project = new ProjectDMPEditorModel();
|
|
||||||
// this.project.getExistProject().fromDataModel(entity.getProject());
|
|
||||||
// this.associatedUsers = entity.getUsers().stream().map(item -> new UserListingModel().fromDataModel(item.getUser())).collect(Collectors.toList());
|
|
||||||
// this.users = entity.getUsers().stream().map(item -> new UserInfoListingModel().fromDataModel(item)).collect(Collectors.toList());
|
|
||||||
// if (entity.getGrant() != null) {
|
|
||||||
// this.funder = new FunderDMPEditorModel();
|
|
||||||
// this.funder.getExistFunder().fromDataModel(entity.getGrant().getFunder());
|
|
||||||
// }
|
|
||||||
// this.extraProperties = entity.getExtraProperties() != null ? new org.json.JSONObject(entity.getExtraProperties()).toMap() : null;
|
|
||||||
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity toDataModel() throws Exception {
|
|
||||||
DmpEntity dataManagementPlanEntity = new DmpEntity();//TODO
|
|
||||||
// if (this.profile != null) {
|
|
||||||
// DmpBlueprintEntity dmpBlueprint = new DmpBlueprintEntity();
|
|
||||||
// dmpBlueprint.setId(this.profile.getId());
|
|
||||||
// dataManagementPlanEntity.setProfile(dmpBlueprint);
|
|
||||||
// }
|
|
||||||
// dataManagementPlanEntity.setId(this.id);
|
|
||||||
// if (this.organisations != null && !this.organisations.isEmpty())
|
|
||||||
// dataManagementPlanEntity.setOrganisations(new HashSet<>(this.organisations.stream().map(Organisation::toDataModel).collect(Collectors.toList())));
|
|
||||||
// if (this.researchers != null && !this.researchers.isEmpty())
|
|
||||||
// dataManagementPlanEntity.setResearchers(new HashSet<>(this.researchers.stream().map(Researcher::toDataModel).collect(Collectors.toList())));
|
|
||||||
// dataManagementPlanEntity.setVersion(this.version);
|
|
||||||
// dataManagementPlanEntity.setLabel(this.label);
|
|
||||||
// if (this.grant != null) {
|
|
||||||
// if (this.grant.getExistGrant() != null && this.grant.getLabel() == null && this.grant.getDescription() == null)
|
|
||||||
// dataManagementPlanEntity.setGrant(this.grant.getExistGrant().toDataModel());
|
|
||||||
// else if (this.grant.getLabel() != null) {
|
|
||||||
// Grant grant = new Grant();
|
|
||||||
// grant.setId(UUID.randomUUID());
|
|
||||||
// grant.setAbbreviation("");
|
|
||||||
// grant.setLabel(this.grant.getLabel());
|
|
||||||
// grant.setType(Grant.GrantType.INTERNAL.getValue());
|
|
||||||
// grant.setReference("dmp:" + (this.grant.getReference() != null ? this.grant.getReference() : grant.getId()));
|
|
||||||
// grant.setUri("");
|
|
||||||
// grant.setDefinition("");
|
|
||||||
// grant.setCreated(new Date());
|
|
||||||
// grant.setStatus(Grant.Status.ACTIVE.getValue());
|
|
||||||
// grant.setModified(new Date());
|
|
||||||
// grant.setDescription(this.grant.getDescription());
|
|
||||||
//
|
|
||||||
// dataManagementPlanEntity.setGrant(grant);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (this.funder != null) {
|
|
||||||
// if (this.funder.getLabel() != null) {
|
|
||||||
// Funder funder = new Funder();
|
|
||||||
// funder.setId(UUID.randomUUID());
|
|
||||||
// funder.setLabel(this.funder.getLabel());
|
|
||||||
// funder.setType(Funder.FunderType.INTERNAL.getValue());
|
|
||||||
// funder.setReference("dmp:" + (this.funder.getReference() != null ? this.funder.getReference() : funder.getId()));
|
|
||||||
// funder.setDefinition("");
|
|
||||||
// funder.setCreated(new Date());
|
|
||||||
// funder.setStatus(Funder.Status.ACTIVE.getValue());
|
|
||||||
// funder.setModified(new Date());
|
|
||||||
//
|
|
||||||
// dataManagementPlanEntity.getGrant().setFunder(funder);
|
|
||||||
// } else if (this.funder.getExistFunder() != null && this.funder.getLabel() == null){
|
|
||||||
// dataManagementPlanEntity.getGrant().setFunder(this.funder.getExistFunder().toDataModel());
|
|
||||||
// dataManagementPlanEntity.getGrant().getFunder().setType(Funder.FunderType.EXTERNAL.getValue());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (this.project != null) {
|
|
||||||
// if (this.project.getExistProject() != null && this.project.getLabel() == null && this.project.getDescription() == null)
|
|
||||||
// dataManagementPlanEntity.setProject(this.project.getExistProject().toDataModel());
|
|
||||||
// else if (this.project.getLabel() != null) {
|
|
||||||
// Project project = new Project();
|
|
||||||
// project.setId(UUID.randomUUID());
|
|
||||||
// project.setAbbreviation("");
|
|
||||||
// project.setLabel(this.project.getLabel());
|
|
||||||
// project.setType(Project.ProjectType.INTERNAL.getValue());
|
|
||||||
// project.setReference("dmp:" + (this.project.getReference() != null ? this.project.getReference() : project.getId()));
|
|
||||||
// project.setUri("");
|
|
||||||
// project.setDefinition("");
|
|
||||||
// project.setCreated(new Date());
|
|
||||||
// project.setStatus(Project.Status.ACTIVE.getValue());
|
|
||||||
// project.setModified(new Date());
|
|
||||||
// project.setDescription(this.project.getDescription());
|
|
||||||
//
|
|
||||||
// dataManagementPlanEntity.setProject(project);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// dataManagementPlanEntity.setStatus((short) this.status);
|
|
||||||
// if (this.status == (int) DMP.DMPStatus.FINALISED.getValue()) {
|
|
||||||
// dataManagementPlanEntity.setFinalizedAt(new Date());
|
|
||||||
// }
|
|
||||||
// dataManagementPlanEntity.setDescription(this.description);
|
|
||||||
// if (this.profiles != null) {
|
|
||||||
// Set<DMPDatasetProfile> dmpDatasetProfiles = new HashSet<>();
|
|
||||||
// for (AssociatedProfile profile : this.profiles) {
|
|
||||||
// DMPDatasetProfile dmpDatasetProfile = new DMPDatasetProfile();
|
|
||||||
// dmpDatasetProfile.setId(profile.getId());
|
|
||||||
// dmpDatasetProfile.setDmp(dataManagementPlanEntity);
|
|
||||||
// dmpDatasetProfile.setDatasetprofile(profile.toData());
|
|
||||||
// dmpDatasetProfile.setData(new ObjectMapper().writeValueAsString(profile.getData()));
|
|
||||||
// dmpDatasetProfiles.add(dmpDatasetProfile);
|
|
||||||
// }
|
|
||||||
// dataManagementPlanEntity.setAssociatedDmps(dmpDatasetProfiles);
|
|
||||||
// }
|
|
||||||
// if(this.extraFields != null) {
|
|
||||||
// this.properties = new HashMap<>();
|
|
||||||
// this.extraFields.forEach((extraField) -> this.properties.put(extraField.getId(), extraField.getValue()));
|
|
||||||
// }
|
|
||||||
// dataManagementPlanEntity.setProperties(this.properties != null ? JSONObject.toJSONString(this.properties) : null);
|
|
||||||
// dataManagementPlanEntity.setGroupId(this.groupId != null ? this.groupId : UUID.randomUUID());
|
|
||||||
// dataManagementPlanEntity.setModified(this.modified != null ? this.modified : new Date());
|
|
||||||
// dataManagementPlanEntity.setCreated(this.created != null ? this.created : new Date());
|
|
||||||
// if (this.dynamicFields != null)
|
|
||||||
// dataManagementPlanEntity.setDmpProperties(JSONObject.toJSONString(this.dynamicFields.stream().filter(item -> item.getValue() != null).collect(Collectors.toMap(DynamicFieldWithValue::getId, DynamicFieldWithValue::getValue))));
|
|
||||||
//
|
|
||||||
// dataManagementPlanEntity.setExtraProperties(this.extraProperties != null ? JSONObject.toJSONString(this.extraProperties) : null);
|
|
||||||
|
|
||||||
return dataManagementPlanEntity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getHint() {
|
|
||||||
return "fullyDetailed";
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,222 +0,0 @@
|
||||||
package eu.eudat.models.data.dmp;
|
|
||||||
|
|
||||||
import eu.eudat.commons.enums.DmpStatus;
|
|
||||||
import eu.eudat.data.DescriptionEntity;
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.models.DataModel;
|
|
||||||
import eu.eudat.models.data.dataset.Dataset;
|
|
||||||
import eu.eudat.models.data.project.ProjectDMPEditorModel;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by ikalyvas on 2/5/2018.
|
|
||||||
*/
|
|
||||||
public class DataManagementPlanNewVersionModel implements DataModel<DmpEntity, DataManagementPlanNewVersionModel> {
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(DataManagementPlanNewVersionModel.class);
|
|
||||||
|
|
||||||
private UUID id;
|
|
||||||
private String label;
|
|
||||||
private UUID groupId;
|
|
||||||
private int version;
|
|
||||||
private int status;
|
|
||||||
private String description;
|
|
||||||
private List<AssociatedProfile> profiles;
|
|
||||||
private List<Dataset> datasets;
|
|
||||||
private ProjectDMPEditorModel project;
|
|
||||||
private Map<String, Object> extraProperties;
|
|
||||||
|
|
||||||
public UUID getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
public void setId(UUID id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UUID getGroupId() {
|
|
||||||
return groupId;
|
|
||||||
}
|
|
||||||
public void setGroupId(UUID groupId) {
|
|
||||||
this.groupId = groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
public void setVersion(int version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
public void setStatus(int status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<AssociatedProfile> getProfiles() {
|
|
||||||
return profiles;
|
|
||||||
}
|
|
||||||
public void setProfiles(List<AssociatedProfile> profiles) {
|
|
||||||
this.profiles = profiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public List<Dataset> getDatasets() {
|
|
||||||
return datasets;
|
|
||||||
}
|
|
||||||
public void setDatasets(List<Dataset> datasets) {
|
|
||||||
this.datasets = datasets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProjectDMPEditorModel getProject() {
|
|
||||||
return project;
|
|
||||||
}
|
|
||||||
public void setProject(ProjectDMPEditorModel project) {
|
|
||||||
this.project = project;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public Map<String, Object> getExtraProperties() {
|
|
||||||
return extraProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setExtraProperties(Map<String, Object> extraProperties) {
|
|
||||||
this.extraProperties = extraProperties;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DataManagementPlanNewVersionModel fromDataModel(DmpEntity entity) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity toDataModel() throws Exception {
|
|
||||||
DmpEntity entity = new DmpEntity();
|
|
||||||
entity.setId(this.id);
|
|
||||||
// entity.setUsers(new HashSet<>(new ArrayList<>(this.associatedUsers)));
|
|
||||||
entity.setDescription(this.description);
|
|
||||||
entity.setStatus(DmpStatus.of((short)this.status));
|
|
||||||
entity.setGroupId(this.groupId == null ? UUID.randomUUID() : this.groupId);
|
|
||||||
entity.setCreatedAt(Instant.now());
|
|
||||||
entity.setUpdatedAt(Instant.now());
|
|
||||||
entity.setLabel(this.label);
|
|
||||||
List<DescriptionEntity> descriptionEntities = new LinkedList<>();//TODO
|
|
||||||
// if (this.datasets != null) {
|
|
||||||
// for (Dataset dataset : this.datasets) {
|
|
||||||
// DescriptionEntity entityDescriptionEntity = new DescriptionEntity();
|
|
||||||
// entityDescriptionEntity.setId(dataset.getId());
|
|
||||||
// descriptionEntities.add(entityDescriptionEntity);
|
|
||||||
// }
|
|
||||||
// entity.setDataset(new HashSet<>(descriptionEntities));
|
|
||||||
// }
|
|
||||||
// if (this.organisations != null && !this.organisations.isEmpty())
|
|
||||||
// entity.setOrganisations(new HashSet<>(this.organisations.stream().map(item -> item.toDataModel()).collect(Collectors.toList())));
|
|
||||||
// if (this.researchers != null && !this.researchers.isEmpty())
|
|
||||||
// entity.setResearchers(new HashSet<>(this.researchers.stream().map(item -> item.toDataModel()).collect(Collectors.toList())));
|
|
||||||
// /*if (this.grant != null) {
|
|
||||||
// entity.setGrant(this.grant.toDataModel());
|
|
||||||
// }*/
|
|
||||||
//
|
|
||||||
// if (this.grant != null) {
|
|
||||||
// if (this.grant.getExistGrant() != null && this.grant.getLabel() == null && this.grant.getDescription() == null)
|
|
||||||
// entity.setGrant(this.grant.getExistGrant().toDataModel());
|
|
||||||
// else if (this.grant.getLabel() != null) {
|
|
||||||
// Grant grant = new Grant();
|
|
||||||
// grant.setId(UUID.randomUUID());
|
|
||||||
// grant.setAbbreviation("");
|
|
||||||
// grant.setLabel(this.grant.getLabel());
|
|
||||||
// grant.setType(Grant.GrantType.INTERNAL.getValue());
|
|
||||||
// grant.setReference("dmp:" + (this.grant.getReference() != null ? this.grant.getReference() : grant.getId()));
|
|
||||||
// grant.setUri("");
|
|
||||||
// grant.setDefinition("");
|
|
||||||
// grant.setCreated(new Date());
|
|
||||||
// grant.setStatus(Grant.Status.ACTIVE.getValue());
|
|
||||||
// grant.setModified(new Date());
|
|
||||||
// grant.setDescription(this.grant.getDescription());
|
|
||||||
//
|
|
||||||
// entity.setGrant(grant);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (this.funder != null) {
|
|
||||||
// if (this.funder.getLabel() != null) {
|
|
||||||
// Funder funder = new Funder();
|
|
||||||
// funder.setId(UUID.randomUUID());
|
|
||||||
// funder.setLabel(this.funder.getLabel());
|
|
||||||
// funder.setType(Funder.FunderType.INTERNAL.getValue());
|
|
||||||
// funder.setReference("dmp:" + (this.funder.getReference() != null ? this.funder.getReference() : funder.getId()));
|
|
||||||
// funder.setDefinition("");
|
|
||||||
// funder.setCreated(new Date());
|
|
||||||
// funder.setStatus(Funder.Status.ACTIVE.getValue());
|
|
||||||
// funder.setModified(new Date());
|
|
||||||
//
|
|
||||||
// entity.getGrant().setFunder(funder);
|
|
||||||
// } else if (this.funder.getExistFunder() != null && this.funder.getLabel() == null) {
|
|
||||||
// entity.getGrant().setFunder(this.funder.getExistFunder().toDataModel());
|
|
||||||
// entity.getGrant().getFunder().setType(Funder.FunderType.EXTERNAL.getValue());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (this.project != null) {
|
|
||||||
// if (this.project.getExistProject() != null && this.project.getLabel() == null && this.project.getDescription() == null)
|
|
||||||
// entity.setProject(this.project.getExistProject().toDataModel());
|
|
||||||
// else if (this.project.getLabel() != null) {
|
|
||||||
// Project project = new Project();
|
|
||||||
// project.setId(UUID.randomUUID());
|
|
||||||
// project.setAbbreviation("");
|
|
||||||
// project.setLabel(this.project.getLabel());
|
|
||||||
// project.setType(Project.ProjectType.INTERNAL.getValue());
|
|
||||||
// project.setReference("dmp:" + (this.project.getReference() != null ? this.project.getReference() : project.getId()));
|
|
||||||
// project.setUri("");
|
|
||||||
// project.setDefinition("");
|
|
||||||
// project.setCreated(new Date());
|
|
||||||
// project.setStatus(Project.Status.ACTIVE.getValue());
|
|
||||||
// project.setModified(new Date());
|
|
||||||
// project.setDescription(this.project.getDescription());
|
|
||||||
//
|
|
||||||
// entity.setProject(project);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// entity.setExtraProperties(this.extraProperties != null ? JSONObject.toJSONString(this.extraProperties) : null);
|
|
||||||
// if (this.profiles != null) {
|
|
||||||
// Set<DMPDatasetProfile> dmpDatasetProfiles = new HashSet<>();
|
|
||||||
// for (AssociatedProfile profile : this.profiles) {
|
|
||||||
// DMPDatasetProfile dmpDatasetProfile = new DMPDatasetProfile();
|
|
||||||
// dmpDatasetProfile.setId(null);
|
|
||||||
// dmpDatasetProfile.setDmp(entity);
|
|
||||||
// dmpDatasetProfile.setDatasetprofile(profile.toData());
|
|
||||||
// dmpDatasetProfile.setData(new ObjectMapper().writeValueAsString(profile.getData()));
|
|
||||||
// dmpDatasetProfiles.add(dmpDatasetProfile);
|
|
||||||
// }
|
|
||||||
// entity.setAssociatedDmps(dmpDatasetProfiles);
|
|
||||||
// }
|
|
||||||
return entity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getHint() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,190 +0,0 @@
|
||||||
package eu.eudat.models.data.listingmodels;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.model.DmpUser;
|
|
||||||
import eu.eudat.models.DataModel;
|
|
||||||
import eu.eudat.models.data.urls.DatasetUrlListing;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
|
|
||||||
public class DataManagementPlanListingModel implements DataModel<DmpEntity, DataManagementPlanListingModel> {
|
|
||||||
private String id;
|
|
||||||
private String label;
|
|
||||||
private String grant;
|
|
||||||
private Date creationTime;
|
|
||||||
private Date modifiedTime;
|
|
||||||
private int version;
|
|
||||||
private int status;
|
|
||||||
private UUID groupId;
|
|
||||||
private List<DatasetUrlListing> datasets;
|
|
||||||
private List<DmpUser> users;
|
|
||||||
private Date finalizedAt;
|
|
||||||
private Boolean isPublic;
|
|
||||||
private Date publishedAt;
|
|
||||||
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGrant() {
|
|
||||||
return grant;
|
|
||||||
}
|
|
||||||
public void setGrant(String grant) {
|
|
||||||
this.grant = grant;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getCreationTime() {
|
|
||||||
return creationTime;
|
|
||||||
}
|
|
||||||
public void setCreationTime(Date creationTime) {
|
|
||||||
this.creationTime = creationTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getModifiedTime() {
|
|
||||||
return modifiedTime;
|
|
||||||
}
|
|
||||||
public void setModifiedTime(Date modifiedTime) {
|
|
||||||
this.modifiedTime = modifiedTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
public void setVersion(int version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UUID getGroupId() {
|
|
||||||
return groupId;
|
|
||||||
}
|
|
||||||
public void setGroupId(UUID groupId) {
|
|
||||||
this.groupId = groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DatasetUrlListing> getDatasets() {
|
|
||||||
return datasets;
|
|
||||||
}
|
|
||||||
public void setDatasets(List<DatasetUrlListing> datasets) {
|
|
||||||
this.datasets = datasets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
public void setStatus(int status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DmpUser> getUsers() {
|
|
||||||
return users;
|
|
||||||
}
|
|
||||||
public void setUsers(List<DmpUser> users) {
|
|
||||||
this.users = users;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getFinalizedAt() {
|
|
||||||
return finalizedAt;
|
|
||||||
}
|
|
||||||
public void setFinalizedAt(Date finalizedAt) {
|
|
||||||
this.finalizedAt = finalizedAt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getPublic() {
|
|
||||||
return isPublic;
|
|
||||||
}
|
|
||||||
public void setPublic(Boolean aPublic) {
|
|
||||||
isPublic = aPublic;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getPublishedAt() {
|
|
||||||
return publishedAt;
|
|
||||||
}
|
|
||||||
public void setPublishedAt(Date publishedAt) {
|
|
||||||
this.publishedAt = publishedAt;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DataManagementPlanListingModel fromDataModel(DmpEntity entity) {
|
|
||||||
this.id = entity.getId().toString();
|
|
||||||
this.label = entity.getLabel();
|
|
||||||
this.groupId = entity.getGroupId();
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataManagementPlanListingModel fromDataModelAssociatedProfiles(DmpEntity entity) {
|
|
||||||
this.id = entity.getId().toString();
|
|
||||||
this.label = entity.getLabel();
|
|
||||||
this.groupId = entity.getGroupId();
|
|
||||||
this.creationTime = Date.from(entity.getCreatedAt());
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataManagementPlanListingModel fromDataModelAutoComplete(DmpEntity entity) {
|
|
||||||
this.id = entity.getId().toString();
|
|
||||||
this.label = entity.getLabel();
|
|
||||||
this.groupId = entity.getGroupId();
|
|
||||||
this.creationTime = Date.from(entity.getCreatedAt());
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataManagementPlanListingModel fromDataModelDatasets(DmpEntity entity) {
|
|
||||||
this.fromDataModel(entity);
|
|
||||||
this.status = entity.getStatus().getValue();
|
|
||||||
this.version = entity.getVersion();
|
|
||||||
this.creationTime = Date.from(entity.getCreatedAt());
|
|
||||||
this.modifiedTime = Date.from(entity.getUpdatedAt());
|
|
||||||
this.finalizedAt = Date.from(entity.getFinalizedAt());
|
|
||||||
// this.grant = (entity.getGrant() != null) ? entity.getGrant().getLabel() : null; //TODO
|
|
||||||
// this.datasets = entity.getDataset().stream().map(x-> new DatasetUrlListing().fromDataModel(x)).collect(Collectors.toList());
|
|
||||||
// this.users = entity.getUsers().stream().map(x -> new UserInfoListingModel().fromDataModel(x)).collect(Collectors.toList());
|
|
||||||
// this.isPublic = entity.isPublic();
|
|
||||||
// this.publishedAt = entity.getPublishedAt();
|
|
||||||
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity toDataModel() {
|
|
||||||
DmpEntity entity = new DmpEntity();
|
|
||||||
entity.setId(UUID.fromString(this.getId()));
|
|
||||||
entity.setLabel(this.getLabel());
|
|
||||||
entity.setGroupId(this.getGroupId());
|
|
||||||
// entity.setStatus(Integer.valueOf(this.getStatus()).shortValue()); //TODO
|
|
||||||
// entity.setCreated(this.getCreationTime());
|
|
||||||
// entity.setFinalizedAt(this.getFinalizedAt());
|
|
||||||
// entity.setModified(this.getModifiedTime());
|
|
||||||
// entity.setPublic(this.getPublic());
|
|
||||||
// entity.setPublishedAt(this.getPublishedAt());
|
|
||||||
// entity.setVersion(this.getVersion());
|
|
||||||
//
|
|
||||||
// entity.setDataset(this.getDatasets().stream().map(DatasetUrlListing::toDataModel).collect(Collectors.toCollection(LinkedHashSet::new)));
|
|
||||||
// if (this.getGrant() != null && !this.getGrant().isEmpty()) {
|
|
||||||
// Grant grant = new Grant();
|
|
||||||
// grant.setLabel(this.getGrant());
|
|
||||||
// entity.setGrant(grant);
|
|
||||||
// }
|
|
||||||
// entity.setUsers(this.getUsers().stream().map(UserInfoListingModel::toDataModel).collect(Collectors.toSet()));
|
|
||||||
return entity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getHint() {
|
|
||||||
return "dataManagementPlanListingModel";
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,210 +0,0 @@
|
||||||
package eu.eudat.models.data.listingmodels;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.model.DmpUser;
|
|
||||||
import eu.eudat.model.EntityDoi;
|
|
||||||
import eu.eudat.models.DataModel;
|
|
||||||
import eu.eudat.models.data.dataset.DatasetOverviewModel;
|
|
||||||
import eu.eudat.models.data.dmp.AssociatedProfile;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class DataManagementPlanOverviewModel implements DataModel<DmpEntity, DataManagementPlanOverviewModel> {
|
|
||||||
private String id;
|
|
||||||
private String label;
|
|
||||||
private String profile;
|
|
||||||
private Date creationTime;
|
|
||||||
private Date modifiedTime;
|
|
||||||
private Date finalizedAt;
|
|
||||||
private int version;
|
|
||||||
private int status;
|
|
||||||
private UUID groupId;
|
|
||||||
private List<DatasetOverviewModel> datasets;
|
|
||||||
private List<AssociatedProfile> associatedProfiles;
|
|
||||||
private List<DmpUser> users;
|
|
||||||
private String description;
|
|
||||||
private boolean isPublic;
|
|
||||||
private Date publishedAt;
|
|
||||||
private List<EntityDoi> dois;
|
|
||||||
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getProfile() {
|
|
||||||
return profile;
|
|
||||||
}
|
|
||||||
public void setProfile(String profile) {
|
|
||||||
this.profile = profile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getCreationTime() {
|
|
||||||
return creationTime;
|
|
||||||
}
|
|
||||||
public void setCreationTime(Date creationTime) {
|
|
||||||
this.creationTime = creationTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getModifiedTime() {
|
|
||||||
return modifiedTime;
|
|
||||||
}
|
|
||||||
public void setModifiedTime(Date modifiedTime) {
|
|
||||||
this.modifiedTime = modifiedTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getFinalizedAt() {
|
|
||||||
return finalizedAt;
|
|
||||||
}
|
|
||||||
public void setFinalizedAt(Date finalizedAt) {
|
|
||||||
this.finalizedAt = finalizedAt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
public void setVersion(int version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public UUID getGroupId() {
|
|
||||||
return groupId;
|
|
||||||
}
|
|
||||||
public void setGroupId(UUID groupId) {
|
|
||||||
this.groupId = groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DatasetOverviewModel> getDatasets() {
|
|
||||||
return datasets;
|
|
||||||
}
|
|
||||||
public void setDatasets(List<DatasetOverviewModel> datasets) {
|
|
||||||
this.datasets = datasets;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
public void setStatus(int status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<AssociatedProfile> getAssociatedProfiles() {
|
|
||||||
return associatedProfiles;
|
|
||||||
}
|
|
||||||
public void setAssociatedProfiles(List<AssociatedProfile> associatedProfiles) {
|
|
||||||
this.associatedProfiles = associatedProfiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<DmpUser> getUsers() {
|
|
||||||
return users;
|
|
||||||
}
|
|
||||||
public void setUsers(List<DmpUser> users) {
|
|
||||||
this.users = users;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public boolean getIsPublic() {
|
|
||||||
return isPublic;
|
|
||||||
}
|
|
||||||
public void setIsPublic(boolean aPublic) {
|
|
||||||
isPublic = aPublic;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getPublishedAt() {
|
|
||||||
return publishedAt;
|
|
||||||
}
|
|
||||||
public void setPublishedAt(Date publishedAt) {
|
|
||||||
this.publishedAt = publishedAt;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<EntityDoi> getDois() {
|
|
||||||
return dois;
|
|
||||||
}
|
|
||||||
public void setDois(List<EntityDoi> dois) {
|
|
||||||
this.dois = dois;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DataManagementPlanOverviewModel fromDataModel(DmpEntity entity) {
|
|
||||||
this.id = entity.getId().toString();
|
|
||||||
this.label = entity.getLabel();
|
|
||||||
this.groupId = entity.getGroupId();
|
|
||||||
this.status = entity.getStatus().getValue();
|
|
||||||
// if (entity.getResearchers() != null) { //TODO
|
|
||||||
// this.researchers = entity.getResearchers().stream().map(item -> new Researcher().fromDataModel(item)).collect(Collectors.toList());
|
|
||||||
// }
|
|
||||||
// if(entity.getDois() != null){
|
|
||||||
// this.dois = entity.getDois().stream().map(item -> new Doi().fromDataModel(item)).collect(Collectors.toList());
|
|
||||||
// }
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataManagementPlanOverviewModel fromDataModelDatasets(DmpEntity entity) {
|
|
||||||
this.fromDataModel(entity);
|
|
||||||
this.version = entity.getVersion();
|
|
||||||
// if (entity.getGrant() != null) this.grant = new GrantOverviewModel().fromDataModel(entity.getGrant());
|
|
||||||
// if (entity.getProfile() != null) this.profile = entity.getProfile().getLabel();
|
|
||||||
this.creationTime = Date.from(entity.getCreatedAt());
|
|
||||||
this.modifiedTime = Date.from(entity.getUpdatedAt());
|
|
||||||
this.finalizedAt = Date.from(entity.getFinalizedAt());
|
|
||||||
// this.organisations = entity.getOrganisations().stream().map(item -> new Organisation().fromDataModel(item)).collect(Collectors.toList());
|
|
||||||
// this.datasets = entity.getDataset().stream().filter(dataset -> !dataset.getIsActive().equals(IsActive.Inactive) && !dataset.getStatus().equals(DescriptionStatus.Canceled)).map(x-> new DatasetOverviewModel().fromDataModel(x)).collect(Collectors.toList());
|
|
||||||
// this.users = entity.getUsers().stream().map(x -> new UserInfoListingModel().fromDataModel(x)).collect(Collectors.toList());
|
|
||||||
// this.description = entity.getDescription();
|
|
||||||
// if (entity.getResearchers() != null) {
|
|
||||||
// this.researchers = entity.getResearchers().stream().map(item -> new Researcher().fromDataModel(item)).collect(Collectors.toList());
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (entity.getAssociatedDmps() != null && !entity.getAssociatedDmps().isEmpty()) {
|
|
||||||
// this.associatedProfiles = new LinkedList<>();
|
|
||||||
// for (DMPDatasetProfile dmpDescriptionProfile : entity.getAssociatedDmps()) {
|
|
||||||
// AssociatedProfile associatedProfile = new AssociatedProfile().fromData(dmpDescriptionProfile.getDatasetprofile());
|
|
||||||
// try {
|
|
||||||
// associatedProfile.setData(new ObjectMapper().readValue(dmpDescriptionProfile.getData(), new TypeReference<Map<String, Object>>() {}));
|
|
||||||
// }
|
|
||||||
// catch (Exception e) {
|
|
||||||
// associatedProfile.setData(null);
|
|
||||||
// }
|
|
||||||
// this.associatedProfiles.add(associatedProfile);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// this.isPublic = entity.isPublic();
|
|
||||||
// this.publishedAt = entity.getPublishedAt();
|
|
||||||
// if (entity.getDois() != null) {
|
|
||||||
// this.dois = entity.getDois().stream().map(item -> new Doi().fromDataModel(item)).collect(Collectors.toList());
|
|
||||||
// } else {
|
|
||||||
// this.dois = new ArrayList<>();
|
|
||||||
// }
|
|
||||||
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity toDataModel() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getHint() {
|
|
||||||
return "dataManagementPlanOverviewModel";
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
//package eu.eudat.models.data.listingmodels;
|
|
||||||
//
|
|
||||||
//import eu.eudat.commons.enums.DmpBlueprintStatus;
|
|
||||||
//import eu.eudat.commons.types.dmpblueprint.DefinitionEntity;
|
|
||||||
//import eu.eudat.data.DmpBlueprintEntity;
|
|
||||||
//import eu.eudat.models.DataModel;
|
|
||||||
//import eu.eudat.commons.types.xml.XmlBuilder;
|
|
||||||
//import org.w3c.dom.Document;
|
|
||||||
//
|
|
||||||
//import java.time.Instant;
|
|
||||||
//import java.util.UUID;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * Created by ikalyvas on 3/21/2018.
|
|
||||||
// */
|
|
||||||
//public class DataManagementPlanProfileListingModel implements DataModel<DmpBlueprintEntity, DataManagementPlanProfileListingModel> {
|
|
||||||
//
|
|
||||||
// private UUID id;
|
|
||||||
//
|
|
||||||
// private String label;
|
|
||||||
//
|
|
||||||
// private DefinitionEntity definitionEntity;
|
|
||||||
//
|
|
||||||
// private DmpBlueprintStatus status;
|
|
||||||
//
|
|
||||||
// private Instant created = null;
|
|
||||||
//
|
|
||||||
// private Instant modified = Instant.now();
|
|
||||||
//
|
|
||||||
// public UUID getId() {
|
|
||||||
// return id;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setId(UUID id) {
|
|
||||||
// this.id = id;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getLabel() {
|
|
||||||
// return label;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setLabel(String label) {
|
|
||||||
// this.label = label;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public DefinitionEntity getDefinition() {
|
|
||||||
// return definitionEntity;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setDefinition(DefinitionEntity definitionEntity) {
|
|
||||||
// this.definitionEntity = definitionEntity;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public DmpBlueprintStatus getStatus() {
|
|
||||||
// return status;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setStatus(DmpBlueprintStatus status) {
|
|
||||||
// this.status = status;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public Instant getCreated() {
|
|
||||||
// return created;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setCreated(Instant created) {
|
|
||||||
// this.created = created;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public Instant getModified() {
|
|
||||||
// return modified;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setModified(Instant modified) {
|
|
||||||
// this.modified = modified;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public DataManagementPlanProfileListingModel fromDataModel(DmpBlueprintEntity entity) {
|
|
||||||
// this.id = entity.getId();
|
|
||||||
// this.created = entity.getCreatedAt();
|
|
||||||
// this.definitionEntity = new DefinitionEntity().fromXml(XmlBuilder.fromXml(entity.getDefinition()).getDocumentElement());
|
|
||||||
// this.modified = entity.getUpdatedAt();
|
|
||||||
// this.label = entity.getLabel();
|
|
||||||
// this.status = entity.getStatus();
|
|
||||||
// return this;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public DmpBlueprintEntity toDataModel() throws Exception {
|
|
||||||
// Document document = XmlBuilder.getDocument();
|
|
||||||
// document.appendChild(this.definitionEntity.toXml(document));
|
|
||||||
// DmpBlueprintEntity dmpBlueprint = new DmpBlueprintEntity();
|
|
||||||
// dmpBlueprint.setCreatedAt(this.created == null ? Instant.now() : this.created);
|
|
||||||
// dmpBlueprint.setDefinition(XmlBuilder.generateXml(document));
|
|
||||||
// dmpBlueprint.setId(this.id);
|
|
||||||
// dmpBlueprint.setLabel(this.label);
|
|
||||||
// dmpBlueprint.setStatus(this.status);
|
|
||||||
// dmpBlueprint.setUpdatedAt(this.modified == null ? Instant.now() : this.modified);
|
|
||||||
// return dmpBlueprint;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public String getHint() {
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
//}
|
|
|
@ -1,53 +0,0 @@
|
||||||
package eu.eudat.models.data.listingmodels;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
import eu.eudat.models.DataModel;
|
|
||||||
|
|
||||||
public class VersionListingModel implements DataModel<DmpEntity, VersionListingModel> {
|
|
||||||
private String id;
|
|
||||||
private String groupId;
|
|
||||||
private Integer version;
|
|
||||||
|
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGroupId() {
|
|
||||||
return groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGroupId(String groupId) {
|
|
||||||
this.groupId = groupId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getVersion() {
|
|
||||||
return version;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVersion(Integer version) {
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public VersionListingModel fromDataModel(DmpEntity entity) {
|
|
||||||
this.id = entity.getId().toString();
|
|
||||||
this.groupId = entity.getGroupId().toString();
|
|
||||||
this.version = entity.getVersion().intValue();
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity toDataModel() throws Exception {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getHint() {
|
|
||||||
return "versionListingModel";
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -2,11 +2,8 @@ package eu.eudat.models.data.quickwizard;
|
||||||
|
|
||||||
public class DatasetCreateWizardModel {
|
public class DatasetCreateWizardModel {
|
||||||
|
|
||||||
private DmpCreateWizardModel dmpMeta;
|
|
||||||
private DatasetQuickWizardModel datasets;
|
private DatasetQuickWizardModel datasets;
|
||||||
|
|
||||||
public DmpCreateWizardModel getDmpMeta() { return dmpMeta; }
|
|
||||||
public void setDmpMeta(DmpCreateWizardModel dmpMeta) { this.dmpMeta = dmpMeta; }
|
|
||||||
|
|
||||||
public DatasetQuickWizardModel getDatasets() {
|
public DatasetQuickWizardModel getDatasets() {
|
||||||
return datasets;
|
return datasets;
|
||||||
|
|
|
@ -3,7 +3,6 @@ package eu.eudat.models.data.quickwizard;
|
||||||
|
|
||||||
import eu.eudat.commons.enums.DescriptionStatus;
|
import eu.eudat.commons.enums.DescriptionStatus;
|
||||||
import eu.eudat.data.DescriptionTemplateEntity;
|
import eu.eudat.data.DescriptionTemplateEntity;
|
||||||
import eu.eudat.models.data.dmp.DataManagementPlan;
|
|
||||||
import eu.eudat.models.data.datasetwizard.DatasetWizardModel;
|
import eu.eudat.models.data.datasetwizard.DatasetWizardModel;
|
||||||
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
|
import eu.eudat.models.data.user.composite.PagedDatasetProfile;
|
||||||
|
|
||||||
|
@ -23,12 +22,12 @@ public class DatasetDescriptionQuickWizardModel extends PagedDatasetProfile {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public DatasetWizardModel toDataModel(DataManagementPlan dmp, DescriptionTemplateEntity profile){
|
public DatasetWizardModel toDataModel(DescriptionTemplateEntity profile){
|
||||||
DatasetWizardModel newDataset = new DatasetWizardModel();
|
DatasetWizardModel newDataset = new DatasetWizardModel();
|
||||||
newDataset.setLabel(datasetLabel);
|
newDataset.setLabel(datasetLabel);
|
||||||
newDataset.setCreated(Instant.now());
|
newDataset.setCreated(Instant.now());
|
||||||
// newDataset.setProfile(new DatasetProfileOverviewModel().fromDataModel(profile));
|
// newDataset.setProfile(new DatasetProfileOverviewModel().fromDataModel(profile));
|
||||||
newDataset.setDmp(dmp);
|
// newDataset.setDmp(dmp);
|
||||||
newDataset.setStatus(DescriptionStatus.of((short)this.getStatus()));
|
newDataset.setStatus(DescriptionStatus.of((short)this.getStatus()));
|
||||||
//newDataset.setStatus(Dataset.Status.SAVED.getValue());
|
//newDataset.setStatus(Dataset.Status.SAVED.getValue());
|
||||||
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
package eu.eudat.models.data.quickwizard;
|
|
||||||
|
|
||||||
import eu.eudat.models.data.dmp.DataManagementPlan;
|
|
||||||
|
|
||||||
public class DmpCreateWizardModel {
|
|
||||||
private DatasetProfileCreateWizardModel datasetProfile;
|
|
||||||
private DataManagementPlan dmp;
|
|
||||||
|
|
||||||
public DatasetProfileCreateWizardModel getDatasetProfile() {return datasetProfile; }
|
|
||||||
public void setDatasetProfile(DatasetProfileCreateWizardModel datasetProfileCreateWizardModel) {
|
|
||||||
this.datasetProfile = datasetProfileCreateWizardModel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataManagementPlan getDmp() { return dmp; }
|
|
||||||
public void setDmp(DataManagementPlan dmp) { this.dmp = dmp; }
|
|
||||||
}
|
|
|
@ -1,112 +0,0 @@
|
||||||
package eu.eudat.models.data.quickwizard;
|
|
||||||
|
|
||||||
import eu.eudat.commons.scope.user.UserScope;
|
|
||||||
import eu.eudat.data.DescriptionTemplateEntity;
|
|
||||||
import eu.eudat.model.User;
|
|
||||||
import eu.eudat.models.data.dmp.AssociatedProfile;
|
|
||||||
|
|
||||||
import javax.management.InvalidApplicationException;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
|
|
||||||
public class DmpQuickWizardModel {
|
|
||||||
private UUID id;
|
|
||||||
private String label;
|
|
||||||
private int status;
|
|
||||||
private AssociatedProfile datasetProfile;
|
|
||||||
private String description;
|
|
||||||
private String language;
|
|
||||||
|
|
||||||
|
|
||||||
public UUID getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(UUID id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLabel(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatus(int status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDatasetProfile(AssociatedProfile datasetProfile) {
|
|
||||||
this.datasetProfile = datasetProfile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getLanguage() {
|
|
||||||
return language;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLanguage(String language) {
|
|
||||||
this.language = language;
|
|
||||||
}
|
|
||||||
|
|
||||||
public eu.eudat.models.data.dmp.DataManagementPlan toDataDmp(/*Grant grant, Project project,*/ UserScope userScope) throws InvalidApplicationException {
|
|
||||||
eu.eudat.models.data.dmp.DataManagementPlan dataManagementPlanEntity = new eu.eudat.models.data.dmp.DataManagementPlan();
|
|
||||||
|
|
||||||
dataManagementPlanEntity.setId(this.id);
|
|
||||||
dataManagementPlanEntity.setVersion(0);
|
|
||||||
|
|
||||||
dataManagementPlanEntity.setLabel(this.label);
|
|
||||||
//TODO
|
|
||||||
// if (grant != null) {
|
|
||||||
// eu.eudat.models.data.grant.Grant importGrant = new eu.eudat.models.data.grant.Grant();
|
|
||||||
// dataManagementPlanEntity.setGrant(importGrant.fromDataModel(grant));
|
|
||||||
// }
|
|
||||||
// if (project != null) {
|
|
||||||
// eu.eudat.models.data.project.Project importProject = new eu.eudat.models.data.project.Project();
|
|
||||||
// dataManagementPlanEntity.setProject(importProject.fromDataModel(project));
|
|
||||||
// }
|
|
||||||
if (this.datasetProfile != null) {
|
|
||||||
List<AssociatedProfile> assProfile = new LinkedList<>();
|
|
||||||
assProfile.add(this.datasetProfile);
|
|
||||||
dataManagementPlanEntity.setProfiles(assProfile);
|
|
||||||
}
|
|
||||||
dataManagementPlanEntity.setStatus((short) this.status);
|
|
||||||
dataManagementPlanEntity.setDescription(this.description);
|
|
||||||
dataManagementPlanEntity.setProperties(null);
|
|
||||||
dataManagementPlanEntity.setCreated(new Date());
|
|
||||||
List<User> user = new LinkedList<>();
|
|
||||||
User userInfo = new User();
|
|
||||||
userInfo.setId(userScope.getUserId());
|
|
||||||
// dataManagementPlanEntity.setAssociatedUsers(user);
|
|
||||||
dataManagementPlanEntity.setExtraProperties(new HashMap<>());
|
|
||||||
dataManagementPlanEntity.getExtraProperties().put("language", this.language);
|
|
||||||
dataManagementPlanEntity.getExtraProperties().put("visible", false);
|
|
||||||
dataManagementPlanEntity.getExtraProperties().put("contact", userScope.getUserId().toString());
|
|
||||||
return dataManagementPlanEntity;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public DescriptionTemplateEntity getDatasetProfile() {
|
|
||||||
DescriptionTemplateEntity descriptionTemplateEntity = new DescriptionTemplateEntity();
|
|
||||||
descriptionTemplateEntity.setDefinition(this.datasetProfile.getLabel());
|
|
||||||
descriptionTemplateEntity.setLabel(this.datasetProfile.getLabel());
|
|
||||||
descriptionTemplateEntity.setId(this.datasetProfile.getDescriptionTemplateId());
|
|
||||||
return descriptionTemplateEntity;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -3,17 +3,9 @@ package eu.eudat.models.data.quickwizard;
|
||||||
|
|
||||||
public class QuickWizardModel {
|
public class QuickWizardModel {
|
||||||
|
|
||||||
private DmpQuickWizardModel dmp;
|
|
||||||
private DatasetQuickWizardModel datasets;
|
private DatasetQuickWizardModel datasets;
|
||||||
private int status;
|
private int status;
|
||||||
|
|
||||||
public DmpQuickWizardModel getDmp() {
|
|
||||||
return dmp;
|
|
||||||
}
|
|
||||||
public void setDmp(DmpQuickWizardModel dmp) {
|
|
||||||
this.dmp = dmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DatasetQuickWizardModel getDatasets() {
|
public DatasetQuickWizardModel getDatasets() {
|
||||||
return datasets;
|
return datasets;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
package eu.eudat.models.data.urls;
|
|
||||||
|
|
||||||
import eu.eudat.data.DmpEntity;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by ikalyvas on 3/19/2018.
|
|
||||||
*/
|
|
||||||
public class DataManagementPlanUrlListing extends UrlListing<DmpEntity, DataManagementPlanUrlListing> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DataManagementPlanUrlListing fromDataModel(DmpEntity entity) {
|
|
||||||
this.setLabel(entity.getLabel());
|
|
||||||
this.setUrl(entity.getId().toString());
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DmpEntity toDataModel() throws Exception {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getHint() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
package eu.eudat.models.validators;
|
|
||||||
|
|
||||||
import eu.eudat.data.dao.criteria.DataManagementPlanCriteria;
|
|
||||||
import eu.eudat.logic.services.operations.DatabaseRepository;
|
|
||||||
import eu.eudat.models.data.dmp.DataManagementPlanNewVersionModel;
|
|
||||||
import eu.eudat.models.validators.fluentvalidator.FluentValidator;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.validation.Errors;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by ikalyvas on 3/7/2018.
|
|
||||||
*/
|
|
||||||
@Component("dataManagementPlanNewVersionValidator")
|
|
||||||
public class DataManagementPlanNewVersionValidator extends FluentValidator<DataManagementPlanNewVersionModel> {
|
|
||||||
|
|
||||||
private DatabaseRepository databaseRepository;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public DataManagementPlanNewVersionValidator(DatabaseRepository databaseRepository) {
|
|
||||||
this.databaseRepository = databaseRepository;
|
|
||||||
|
|
||||||
ruleFor(x -> {
|
|
||||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
|
||||||
List<UUID> groupIds = Arrays.asList(x.getGroupId());
|
|
||||||
criteria.setGroupIds(groupIds);
|
|
||||||
return this.databaseRepository.getDmpDao().getWithCriteria(criteria).getSingleOrDefault().getVersion();
|
|
||||||
}).compareAs(x -> x.getVersion(), ((leftItem, rightItem) -> leftItem > rightItem))
|
|
||||||
.withName("version").withMessage("datamanagementplannewversion.version.notacceptable");
|
|
||||||
|
|
||||||
ruleFor(x -> {
|
|
||||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
|
||||||
List<UUID> groupIds = Arrays.asList(x.getGroupId());
|
|
||||||
criteria.setGroupIds(groupIds);
|
|
||||||
return this.databaseRepository.getDmpDao().getWithCriteria(criteria).getSingleOrDefault().getVersion() + 1;
|
|
||||||
}).compareAs(x -> x.getVersion(), ((leftItem, rightItem) -> !leftItem.equals(rightItem)))
|
|
||||||
.withName("version").withMessage("datamanagementplannewversion.version.notnext");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supports(Class<?> aClass) {
|
|
||||||
return DataManagementPlanNewVersionModel.class.equals(aClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static boolean supportsType(Class<?> aClass) {
|
|
||||||
return DataManagementPlanNewVersionModel.class.equals(aClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
package eu.eudat.models.validators;
|
|
||||||
|
|
||||||
import eu.eudat.data.query.items.table.dmp.DataManagementPlanTableRequest;
|
|
||||||
import eu.eudat.models.validators.fluentvalidator.FluentValidator;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
|
|
||||||
@Component("dataManagementPlanTableRequestValidator")
|
|
||||||
public class DataManagementPlanTableRequestValidator extends FluentValidator<DataManagementPlanTableRequest> {
|
|
||||||
|
|
||||||
public DataManagementPlanTableRequestValidator() {
|
|
||||||
ruleFor(x -> x.getOffset()).compareAs((x -> 0), (leftItem, rightItem) -> leftItem < rightItem)
|
|
||||||
.withName("offset").withMessage("datamanagementplanrequest.offset.negative");
|
|
||||||
ruleFor(x -> x.getLength()).compareAs((x -> 0), (leftItem, rightItem) -> leftItem < rightItem)
|
|
||||||
.withName("length").withMessage("datamanagementplanrequest.length.negative");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supports(Class<?> clazz) {
|
|
||||||
return DataManagementPlanTableRequest.class.equals(clazz);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean supportsType(Class<?> clazz) {
|
|
||||||
return DataManagementPlanTableRequest.class.equals(clazz);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue