From e47d488cacc710a31997576d9b1541d83fb161e4 Mon Sep 17 00:00:00 2001 From: annabakouli Date: Wed, 3 Jan 2018 12:44:54 +0200 Subject: [PATCH] no message --- .../main/java/eu/eudat/controllers/Admin.java | 19 +-- .../eu/eudat/controllers/BaseController.java | 26 ++++ .../main/java/eu/eudat/controllers/DMPs.java | 14 +- .../eudat/controllers/DataRepositories.java | 76 +--------- .../controllers/DatasetProfileController.java | 9 +- .../eu/eudat/controllers/DatasetProfiles.java | 28 +++- .../java/eu/eudat/controllers/Projects.java | 14 +- .../eudat/dao/entities/DatasetProfileDao.java | 1 + .../dao/entities/DatasetProfileDaoImpl.java | 8 +- .../eu/eudat/entities/DatasetProfile.java | 32 +---- .../eudat/entities/DatasetProfileRuleset.java | 14 +- .../entities/DatasetProfileViewstyle.java | 14 +- .../DatabaseViewStyleDefinition.java | 2 +- .../Field.java | 94 ++++-------- .../FieldSet.java | 126 +++++++++++----- .../Section.java | 30 ++-- .../ViewStyleModel.java | 2 +- .../xmlmodels/modeldefinition/Field.java | 92 ------------ .../xmlmodels/modeldefinition/FieldGroup.java | 56 -------- .../viewstyledefinition/FieldGroup.java | 135 ------------------ .../viewstyledefinition/FieldSet.java | 75 ---------- .../java/eu/eudat/helpers/Transformers.java | 6 +- .../java/eu/eudat/managers/AdminManager.java | 41 ++---- .../eudat/managers/DatasetProfileManager.java | 20 +++ .../java/eu/eudat/managers/UserManager.java | 10 +- .../components/datasetprofile/Field.java | 73 ++-------- .../components/datasetprofile/FieldSet.java | 61 +++++--- .../components/datasetprofile/Group.java | 121 ---------------- .../components/datasetprofile/Section.java | 25 ++-- .../admin/composite/DatasetProfile.java | 8 +- .../eudat/models/components/commons/Rule.java | 4 +- .../DatasetProfileTableRequestItem.java | 10 ++ .../eudat/models/errormodels/FieldError.java | 31 ---- .../errormodels/ValidationErrorContext.java | 15 +- .../user/components/datasetprofile/Field.java | 80 +++-------- .../components/datasetprofile/FieldSet.java | 59 +++++--- .../user/components/datasetprofile/Group.java | 130 ----------------- .../components/datasetprofile/Section.java | 27 ++-- .../models/user/composite/DatasetProfile.java | 8 +- .../eu/eudat/utilities/ModelSerializer.java | 3 +- .../eudat/utilities/ViewStyleDefinition.java | 3 +- .../utilities/builders/ModelBuilder.java | 13 +- .../eudat/utilities/builders/XmlBuilder.java | 3 - .../helpers/ModelBuilderCollector.java | 112 +-------------- .../utilities/helpers/ModelSerializer.java | 3 +- .../eu/eudat/validators/ApiValidator.java | 9 ++ ...taManagementPlanTableRequestValidator.java | 11 +- .../ProjectTableRequestValidator.java | 36 +++++ .../src/main/resources/application.properties | 6 +- .../src/main/resources/messages.properties | 5 +- .../app/projects/project-listing.component.ts | 2 +- .../criteria/base/base-criteria.component.ts | 12 +- .../projects/projects-criteria.component.html | 7 +- 53 files changed, 501 insertions(+), 1320 deletions(-) create mode 100644 dmp-backend/src/main/java/eu/eudat/controllers/BaseController.java rename dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/{viewstyledefinition => datasetprofiledefinition}/DatabaseViewStyleDefinition.java (66%) rename dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/{viewstyledefinition => datasetprofiledefinition}/Field.java (56%) rename dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/{modeldefinition => datasetprofiledefinition}/FieldSet.java (53%) rename dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/{viewstyledefinition => datasetprofiledefinition}/Section.java (87%) rename dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/{viewstyledefinition => datasetprofiledefinition}/ViewStyleModel.java (95%) delete mode 100644 dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/Field.java delete mode 100644 dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/FieldGroup.java delete mode 100644 dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/FieldGroup.java delete mode 100644 dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/FieldSet.java delete mode 100644 dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Group.java create mode 100644 dmp-backend/src/main/java/eu/eudat/models/datasetprofile/DatasetProfileTableRequestItem.java delete mode 100644 dmp-backend/src/main/java/eu/eudat/models/errormodels/FieldError.java delete mode 100644 dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Group.java create mode 100644 dmp-backend/src/main/java/eu/eudat/validators/ApiValidator.java create mode 100644 dmp-backend/src/main/java/eu/eudat/validators/ProjectTableRequestValidator.java diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/Admin.java b/dmp-backend/src/main/java/eu/eudat/controllers/Admin.java index 3ddcb2580..acacd3b52 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/Admin.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/Admin.java @@ -32,11 +32,7 @@ public class Admin { @RequestMapping(method = RequestMethod.POST, value = { "/admin/addDmp" },consumes = "application/json", produces="application/json") public ResponseEntity addDmp(@RequestBody DatasetProfile profile){ try{ - eu.eudat.entities.DatasetProfile modelDefinition = AdminManager.generateModelDefinition(profile); - eu.eudat.entities.DatasetProfileViewstyle viewStyleDefinition = AdminManager.generateViewStyleDefinition(profile); - - viewStyleDefinition = datasetProfileViewstyleDao.create(viewStyleDefinition); - modelDefinition.setViewstyle(viewStyleDefinition); + eu.eudat.entities.DatasetProfile modelDefinition = AdminManager.generateViewStyleDefinition(profile); datasetProfileDao.createOrUpdate(modelDefinition); return ResponseEntity.status(HttpStatus.OK).body(modelDefinition.getId()); @@ -50,20 +46,9 @@ public class Admin { @RequestMapping(method = RequestMethod.POST, value = { "/admin/addDmp/{id}" },consumes = "application/json", produces="application/json") public ResponseEntity updateDmp(@PathVariable String id,@RequestBody DatasetProfile profile){ try{ - eu.eudat.entities.DatasetProfile modelDefinition = AdminManager.generateModelDefinition(profile); - eu.eudat.entities.DatasetProfileViewstyle viewStyleDefinition = AdminManager.generateViewStyleDefinition(profile); + eu.eudat.entities.DatasetProfile modelDefinition = AdminManager.generateViewStyleDefinition(profile); - eu.eudat.entities.DatasetProfile datasetprofile = datasetProfileDao.find(UUID.fromString(id)); - - eu.eudat.entities.DatasetProfileViewstyle oldviewStyle = datasetProfileViewstyleDao.read((datasetprofile.getViewstyle().getId())); - oldviewStyle.setDefinition(viewStyleDefinition.getDefinition()); - datasetProfileViewstyleDao.update(oldviewStyle); - - - //if(!datasetprofile.getDataset().isEmpty())throw new Exception ("Cannot edit a Profile that has Datasets assigned"); - - datasetprofile.setViewstyle(oldviewStyle); datasetprofile.setDefinition(modelDefinition.getDefinition()); datasetProfileDao.createOrUpdate(datasetprofile); diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/BaseController.java b/dmp-backend/src/main/java/eu/eudat/controllers/BaseController.java new file mode 100644 index 000000000..164657957 --- /dev/null +++ b/dmp-backend/src/main/java/eu/eudat/controllers/BaseController.java @@ -0,0 +1,26 @@ +package eu.eudat.controllers; + +import eu.eudat.validators.DataManagementPlanTableRequestValidator; +import eu.eudat.validators.ProjectTableRequestValidator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; + +/** + * Created by ikalyvas on 1/2/2018. + */ +public abstract class BaseController { + + private ApplicationContext springContext; + + public BaseController(ApplicationContext springContext){ + this.springContext = springContext; + } + + @InitBinder() + protected void initBinder(WebDataBinder binder) { + if (binder.getTarget() != null && DataManagementPlanTableRequestValidator.supportsType((binder.getTarget().getClass()))) binder.addValidators(this.springContext.getBean("dataManagementPlanTableRequestValidator",DataManagementPlanTableRequestValidator.class)); + if (binder.getTarget() != null && ProjectTableRequestValidator.supportsType((binder.getTarget().getClass()))) binder.addValidators(this.springContext.getBean("projectTableRequestValidator",ProjectTableRequestValidator.class)); + } +} diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/DMPs.java b/dmp-backend/src/main/java/eu/eudat/controllers/DMPs.java index d7a00934b..34f4a4e90 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/DMPs.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/DMPs.java @@ -16,6 +16,7 @@ import eu.eudat.models.listingmodels.DataManagementPlanListingModel; import eu.eudat.models.security.Principal; import eu.eudat.validators.DataManagementPlanTableRequestValidator; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.http.HttpStatus; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.WebDataBinder; @@ -39,8 +40,11 @@ import eu.eudat.managers.DataManagementPlanManager; @RestController @CrossOrigin -public class DMPs { - +public class DMPs extends BaseController { + @Autowired + public DMPs(ApplicationContext applicationContext){ + super(applicationContext); + } @Autowired private DataRepositoryDao dataRepositoryDao; @Autowired private DatasetDao datasetDao; @Autowired private DatasetProfileDao datasetProfileDao; @@ -55,10 +59,6 @@ public class DMPs { @Autowired private ServiceDao serviceDao; @Autowired private UserInfoDao userInfoDao; - @InitBinder - protected void initBinder(WebDataBinder binder){ - binder.setValidator(new DataManagementPlanTableRequestValidator()); - } @RequestMapping(method = RequestMethod.POST, value = { "/dmps/getPaged" }, consumes = "application/json", produces="application/json") public @ResponseBody ResponseItem> getPaged(@Valid @RequestBody DataManagementPlanTableRequest dataManagementPlanTableRequest) { @@ -73,7 +73,7 @@ public class DMPs { } @RequestMapping(method = RequestMethod.GET, value = { "/dmps/getSingle/{id}" }, produces="application/json") - public @ResponseBody ResponseItem getPaged(@PathVariable String id) { + public @ResponseBody ResponseItem getSingle(@PathVariable String id) { try { eu.eudat.models.dmp.DataManagementPlan project = new DataManagementPlanManager().getSingle(dMPDao, id); return new ResponseItem().status(HttpStatus.OK).payload(project); diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/DataRepositories.java b/dmp-backend/src/main/java/eu/eudat/controllers/DataRepositories.java index a329948bf..589e486d8 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/DataRepositories.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/DataRepositories.java @@ -67,83 +67,9 @@ public class DataRepositories { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null); } catch(HugeResultSet ex) { - return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).body(null); //the ex.getMessage has the appropriate text description + return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).body(null); } } - - - - // MANAGE DATAREPOSITORy(IES) - -// @RequestMapping(method = RequestMethod.GET, value = { "/datarepos" }) -// public @ResponseBody ResponseEntity> listDataRepositories(){ -// try { -// List allIDs = dataRepositoryDao.listAllIDs(); -// return ResponseEntity.status(HttpStatus.OK).body(allIDs); -// } -// catch(Exception ex) { -// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null); -// } -// } -// -// -// @RequestMapping(method = RequestMethod.GET, value = { "/datarepos/{id}" }) -// public @ResponseBody ResponseEntity getDataRepository(@PathVariable("id") String id) { -// try { -// DataRepository dataRepository = dataRepositoryDao.read(UUID.fromString(id)); -// return ResponseEntity.status(HttpStatus.OK).body(dataRepository); -// } -// catch(Exception ex) { -// return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); -// } -// } -// -// -// -// @RequestMapping(method = RequestMethod.GET, value = { "/datarepo/getAll" }, produces="application/json") -// public @ResponseBody ResponseEntity> getAllDataRepositories(){ -// -// try { -// List allDataRepositories = dataRepositoryDao.getAll(); -// -// return ResponseEntity.status(HttpStatus.OK).body(allDataRepositories); -// -// } -// catch(Exception ex) { -// ex.printStackTrace(); -// return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); -// } -// -// } -// -// -// @Transactional -// @RequestMapping(method = RequestMethod.POST, value = { "/datarepo/create" }, consumes = "application/json", produces="application/json") -// public @ResponseBody ResponseEntity setOrganisation(@RequestBody DataRepository dataRepository) { -// try { -// DataRepository createdDataRepository = dataRepositoryDao.update(dataRepository); -// return ResponseEntity.status(HttpStatus.CREATED).body(createdDataRepository); -// } catch (Exception e) { -// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null); -// } -// } -// -// -// @RequestMapping(method = RequestMethod.POST, value = { "/datarepo/delete" }, consumes = "application/json", produces="text/plain") -// public @ResponseBody ResponseEntity delete(@RequestBody DataRepository dataRepository) { -// -// DataRepository dr = new DataRepository(); -// dr.setId(dataRepository.getId()); -// try { -// dataRepositoryDao.delete(dr); -// return ResponseEntity.status(HttpStatus.CREATED).body("{\"msg\":\"Deleted data repository!\"}"); -// } catch (Exception e) { -// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{\"msg\":\"Could not delete data repository!\"}"); -// } -// -// } - - } diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfileController.java b/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfileController.java index dade60ac0..156104c5f 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfileController.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfileController.java @@ -3,7 +3,6 @@ package eu.eudat.controllers; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.UUID; @@ -81,10 +80,10 @@ public class DatasetProfileController { public ResponseEntity getDataForAutocomplete(@RequestBody AutoCompleteLookupItem lookupItem){ try { eu.eudat.entities.Dataset dataset = datasetDao.find(UUID.fromString(lookupItem.getProfileID())); - Document viewStyleDoc = XmlBuilder.fromXml(dataset.getProfile().getViewstyle().getDefinition()); - Element field = viewStyleDoc.getElementById(lookupItem.getFieldID()); - eu.eudat.entities.xmlmodels.viewstyledefinition.Field modelfield = new eu.eudat.entities.xmlmodels.viewstyledefinition.Field(); - modelfield.fromXml(field); + //Document viewStyleDoc = XmlBuilder.fromXml(dataset.getProfile().getViewstyle().getDefinition()); + //Element field = viewStyleDoc.getElementById(lookupItem.getFieldID()); + eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field modelfield = new eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field(); + //modelfield.fromXml(field); AutoCompleteData data = new AutoCompleteData().fromData(modelfield.getData()); URL url = new URL(data.getUrl()+lookupItem.getSearchTerm()); diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfiles.java b/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfiles.java index a84d264f0..b216f96bd 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfiles.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfiles.java @@ -12,6 +12,9 @@ import eu.eudat.entities.DatasetProfileViewstyle; import eu.eudat.managers.DatasetProfileManager; import eu.eudat.models.datasetprofile.DatasetProfileAutocompleteItem; import eu.eudat.models.datasetprofile.DatasetProfileAutocompleteRequest; +import eu.eudat.models.datasetprofile.DatasetProfileListingModel; +import eu.eudat.models.datasetprofile.DatasetProfileTableRequestItem; +import eu.eudat.models.helpers.DataTableData; import eu.eudat.models.helpers.responses.ResponseItem; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -40,7 +43,6 @@ import eu.eudat.dao.entities.ServiceDao; @RestController @CrossOrigin -@RequestMapping(method = RequestMethod.POST, value = { "/dmps" }) public class DatasetProfiles { @Autowired private DataRepositoryDao dataRepositoryDao; @@ -57,7 +59,7 @@ public class DatasetProfiles { @Autowired private ServiceDao serviceDao; - @RequestMapping(method = RequestMethod.POST, value = { "/datasetprofiles/get" }, produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/dmps/datasetprofiles/get" }, produces="application/json") public @ResponseBody ResponseItem> get(@RequestBody DatasetProfileAutocompleteRequest datasetProfileAutocompleteRequest) { try { List datasetProfileAutocompleteItems = DatasetProfileManager.getWithCriteria(datasetProfileDao,datasetProfileAutocompleteRequest); @@ -67,5 +69,27 @@ public class DatasetProfiles { return new ResponseItem>().status(HttpStatus.BAD_REQUEST); } } + + @RequestMapping(method = RequestMethod.POST, value = { "/dmps/datasetprofiles/getPaged" }, produces="application/json") + public @ResponseBody ResponseItem> getPaged(@RequestBody DatasetProfileTableRequestItem datasetProfileTableRequestItem) { + try { + DataTableData datasetProfileTableData = DatasetProfileManager.getPaged(datasetProfileDao,datasetProfileTableRequestItem); + return new ResponseItem>().status(HttpStatus.OK).payload(datasetProfileTableData ); + } + catch(Exception ex) { + return new ResponseItem>().status(HttpStatus.BAD_REQUEST); + } + } + + @RequestMapping(method = RequestMethod.GET, value = { "/datasetprofiles/getAll" }, produces="application/json") + public @ResponseBody ResponseItem> getAll() { + try { + List datasetProfileTableData = DatasetProfileManager.getAll(datasetProfileDao); + return new ResponseItem>().status(HttpStatus.OK).payload(datasetProfileTableData ); + } + catch(Exception ex) { + return new ResponseItem>().status(HttpStatus.BAD_REQUEST); + } + } } diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/Projects.java b/dmp-backend/src/main/java/eu/eudat/controllers/Projects.java index a8b599010..862a4a1ea 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/Projects.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/Projects.java @@ -7,6 +7,7 @@ import java.util.Set; import java.util.UUID; import javax.transaction.Transactional; +import javax.validation.Valid; import eu.eudat.models.criteria.ProjectCriteria; import eu.eudat.models.external.OrganisationsExternalSourcesModel; @@ -16,6 +17,7 @@ import eu.eudat.models.helpers.responses.*; import eu.eudat.models.project.ProjectCriteriaRequest; import eu.eudat.models.security.Principal; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.core.context.SecurityContextHolder; @@ -56,8 +58,12 @@ import eu.eudat.proxy.fetching.RemoteFetcher; @RestController @CrossOrigin -public class Projects { - +public class Projects extends BaseController{ + + @Autowired + public Projects(ApplicationContext applicationContext){ + super(applicationContext); + } @Autowired private DataRepositoryDao dataRepositoryDao; @Autowired private DatasetDao datasetDao; @Autowired private DatasetProfileDao datasetProfileDao; @@ -79,7 +85,7 @@ public class Projects { @RequestMapping(method = RequestMethod.POST, value = { "/projects/getPaged" }, consumes = "application/json", produces="application/json") - public @ResponseBody ResponseItem> getPaged(@RequestBody ProjectTableRequest projectTableRequest) { + public @ResponseBody ResponseItem> getPaged(@Valid @RequestBody ProjectTableRequest projectTableRequest) { try { DataTableData dataTable = new ProjectManager().getPaged(projectDao, projectTableRequest); return new ResponseItem>().payload(dataTable).status(HttpStatus.OK); @@ -118,7 +124,7 @@ public class Projects { @RequestMapping(method = RequestMethod.DELETE, value = { "/projects/inactivate/{id}" }, consumes = "application/json", produces="application/json") public @ResponseBody ResponseItem inactivate(@PathVariable String id) { try { - Project inactivate = new ProjectManager().inactivate(projectDao,id); + Project project = new ProjectManager().inactivate(projectDao,id); return new ResponseItem().status(HttpStatus.OK); }catch (Exception ex){ return new ResponseItem().status(HttpStatus.BAD_REQUEST).message(ex.getMessage()); diff --git a/dmp-backend/src/main/java/eu/eudat/dao/entities/DatasetProfileDao.java b/dmp-backend/src/main/java/eu/eudat/dao/entities/DatasetProfileDao.java index a0786e266..a41a6a53e 100644 --- a/dmp-backend/src/main/java/eu/eudat/dao/entities/DatasetProfileDao.java +++ b/dmp-backend/src/main/java/eu/eudat/dao/entities/DatasetProfileDao.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; public interface DatasetProfileDao { QueryableList getWithCriteria(DatasetProfileCriteria criteria); + QueryableList getAll(); DatasetProfile createOrUpdate(DatasetProfile item); diff --git a/dmp-backend/src/main/java/eu/eudat/dao/entities/DatasetProfileDaoImpl.java b/dmp-backend/src/main/java/eu/eudat/dao/entities/DatasetProfileDaoImpl.java index 4728b4e90..9ff65f6b4 100644 --- a/dmp-backend/src/main/java/eu/eudat/dao/entities/DatasetProfileDaoImpl.java +++ b/dmp-backend/src/main/java/eu/eudat/dao/entities/DatasetProfileDaoImpl.java @@ -31,6 +31,7 @@ public class DatasetProfileDaoImpl implements DatasetProfileDao { return query; } + @Override public DatasetProfile createOrUpdate(DatasetProfile item) { return this.databaseService.createOrUpdate(item,DatasetProfile.class); @@ -38,11 +39,16 @@ public class DatasetProfileDaoImpl implements DatasetProfileDao { @Override public DatasetProfile find(UUID id) { - return null; + return databaseService.getQueryable(DatasetProfile.class).where((builder, root) -> builder.equal(root.get("id"),id)).toList().get(0); } @Override public Long count() { return null; } + + @Override + public QueryableList getAll() { + return databaseService.getQueryable(DatasetProfile.class); + } } diff --git a/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfile.java b/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfile.java index ff96cfbea..9735c7ff5 100644 --- a/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfile.java +++ b/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfile.java @@ -45,19 +45,6 @@ public class DatasetProfile implements Serializable,DataEntity { @OneToMany(fetch = FetchType.LAZY, mappedBy = "profile") private Set dataset; - - - @OneToOne(fetch = FetchType.LAZY) -// @Cascade(value=org.hibernate.annotations.CascadeType.ALL) - @JoinColumn(name = "\"Ruleset\"", nullable = true) - private DatasetProfileRuleset ruleset; - - - @OneToOne(fetch = FetchType.LAZY) -// @Cascade(value=org.hibernate.annotations.CascadeType.ALL) - @JoinColumn(name = "\"Viewstyle\"", nullable = true) - private DatasetProfileViewstyle viewstyle; - @Type(type="eu.eudat.typedefinition.XMLType") @Column(name = "\"Definition\"", columnDefinition = "xml", nullable = false) @@ -136,22 +123,6 @@ public class DatasetProfile implements Serializable,DataEntity { } - public DatasetProfileRuleset getRuleset() { - return ruleset; - } - - public void setRuleset(DatasetProfileRuleset ruleset) { - this.ruleset = ruleset; - } - - - public DatasetProfileViewstyle getViewstyle() { - return viewstyle; - } - - public void setViewstyle(DatasetProfileViewstyle viewstyle) { - this.viewstyle = viewstyle; - } public String getDefinition() { return definition; @@ -173,8 +144,7 @@ public class DatasetProfile implements Serializable,DataEntity { @Override public String toString() { - return "DatasetProfileListingModel [id=" + id + ", label=" + label + ", dataset=" + dataset + ", ruleset=" + ruleset - + ", viewstyle=" + viewstyle + ", definition=" + definition + "]"; + return "DatasetProfileListingModel [id=" + id + ", label=" + label + ", dataset=" + dataset + ", definition=" + definition + "]"; } diff --git a/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfileRuleset.java b/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfileRuleset.java index df2761f51..14c2328cf 100644 --- a/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfileRuleset.java +++ b/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfileRuleset.java @@ -34,11 +34,7 @@ public class DatasetProfileRuleset implements Serializable { @GenericGenerator(name = "uuid2", strategy = "uuid2") @Column(name = "\"ID\"", updatable = false, nullable = false, columnDefinition = "BINARY(16)") private UUID id; - - - @OneToOne(fetch = FetchType.LAZY, mappedBy = "ruleset") - private DatasetProfile datasetProfile; - + @Column(name = "\"Label\"") private String label; @@ -73,14 +69,6 @@ public class DatasetProfileRuleset implements Serializable { this.definition = definition; } - public DatasetProfile getDatasetProfile() { - return datasetProfile; - } - public void setDatasetProfile(DatasetProfile datasetProfile) { - this.datasetProfile = datasetProfile; - } - - } diff --git a/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfileViewstyle.java b/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfileViewstyle.java index 18c9657bc..e4ee02656 100644 --- a/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfileViewstyle.java +++ b/dmp-backend/src/main/java/eu/eudat/entities/DatasetProfileViewstyle.java @@ -34,10 +34,7 @@ public class DatasetProfileViewstyle implements Serializable { @GenericGenerator(name = "uuid2", strategy = "uuid2") @Column(name = "\"ID\"", updatable = false, nullable = false, columnDefinition = "BINARY(16)") private UUID id; - - - @OneToOne(fetch = FetchType.LAZY, mappedBy = "viewstyle") - private DatasetProfile datasetProfile; + @Column(name = "\"Label\"") private String label; @@ -72,14 +69,5 @@ public class DatasetProfileViewstyle implements Serializable { this.definition = definition; } - public DatasetProfile getDatasetProfile() { - return datasetProfile; - } - - public void setDatasetProfile(DatasetProfile datasetProfile) { - this.datasetProfile = datasetProfile; - } - - } diff --git a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/DatabaseViewStyleDefinition.java b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/DatabaseViewStyleDefinition.java similarity index 66% rename from dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/DatabaseViewStyleDefinition.java rename to dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/DatabaseViewStyleDefinition.java index c3b51be23..85b9bfd94 100644 --- a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/DatabaseViewStyleDefinition.java +++ b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/DatabaseViewStyleDefinition.java @@ -1,4 +1,4 @@ -package eu.eudat.entities.xmlmodels.viewstyledefinition; +package eu.eudat.entities.xmlmodels.datasetprofiledefinition; import eu.eudat.utilities.DatabaseDefinition; diff --git a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/Field.java b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/Field.java similarity index 56% rename from dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/Field.java rename to dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/Field.java index 0733c2474..43044298d 100644 --- a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/Field.java +++ b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/Field.java @@ -1,9 +1,9 @@ -package eu.eudat.entities.xmlmodels.viewstyledefinition; +package eu.eudat.entities.xmlmodels.datasetprofiledefinition; +import eu.eudat.models.components.commons.DefaultValue; +import eu.eudat.models.components.commons.Multiplicity; import org.w3c.dom.Document; import org.w3c.dom.Element; - -import eu.eudat.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; import eu.eudat.models.components.commons.ViewStyle; import eu.eudat.models.components.commons.Visibility; import eu.eudat.models.components.commons.datafield.FieldData; @@ -14,11 +14,8 @@ import eu.eudat.utilities.builders.XmlBuilder; public class Field implements DatabaseViewStyleDefinition,XmlSerializable{ private String id; private int ordinal; - private boolean defaultVisibility; - private String title; - private String description; - private String extendedDescription; - private ViewStyle viewStyle; + private ViewStyle viewStyle; + private DefaultValue defaultValue; private Visibility visible; private FieldData data; public String getId() { @@ -33,30 +30,6 @@ public class Field implements DatabaseViewStyleDefinition,XmlSerializable public void setOrdinal(int ordinal) { this.ordinal = ordinal; } - public boolean getDefaultVisibility() { - return defaultVisibility; - } - public void setDefaultVisibility(boolean defaultVisibility) { - this.defaultVisibility = defaultVisibility; - } - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } - public String getDescription() { - return description; - } - public void setDescription(String description) { - this.description = description; - } - public String getExtendedDescription() { - return extendedDescription; - } - public void setExtendedDescription(String extendedDescription) { - this.extendedDescription = extendedDescription; - } public ViewStyle getViewStyle() { return viewStyle; } @@ -70,7 +43,15 @@ public class Field implements DatabaseViewStyleDefinition,XmlSerializable public void setData(FieldData data) { this.data = data; } - + + public DefaultValue getDefaultValue() { + return defaultValue; + } + + public void setDefaultValue(DefaultValue defaultValue) { + this.defaultValue = defaultValue; + } + public Visibility getVisible() { return visible; } @@ -82,28 +63,20 @@ public class Field implements DatabaseViewStyleDefinition,XmlSerializable Element rootElement = doc.createElement("field"); rootElement.setAttribute("id", this.id); rootElement.setAttribute("ordinal", ""+this.ordinal); - rootElement.setAttribute("defaultVisibility",""+this.defaultVisibility); - - Element extendedDescription = doc.createElement("extendedDescription"); - extendedDescription.setTextContent(this.extendedDescription); - - Element description = doc.createElement("description"); - description.setTextContent(this.description); - - Element title = doc.createElement("title"); - title.setTextContent(this.title); - + Element viewStyle = doc.createElement("viewStyle"); viewStyle.setAttribute("renderstyle", this.viewStyle.getRenderStyle()); viewStyle.setAttribute("cssClass", this.viewStyle.getCssClass()); - + Element visibility = this.visible.toXml(doc); - - rootElement.appendChild(title); + + Element defaultValue = doc.createElement("defaultValue"); + defaultValue.setAttribute("type",this.defaultValue.getType()); + defaultValue.setAttribute("value",this.defaultValue.getValue()); + + rootElement.appendChild(defaultValue); rootElement.appendChild(visibility); - rootElement.appendChild(extendedDescription); rootElement.appendChild(viewStyle); - rootElement.appendChild(description); if(this.data!=null)rootElement.appendChild(this.data.toXml(doc)); return rootElement; } @@ -111,34 +84,27 @@ public class Field implements DatabaseViewStyleDefinition,XmlSerializable public Field fromXml(Element element) { this.id = element.getAttribute("id"); this.ordinal = Integer.parseInt(element.getAttribute("ordinal")); - this.defaultVisibility = Boolean.valueOf(element.getAttribute("defaultVisibility")).booleanValue(); - - Element extendedDescription = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "extendedDescription"); - this.extendedDescription = extendedDescription.getTextContent(); - - Element description = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "description"); - - this.description = description.getTextContent(); - - Element title = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "title"); - - this.title = title.getTextContent(); - this.viewStyle = new ViewStyle(); Element viewStyle = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "viewStyle"); this.viewStyle.setRenderStyle(viewStyle.getAttribute("renderstyle")); this.viewStyle.setCssClass(viewStyle.getAttribute("cssClass")); - + Element visibility = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "visible"); this.visible = new Visibility().fromXml(visibility); - + Element dataElement = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "data"); + Element defaultValue = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "defaultValue"); + + this.defaultValue = new DefaultValue(); + this.defaultValue.setType(defaultValue.getAttribute("type")); + this.defaultValue.setValue(defaultValue.getAttribute("value")); this.data = new ModelBuilder().toFieldData(null, this.viewStyle.getRenderStyle(),dataElement); if(this.data!=null)this.data.fromXml(dataElement); + return this; } diff --git a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/FieldSet.java b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/FieldSet.java similarity index 53% rename from dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/FieldSet.java rename to dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/FieldSet.java index 1cde26bab..2128c1058 100644 --- a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/FieldSet.java +++ b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/FieldSet.java @@ -1,76 +1,126 @@ -package eu.eudat.entities.xmlmodels.modeldefinition; +package eu.eudat.entities.xmlmodels.datasetprofiledefinition; import java.util.LinkedList; import java.util.List; +import eu.eudat.models.components.commons.Multiplicity; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import eu.eudat.models.components.commons.Multiplicity; import eu.eudat.utilities.XmlSerializable; import eu.eudat.utilities.builders.XmlBuilder; -public class FieldSet implements DatabaseModelDefinition,XmlSerializable
{ - +public class FieldSet implements DatabaseViewStyleDefinition,XmlSerializable
{ private String id; - private int ordinal; - private Multiplicity multiplicity; - private List fields; - - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } - public int getOrdinal() { - return ordinal; - } - public void setOrdinal(int ordinal) { - this.ordinal = ordinal; - } + private String title; + private String description; + private String extendedDescription; + private Multiplicity multiplicity; public List getFields() { return fields; } + public void setFields(List fields) { this.fields = fields; + } + + public String getId() { + return id; } - + + public void setId(String id) { + this.id = id; + } + + public int getOrdinal() { + return ordinal; + } + + public void setOrdinal(int ordinal) { + this.ordinal = ordinal; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getExtendedDescription() { + return extendedDescription; + } + + public void setExtendedDescription(String extendedDescription) { + this.extendedDescription = extendedDescription; + } + public Multiplicity getMultiplicity() { return multiplicity; } + public void setMultiplicity(Multiplicity multiplicity) { this.multiplicity = multiplicity; } + @Override public Element toXml(Document doc) { - - Element rootElement = doc.createElement("fieldset"); - rootElement.setAttribute("id", this.id); - rootElement.setAttribute("ordinal",""+this.ordinal); - - Element fieldsElement = doc.createElement("fields"); - for(Field field:this.fields){ - fieldsElement.appendChild(field.toXml(doc)); - } - rootElement.appendChild(fieldsElement); + Element fieldSet = doc.createElement("fieldSet"); + fieldSet.setAttribute("id", this.id); + fieldSet.setAttribute("ordinal", ""+this.ordinal); + + Element title = doc.createElement("title"); + title.setTextContent(this.title); + + Element description = doc.createElement("description"); + description.setTextContent(this.description); + + Element extendedDescription = doc.createElement("extendedDescription"); + extendedDescription.setTextContent(this.extendedDescription); + Element multiplicity = doc.createElement("multiplicity"); multiplicity.setAttribute("min", ""+this.multiplicity.getMin()); multiplicity.setAttribute("max", ""+this.multiplicity.getMax()); - rootElement.appendChild(multiplicity); - rootElement.appendChild(multiplicity); - return rootElement; + + + + Element fieldsElement = doc.createElement("fields"); + for(Field field : fields){ + fieldsElement.appendChild(field.toXml(doc)); + } + fieldSet.appendChild(fieldsElement); + fieldSet.appendChild(multiplicity); + fieldSet.appendChild(title); + fieldSet.appendChild(description); + fieldSet.appendChild(extendedDescription); + return fieldSet; } + @Override public FieldSet fromXml(Element element) { this.id = element.getAttribute("id"); this.ordinal = Integer.parseInt(element.getAttribute("ordinal")); - this.fields = new LinkedList(); + Element title = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "title"); + this.title = title.getTextContent(); + Element description = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "description"); + this.description = description.getTextContent(); + Element extendedDescription = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "extendedDescription"); + this.extendedDescription = extendedDescription.getTextContent(); + Element fields = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fields"); if(fields!=null){ @@ -81,15 +131,15 @@ public class FieldSet implements DatabaseModelDefinition,XmlSerializable sections; - private List fieldGroups; + private List
fieldSets; public String getId() { return id; } @@ -63,13 +63,15 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable sections) { this.sections = sections; } - public List getFieldGroups() { - return fieldGroups; + + public List
getFieldSets() { + return fieldSets; } - public void setFieldGroups(List fieldGroups) { - this.fieldGroups = fieldGroups; + + public void setFieldSets(List
fieldSets) { + this.fieldSets = fieldSets; } - + public String getExtendedDescription() { return extendedDescription; } @@ -102,10 +104,10 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable(); - Element fieldGroups = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fieldGroups"); + this.fieldSets = new LinkedList
(); + Element fieldGroups = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fieldSets"); if(fieldGroups!=null){ NodeList fieldGroupElements = fieldGroups.getChildNodes(); for (int temp = 0; temp < fieldGroupElements.getLength(); temp++) { Node fieldGroupElement = fieldGroupElements.item(temp); if (fieldGroupElement.getNodeType() == Node.ELEMENT_NODE) { - this.fieldGroups.add(new FieldGroup().fromXml((Element)fieldGroupElement)); + this.fieldSets.add(new FieldSet().fromXml((Element)fieldGroupElement)); } } } diff --git a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/ViewStyleModel.java b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/ViewStyleModel.java similarity index 95% rename from dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/ViewStyleModel.java rename to dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/ViewStyleModel.java index dc336e832..b7d66dfcd 100644 --- a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/ViewStyleModel.java +++ b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/datasetprofiledefinition/ViewStyleModel.java @@ -1,4 +1,4 @@ -package eu.eudat.entities.xmlmodels.viewstyledefinition; +package eu.eudat.entities.xmlmodels.datasetprofiledefinition; import java.util.LinkedList; import java.util.List; diff --git a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/Field.java b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/Field.java deleted file mode 100644 index 97ebdda30..000000000 --- a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/Field.java +++ /dev/null @@ -1,92 +0,0 @@ -package eu.eudat.entities.xmlmodels.modeldefinition; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import eu.eudat.models.components.commons.DefaultValue; -import eu.eudat.models.components.commons.Multiplicity; -import eu.eudat.utilities.XmlSerializable; -import eu.eudat.utilities.builders.XmlBuilder; - -public class Field implements DatabaseModelDefinition,XmlSerializable{ - - private String id; - private String datatype; - private int ordinal; - private DefaultValue defaultValue; - private Multiplicity multiplicity; - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } - public String getDatatype() { - return datatype; - } - public void setDatatype(String datatype) { - this.datatype = datatype; - } - public int getOrdinal() { - return ordinal; - } - public void setOrdinal(int ordinal) { - this.ordinal = ordinal; - } - - public DefaultValue getDefaultValue() { - return defaultValue; - } - public void setDefaultValue(DefaultValue defaultValue) { - this.defaultValue = defaultValue; - } - - public Multiplicity getMultiplicity() { - return multiplicity; - } - public void setMultiplicity(Multiplicity multiplicity) { - this.multiplicity = multiplicity; - } - - @Override - public Element toXml(Document doc) { - Element element = doc.createElement("field"); - element.setAttribute("id", this.id); - element.setAttribute("ordinal",""+this.ordinal); - element.setAttribute("datatype", this.datatype); - - Element defaultValue = doc.createElement("defaultValue"); - defaultValue.setAttribute("type", this.defaultValue.getType()); - defaultValue.setAttribute("value",this.defaultValue.getValue()); - - Element multiplicity = doc.createElement("multiplicity"); - multiplicity.setAttribute("min", ""+this.multiplicity.getMin()); - multiplicity.setAttribute("max", ""+this.multiplicity.getMax()); - - element.appendChild(defaultValue); - element.appendChild(multiplicity); - return element; - } - @Override - public Field fromXml(Element item) { - this.id = item.getAttribute("id"); - this.ordinal = Integer.parseInt(item.getAttribute("ordinal")); - this.datatype = item.getAttribute("datatype"); - - this.defaultValue = new DefaultValue(); - Element defaultValue = (Element)XmlBuilder.getNodeFromListByTagName(item.getChildNodes(), "defaultValue"); - - this.defaultValue.setType(defaultValue.getAttribute("type")); - this.defaultValue.setValue(defaultValue.getAttribute("value")); - - this.multiplicity = new Multiplicity(); - Element multiplicity = (Element)XmlBuilder.getNodeFromListByTagName(item.getChildNodes(), "multiplicity"); - - this.multiplicity.setMin(Integer.parseInt(multiplicity.getAttribute("min"))); - this.multiplicity.setMax(Integer.parseInt(multiplicity.getAttribute("max"))); - - return this; - } - - -} diff --git a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/FieldGroup.java b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/FieldGroup.java deleted file mode 100644 index 70559e789..000000000 --- a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/modeldefinition/FieldGroup.java +++ /dev/null @@ -1,56 +0,0 @@ -package eu.eudat.entities.xmlmodels.modeldefinition; - -import java.util.LinkedList; -import java.util.List; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import eu.eudat.utilities.XmlSerializable; -import eu.eudat.utilities.builders.XmlBuilder; - -public class FieldGroup implements DatabaseModelDefinition,XmlSerializable{ - private List
fieldSets; - - public List
getFieldSets() { - return fieldSets; - } - - public void setFieldSets(List
fieldSets) { - this.fieldSets = fieldSets; - } - - @Override - public Element toXml(Document doc) { - Element rootElement = doc.createElement("root"); - Element fieldSetsElement = doc.createElement("fieldSets"); - for(FieldSet fieldSet : fieldSets){ - fieldSetsElement.appendChild(fieldSet.toXml(doc)); - } - rootElement.appendChild(fieldSetsElement); - doc.appendChild(rootElement); - return rootElement; - } - - @Override - public FieldGroup fromXml(Element element) { - this.fieldSets = new LinkedList(); - Element fieldSets = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fieldSets"); - - if(fieldSets!=null){ - NodeList fieldSetElements = fieldSets.getChildNodes(); - for (int temp = 0; temp < fieldSetElements.getLength(); temp++) { - Node fieldSetElement = fieldSetElements.item(temp); - if (fieldSetElement.getNodeType() == Node.ELEMENT_NODE) { - this.fieldSets.add(new FieldSet().fromXml((Element)fieldSetElement)); - } - } - } - return this; - } - - - -} diff --git a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/FieldGroup.java b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/FieldGroup.java deleted file mode 100644 index fc621317f..000000000 --- a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/FieldGroup.java +++ /dev/null @@ -1,135 +0,0 @@ -package eu.eudat.entities.xmlmodels.viewstyledefinition; - -import java.util.LinkedList; -import java.util.List; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import eu.eudat.utilities.XmlSerializable; -import eu.eudat.utilities.builders.XmlBuilder; - -public class FieldGroup implements DatabaseViewStyleDefinition,XmlSerializable{ - private String id; - private int ordinal; - private boolean defaultVisibility; - private int page; - private String description; - private String title; - private String extendedDescription; - private List
fieldSets; - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } - public int getOrdinal() { - return ordinal; - } - public void setOrdinal(int ordinal) { - this.ordinal = ordinal; - } - public boolean isDefaultVisibility() { - return defaultVisibility; - } - public void setDefaultVisibility(boolean defaultVisibility) { - this.defaultVisibility = defaultVisibility; - } - public int getPage() { - return page; - } - public void setPage(int page) { - this.page = page; - } - public String getDescription() { - return description; - } - public void setDescription(String description) { - this.description = description; - } - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } - public String getExtendedDescription() { - return extendedDescription; - } - public void setExtendedDescription(String extendedDescription) { - this.extendedDescription = extendedDescription; - } - public List
getFieldSets() { - return fieldSets; - } - public void setFieldSets(List
fieldSets) { - this.fieldSets = fieldSets; - } - @Override - public Element toXml(Document doc) { - Element root = doc.createElement("fieldGroup"); - root.setAttribute("id", this.id); - root.setAttribute("ordinal", ""+this.ordinal); - root.setAttribute("defaultVisibility", ""+this.defaultVisibility); - root.setAttribute("page", ""+this.page); - - Element title = doc.createElement("title"); - title.setTextContent(this.title); - - Element description = doc.createElement("description"); - description.setTextContent(this.description); - - Element extendedDescription = doc.createElement("extendedDescription"); - extendedDescription.setTextContent(this.extendedDescription); - - Element fieldSets = doc.createElement("fieldsets"); - for(FieldSet fieldSet : this.fieldSets){ - fieldSets.appendChild(fieldSet.toXml(doc)); - } - - root.appendChild(fieldSets); - root.appendChild(title); - root.appendChild(description); - root.appendChild(extendedDescription); - - return root; - } - - - - @Override - public FieldGroup fromXml(Element element) { - this.id = element.getAttribute("id"); - this.ordinal = Integer.parseInt(element.getAttribute("ordinal")); - this.defaultVisibility = Boolean.getBoolean(element.getAttribute("defaultVisibility")); - this.page = Integer.parseInt(element.getAttribute("page")); - - Element title = XmlBuilder.getNodeFromListByTagName(element.getChildNodes(),"title"); - this.title = title.getTextContent(); - - Element extendedDescription = XmlBuilder.getNodeFromListByTagName(element.getChildNodes(),"extendedDescription"); - this.extendedDescription = extendedDescription.getTextContent(); - - Element description = XmlBuilder.getNodeFromListByTagName(element.getChildNodes(),"description"); - this.description = description .getTextContent(); - - this.fieldSets = new LinkedList(); - Element fieldSets = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fieldsets"); - - if(fieldSets!=null){ - NodeList fieldSetElements = fieldSets.getChildNodes(); - for (int temp = 0; temp < fieldSetElements.getLength(); temp++) { - Node fieldSetElement = fieldSetElements.item(temp); - if (fieldSetElement.getNodeType() == Node.ELEMENT_NODE) { - this.fieldSets.add(new FieldSet().fromXml((Element)fieldSetElement)); - } - } - } - return this; - } - - -} diff --git a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/FieldSet.java b/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/FieldSet.java deleted file mode 100644 index 19f11da9b..000000000 --- a/dmp-backend/src/main/java/eu/eudat/entities/xmlmodels/viewstyledefinition/FieldSet.java +++ /dev/null @@ -1,75 +0,0 @@ -package eu.eudat.entities.xmlmodels.viewstyledefinition; - -import java.util.LinkedList; -import java.util.List; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import eu.eudat.utilities.XmlSerializable; -import eu.eudat.utilities.builders.XmlBuilder; - -public class FieldSet implements DatabaseViewStyleDefinition,XmlSerializable
{ - private String id; - private int ordinal; - private List fields; - - public List getFields() { - return fields; - } - - public void setFields(List fields) { - this.fields = fields; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public int getOrdinal() { - return ordinal; - } - - public void setOrdinal(int ordinal) { - this.ordinal = ordinal; - } - - @Override - public Element toXml(Document doc) { - Element fieldSet = doc.createElement("fieldSet"); - fieldSet.setAttribute("id", this.id); - fieldSet.setAttribute("ordinal", ""+this.ordinal); - Element fieldsElement = doc.createElement("fields"); - for(Field field : fields){ - fieldsElement.appendChild(field.toXml(doc)); - } - fieldSet.appendChild(fieldsElement); - return fieldSet; - } - - @Override - public FieldSet fromXml(Element element) { - this.id = element.getAttribute("id"); - this.ordinal = Integer.parseInt(element.getAttribute("ordinal")); - this.fields = new LinkedList(); - Element fields = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fields"); - - if(fields!=null){ - NodeList fieldElements = fields.getChildNodes(); - for (int temp = 0; temp < fieldElements.getLength(); temp++) { - Node fieldElement = fieldElements.item(temp); - if (fieldElement.getNodeType() == Node.ELEMENT_NODE) { - this.fields.add(new Field().fromXml((Element)fieldElement)); - } - } - } - return this; - } - -} diff --git a/dmp-backend/src/main/java/eu/eudat/helpers/Transformers.java b/dmp-backend/src/main/java/eu/eudat/helpers/Transformers.java index c51e1bdde..27c83a71b 100644 --- a/dmp-backend/src/main/java/eu/eudat/helpers/Transformers.java +++ b/dmp-backend/src/main/java/eu/eudat/helpers/Transformers.java @@ -34,10 +34,8 @@ public class Transformers { DatasetProfile dp = new DatasetProfile(); dp.setLabel(formData.getFirst("DatasetProfileListingModel.label")); dp.setDefinition(formData.getFirst("DatasetProfileListingModel.definition")); - dp.setRuleset(dpr); - dp.setViewstyle(dpv); - - + + Project project = new Project(); project.setDefinition(formData.getFirst("Project.definition")); project.setLabel(formData.getFirst("Project.label")); diff --git a/dmp-backend/src/main/java/eu/eudat/managers/AdminManager.java b/dmp-backend/src/main/java/eu/eudat/managers/AdminManager.java index 21ed1f4ac..2641de3a4 100644 --- a/dmp-backend/src/main/java/eu/eudat/managers/AdminManager.java +++ b/dmp-backend/src/main/java/eu/eudat/managers/AdminManager.java @@ -10,9 +10,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import eu.eudat.entities.DatasetProfileViewstyle; -import eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup; -import eu.eudat.entities.xmlmodels.viewstyledefinition.Section; -import eu.eudat.entities.xmlmodels.viewstyledefinition.ViewStyleModel; +import eu.eudat.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel; import eu.eudat.models.admin.components.datasetprofile.FieldSet; import eu.eudat.models.admin.composite.DatasetProfile; import eu.eudat.utilities.builders.ModelBuilder; @@ -20,49 +18,34 @@ import eu.eudat.utilities.builders.XmlBuilder; import eu.eudat.utilities.helpers.ModelBuilderCollector; public class AdminManager { - public static eu.eudat.entities.DatasetProfile generateModelDefinition(DatasetProfile profile){ - ObjectMapper xmlMapper = new XmlMapper(); - List
fieldSets = ModelBuilderCollector.collectCompositeFields(profile.getSections()); - FieldGroup fieldGroup = new FieldGroup(); - List fieldset = new ModelBuilder().toModelDefinition(fieldSets, eu.eudat.entities.xmlmodels.modeldefinition.FieldSet.class); - fieldGroup.setFieldSets(fieldset); - Document modelDoc = XmlBuilder.getDocument(); - fieldGroup.toXml(modelDoc); - String xml = XmlBuilder.generateXml(modelDoc); - eu.eudat.entities.DatasetProfile datasetProfile = new eu.eudat.entities.DatasetProfile(); - datasetProfile.setDefinition(xml); - datasetProfile.setStatus((short)1); - datasetProfile.setLabel(profile.getLabel()); - datasetProfile.setCreated(new Date()); - return datasetProfile; - } - public static DatasetProfileViewstyle generateViewStyleDefinition(DatasetProfile profile){ + public static eu.eudat.entities.DatasetProfile generateViewStyleDefinition(DatasetProfile profile){ ViewStyleModel viewStyleModel = new ViewStyleModel(); - viewStyleModel.setSections(new ModelBuilder().toViewStyleDefinition(profile.getSections(), eu.eudat.entities.xmlmodels.viewstyledefinition.Section.class)); + viewStyleModel.setSections(new ModelBuilder().toViewStyleDefinition(profile.getSections(), eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section.class)); Document viewStyleDoc = XmlBuilder.getDocument(); Element elementViewStyle = viewStyleModel.toXml(viewStyleDoc); viewStyleDoc.appendChild(elementViewStyle); String xml = XmlBuilder.generateXml(viewStyleDoc); - DatasetProfileViewstyle datasetProfileViewstyle = new DatasetProfileViewstyle(); - datasetProfileViewstyle.setDefinition(xml); - datasetProfileViewstyle.setLabel(profile.getLabel()); - return datasetProfileViewstyle; + eu.eudat.entities.DatasetProfile datasetProfile = new eu.eudat.entities.DatasetProfile(); + datasetProfile.setDefinition(xml); + datasetProfile.setLabel(profile.getLabel()); + datasetProfile.setStatus((short)1); + datasetProfile.setCreated(new Date()); + return datasetProfile; } public static eu.eudat.models.admin.composite.DatasetProfile generateDatasetProfileModel(eu.eudat.entities.DatasetProfile profile){ - Document viewStyleDoc = XmlBuilder.fromXml(profile.getViewstyle().getDefinition()); + Document viewStyleDoc = XmlBuilder.fromXml(profile.getDefinition()); Element root = (Element)viewStyleDoc.getDocumentElement(); - eu.eudat.entities.xmlmodels.viewstyledefinition.ViewStyleModel viewstyle= new eu.eudat.entities.xmlmodels.viewstyledefinition.ViewStyleModel().fromXml(root); + eu.eudat.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel viewstyle= new eu.eudat.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel().fromXml(root); Document profileDoc = XmlBuilder.fromXml(profile.getDefinition()); root = (Element)profileDoc.getDocumentElement(); - eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup fieldGroup = new eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup().fromXml(root); eu.eudat.models.admin.composite.DatasetProfile datasetprofile = new eu.eudat.models.admin.composite.DatasetProfile(); - datasetprofile.buildProfile(fieldGroup, viewstyle); + datasetprofile.buildProfile(viewstyle); return datasetprofile; } diff --git a/dmp-backend/src/main/java/eu/eudat/managers/DatasetProfileManager.java b/dmp-backend/src/main/java/eu/eudat/managers/DatasetProfileManager.java index 1c3d8cae8..abd3eadfa 100644 --- a/dmp-backend/src/main/java/eu/eudat/managers/DatasetProfileManager.java +++ b/dmp-backend/src/main/java/eu/eudat/managers/DatasetProfileManager.java @@ -7,8 +7,12 @@ import eu.eudat.entities.DMP; import eu.eudat.entities.DatasetProfile; import eu.eudat.models.datasetprofile.DatasetProfileAutocompleteItem; import eu.eudat.models.datasetprofile.DatasetProfileAutocompleteRequest; +import eu.eudat.models.datasetprofile.DatasetProfileListingModel; +import eu.eudat.models.datasetprofile.DatasetProfileTableRequestItem; import eu.eudat.models.dmp.DataManagementPlan; import eu.eudat.models.dmp.DataManagementPlanCriteriaRequest; +import eu.eudat.models.helpers.DataTableData; +import eu.eudat.models.listingmodels.DatasetListingModel; import eu.eudat.queryable.QueryableList; import eu.eudat.utilities.builders.DomainModelConverter; @@ -24,4 +28,20 @@ public class DatasetProfileManager { List datasetProfiles = new DomainModelConverter().fromDataModel( items.toList(), DatasetProfileAutocompleteItem.class); return datasetProfiles; } + + public static DataTableData getPaged(DatasetProfileDao datasetProfileRepository, DatasetProfileTableRequestItem datasetProfileTableRequestItem) throws IllegalAccessException, InstantiationException{ + QueryableList items = datasetProfileRepository.getWithCriteria(datasetProfileTableRequestItem.getCriteria()); + QueryableList pagedItems = PaginationManager.applyPaging(items,datasetProfileTableRequestItem); + List datasetProfiles = new DomainModelConverter().fromDataModel( pagedItems.toList(), DatasetProfileListingModel.class); + DataTableData dataTable = new DataTableData<>(); + dataTable.setData(datasetProfiles); + dataTable.setTotalCount(items.count()); + return dataTable; + } + + public static List getAll(DatasetProfileDao datasetProfileRepository) throws IllegalAccessException, InstantiationException{ + QueryableList items = datasetProfileRepository.getAll(); + List datasetProfiles = new DomainModelConverter().fromDataModel( items.toList(), DatasetProfileListingModel.class); + return datasetProfiles; + } } diff --git a/dmp-backend/src/main/java/eu/eudat/managers/UserManager.java b/dmp-backend/src/main/java/eu/eudat/managers/UserManager.java index 4d398285c..79177509a 100644 --- a/dmp-backend/src/main/java/eu/eudat/managers/UserManager.java +++ b/dmp-backend/src/main/java/eu/eudat/managers/UserManager.java @@ -7,16 +7,12 @@ import eu.eudat.utilities.builders.XmlBuilder; public class UserManager { public static eu.eudat.models.user.composite.DatasetProfile generateDatasetProfileModel(eu.eudat.entities.DatasetProfile profile){ - Document viewStyleDoc = XmlBuilder.fromXml(profile.getViewstyle().getDefinition()); + Document viewStyleDoc = XmlBuilder.fromXml(profile.getDefinition()); Element root = (Element)viewStyleDoc.getDocumentElement(); - eu.eudat.entities.xmlmodels.viewstyledefinition.ViewStyleModel viewstyle= new eu.eudat.entities.xmlmodels.viewstyledefinition.ViewStyleModel().fromXml(root); - - Document profileDoc = XmlBuilder.fromXml(profile.getDefinition()); - root = (Element)profileDoc.getDocumentElement(); - eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup fieldGroup = new eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup().fromXml(root); + eu.eudat.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel viewstyle= new eu.eudat.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel().fromXml(root); eu.eudat.models.user.composite.DatasetProfile datasetprofile = new eu.eudat.models.user.composite.DatasetProfile(); - datasetprofile.buildProfile(fieldGroup, viewstyle); + datasetprofile.buildProfile(viewstyle); return datasetprofile; } diff --git a/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Field.java b/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Field.java index 6d1bfd2e8..d3cb97616 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Field.java +++ b/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Field.java @@ -11,19 +11,14 @@ import eu.eudat.models.components.commons.Visibility; import eu.eudat.utilities.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; -public class Field implements ViewStyleDefinition,ModelDefinition,Comparable{ +public class Field implements ViewStyleDefinition,Comparable{ private String id; private Integer ordinal; - private String title; private String value; - private String description; - private String extendedDescription; private ViewStyle viewStyle; private String datatype; - private boolean defaultVisibility; private int page; private DefaultValue defaultValue; - private Multiplicity multiplicity; private Object data; private Visibility visible; @@ -41,42 +36,18 @@ public class Field implements ViewStyleDefinition, ViewStyleDefinition{ +public class FieldSet implements Comparable, ViewStyleDefinition{ private String id; private Integer ordinal; private Multiplicity multiplicity; + private String title; + private String description; + private String extendedDescription; + private List fields; public List getFields() { @@ -47,41 +51,58 @@ public class FieldSet implements Comparable,ModelDefinition modelfields = new ModelBuilder().toModelDefinition(this.fields, eu.eudat.entities.xmlmodels.modeldefinition.Field.class); - fieldSet.setFields(modelfields); - fieldSet.setMultiplicity(this.multiplicity); - return fieldSet; + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getExtendedDescription() { + return extendedDescription; + } + + public void setExtendedDescription(String extendedDescription) { + this.extendedDescription = extendedDescription; } @Override - public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet item) { - this.id = item.getId(); - this.ordinal = item.getOrdinal(); - this.multiplicity = item.getMultiplicity(); - } - - @Override - public eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet toDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet item) { + public eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet item) { if(this.id == null||this.id.isEmpty())this.id = "fieldSet_"+RandomStringUtils.random(5, true, true); - List viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.entities.xmlmodels.viewstyledefinition.Field.class); + List viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field.class); item.setFields(viewStylefields); item.setId(this.id); + item.setDescription(this.description); + item.setTitle(this.title); + item.setExtendedDescription(this.extendedDescription); item.setOrdinal(this.ordinal); + item.setMultiplicity(this.multiplicity); return item; } @Override - public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet item) { + public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet item) { this.fields = new ModelBuilder().fromViewStyleDefinition(item.getFields(), Field.class); this.id = item.getId(); this.ordinal = item.getOrdinal(); + this.description = item.getDescription(); + this.extendedDescription = item.getExtendedDescription(); + this.title = item.getTitle(); + this.multiplicity = item.getMultiplicity(); } @Override diff --git a/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Group.java b/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Group.java deleted file mode 100644 index e67c508e0..000000000 --- a/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Group.java +++ /dev/null @@ -1,121 +0,0 @@ -package eu.eudat.models.admin.components.datasetprofile; - -import java.util.List; - -import eu.eudat.utilities.ModelDefinition; -import org.apache.commons.lang3.RandomStringUtils; - -import eu.eudat.entities.xmlmodels.viewstyledefinition.FieldGroup; -import eu.eudat.utilities.ViewStyleDefinition; -import eu.eudat.utilities.builders.ModelBuilder; - -public class Group implements ModelDefinition,ViewStyleDefinition{ - private String id; - private String title; - private String section; - private String value; - private int ordinal; - private String description; - private String extendedDescription; - private boolean defaultVisibility; - private int page; - private List
compositeFields; - - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } - public String getSection() { - return section; - } - public void setSection(String section) { - this.section = section; - } - public String getValue() { - return value; - } - public void setValue(String value) { - this.value = value; - } - public String getDescription() { - return description; - } - public void setDescription(String description) { - this.description = description; - } - public String getExtendedDescription() { - return extendedDescription; - } - public void setExtendedDescription(String extendedDescription) { - this.extendedDescription = extendedDescription; - } - public boolean isDefaultVisibility() { - return defaultVisibility; - } - public void setDefaultVisibility(boolean defaultVisibility) { - this.defaultVisibility = defaultVisibility; - } - public int getPage() { - return page; - } - public void setPage(int page) { - this.page = page; - } - public List
getCompositeFields() { - return compositeFields; - } - public void setCompositeFields(List
compositeFields) { - this.compositeFields = compositeFields; - } - - public int getOrdinal() { - return ordinal; - } - public void setOrdinal(int ordinal) { - this.ordinal = ordinal; - } - @Override - public eu.eudat.entities.xmlmodels.viewstyledefinition.FieldGroup toDatabaseDefinition(FieldGroup item) { - if(this.id == null||this.id.isEmpty())this.id = "group_"+RandomStringUtils.random(5, true, true); - - item.setDefaultVisibility(this.defaultVisibility); - item.setDescription(this.description); - item.setExtendedDescription(this.extendedDescription); - item.setFieldSets(new ModelBuilder().toViewStyleDefinition(this.compositeFields, eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet.class)); - item.setId(this.id); - item.setOrdinal(this.ordinal); - item.setPage(this.page); - item.setTitle(this.title); - return item; - } - @Override - public void fromDatabaseDefinition(FieldGroup item) { - - this.defaultVisibility = item.isDefaultVisibility(); - this.description = item.getDescription(); - this.extendedDescription = item.getExtendedDescription(); - this.compositeFields = new ModelBuilder().fromViewStyleDefinition(item.getFieldSets(), FieldSet.class); - this.id = item.getId(); - this.ordinal = item.getOrdinal(); - this.page = item.getPage(); - this.title = item.getTitle(); - } - @Override - public eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup toDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup item) { - item.setFieldSets(new ModelBuilder().toModelDefinition(this.compositeFields, eu.eudat.entities.xmlmodels.modeldefinition.FieldSet.class)); - return item; - } - @Override - public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup item) { - // TODO Auto-generated method stub - - } -} diff --git a/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Section.java b/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Section.java index dd6e41cb5..aeeeeaf9d 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Section.java +++ b/dmp-backend/src/main/java/eu/eudat/models/admin/components/datasetprofile/Section.java @@ -7,9 +7,9 @@ import org.apache.commons.lang3.RandomStringUtils; import eu.eudat.utilities.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; -public class Section implements Comparable,ViewStyleDefinition{ +public class Section implements Comparable,ViewStyleDefinition{ private List
sections; - private List fieldGroups; + private List
fieldSets; private Boolean defaultVisibility; private int page; private Integer ordinal; @@ -22,12 +22,15 @@ public class Section implements Comparable,ViewStyleDefinition sections) { this.sections = sections; } - public List getFieldGroups() { - return fieldGroups; + + public List
getFieldSets() { + return fieldSets; } - public void setFieldGroups(List fieldGroups) { - this.fieldGroups = fieldGroups; + + public void setFieldSets(List
fieldSets) { + this.fieldSets = fieldSets; } + public Boolean getDefaultVisibility() { return defaultVisibility; } @@ -66,24 +69,24 @@ public class Section implements Comparable,ViewStyleDefinition,DatabaseModelDefinition{ +public class Rule implements XmlSerializable,DatabaseModelDefinition { private String ruleType; private String target; private String ruleStyle; diff --git a/dmp-backend/src/main/java/eu/eudat/models/datasetprofile/DatasetProfileTableRequestItem.java b/dmp-backend/src/main/java/eu/eudat/models/datasetprofile/DatasetProfileTableRequestItem.java new file mode 100644 index 000000000..cc0a887f9 --- /dev/null +++ b/dmp-backend/src/main/java/eu/eudat/models/datasetprofile/DatasetProfileTableRequestItem.java @@ -0,0 +1,10 @@ +package eu.eudat.models.datasetprofile; + +import eu.eudat.models.criteria.DatasetProfileCriteria; +import eu.eudat.models.helpers.requests.TableRequest; + +/** + * Created by ikalyvas on 1/2/2018. + */ +public class DatasetProfileTableRequestItem extends TableRequest { +} diff --git a/dmp-backend/src/main/java/eu/eudat/models/errormodels/FieldError.java b/dmp-backend/src/main/java/eu/eudat/models/errormodels/FieldError.java deleted file mode 100644 index 6f15de578..000000000 --- a/dmp-backend/src/main/java/eu/eudat/models/errormodels/FieldError.java +++ /dev/null @@ -1,31 +0,0 @@ -package eu.eudat.models.errormodels; - -/** - * Created by ikalyvas on 12/22/2017. - */ -public class FieldError { - private String field; - - private String message; - - public String getField() { - return field; - } - - public void setField(String field) { - this.field = field; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public FieldError(String field, String message) { - this.field = field; - this.message = message; - } -} diff --git a/dmp-backend/src/main/java/eu/eudat/models/errormodels/ValidationErrorContext.java b/dmp-backend/src/main/java/eu/eudat/models/errormodels/ValidationErrorContext.java index 82634727a..d0dce2e18 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/errormodels/ValidationErrorContext.java +++ b/dmp-backend/src/main/java/eu/eudat/models/errormodels/ValidationErrorContext.java @@ -1,20 +1,22 @@ package eu.eudat.models.errormodels; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Created by ikalyvas on 12/22/2017. */ public class ValidationErrorContext { - private List fieldErrors = new ArrayList<>(); + private Map error = new HashMap<>(); - public List getFieldErrors() { - return fieldErrors; + public Map getError() { + return error; } - public void setFieldErrors(List fieldErrors) { - this.fieldErrors = fieldErrors; + public void setError(Map error) { + this.error = error; } public ValidationErrorContext() { @@ -22,7 +24,6 @@ public class ValidationErrorContext { } public void addFieldError(String path, String message) { - FieldError error = new FieldError(path, message); - fieldErrors.add(error); + error.put(path,message); } } diff --git a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java index e7491abbe..30984948f 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java +++ b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Field.java @@ -9,27 +9,24 @@ import eu.eudat.entities.xmlmodels.modeldefinition.*; import eu.eudat.models.components.commons.DefaultValue; import eu.eudat.models.components.commons.Multiplicity; import eu.eudat.models.components.commons.ViewStyle; +import eu.eudat.models.components.commons.Visibility; import eu.eudat.models.user.composite.PropertiesModelBuilder; import eu.eudat.utilities.ModelDefinition; import eu.eudat.utilities.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; -public class Field implements Comparable,PropertiesModelBuilder,ModelDefinition, ViewStyleDefinition{ +public class Field implements Comparable,PropertiesModelBuilder,ViewStyleDefinition{ private String id; private Integer ordinal; - private String title; private String value; - private String description; - private String extendedDescription; private ViewStyle viewStyle; private String datatype; - private boolean defaultVisibility; private int page; private DefaultValue defaultValue; private Multiplicity multiplicity; private Object data; private List multiplicityItems; - + private Visibility visible; public List getMultiplicityItems() { return multiplicityItems; } @@ -53,42 +50,18 @@ public class Field implements Comparable,PropertiesModelBuilder,ModelDefinition< public void setOrdinal(int ordinal){ this.ordinal = ordinal; } - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } public String getValue() { return value; } public void setValue(String value) { this.value = value; } - public String getDescription() { - return description; - } - public void setDescription(String description) { - this.description = description; - } - public String getExtendedDescription() { - return extendedDescription; - } - public void setExtendedDescription(String extendedDescription) { - this.extendedDescription = extendedDescription; - } public ViewStyle getViewStyle() { return viewStyle; } public void setViewStyle(ViewStyle viewStyle) { this.viewStyle = viewStyle; } - public boolean getDefaultVisibility() { - return defaultVisibility; - } - public void setDefaultVisibility(boolean defaultVisibility) { - this.defaultVisibility = defaultVisibility; - } public int getPage() { return page; } @@ -122,62 +95,47 @@ public class Field implements Comparable,PropertiesModelBuilder,ModelDefinition< public void setData(Object data) { this.data = data; } - + + public Visibility getVisible() { + return visible; + } + + public void setVisible(Visibility visible) { + this.visible = visible; + } + public Field cloneForMultiplicity(String key, Map properties){ Field newField = new Field(); newField.id = key; newField.ordinal = this.ordinal; - newField.title = this.title; newField.value = (String)properties.get(key); - newField.description = this.description; - newField.extendedDescription = this.extendedDescription; newField.viewStyle = this.viewStyle; newField.datatype = this.datatype; - newField.defaultVisibility = this.defaultVisibility; newField.page = this.page; newField.defaultValue = this.defaultValue; newField.data = this.data; return newField; } - + @Override - public eu.eudat.entities.xmlmodels.modeldefinition.Field toDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.Field field) { - field.setDatatype(this.datatype); - field.setDefaultValue(this.defaultValue); - field.setId(this.id); - field.setMultiplicity(this.multiplicity); - field.setOrdinal(this.ordinal); - return field; - } - @Override - public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.Field item) { - this.datatype = item.getDatatype(); - this.defaultValue = item.getDefaultValue(); - this.multiplicity = item.getMultiplicity(); - } - @Override - public eu.eudat.entities.xmlmodels.viewstyledefinition.Field toDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.Field field) { - field.setDefaultVisibility(this.defaultVisibility); - field.setDescription(this.description); - field.setExtendedDescription(this.extendedDescription); + public eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field field) { field.setId(this.id); field.setOrdinal(this.ordinal); - field.setTitle(this.title); field.setViewStyle(this.viewStyle); field.setData(new ModelBuilder().toFieldData(data, this.viewStyle.getRenderStyle())); + field.setDefaultValue(this.defaultValue); + field.setVisible(this.visible); return field; } @Override - public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.Field item) { - this.defaultVisibility = item.getDefaultVisibility(); - this.description = item.getDescription(); - this.extendedDescription = item.getExtendedDescription(); + public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field item) { this.id = item.getId(); this.ordinal = item.getOrdinal(); - this.title = item.getTitle(); this.viewStyle = item.getViewStyle(); this.data = item.getData(); + this.defaultValue = item.getDefaultValue(); + this.visible= item.getVisible(); } @Override public void fromJsonObject(Map properties) { diff --git a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java index aea4e3ed5..2126e1d78 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java +++ b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/FieldSet.java @@ -12,9 +12,12 @@ import eu.eudat.utilities.ModelDefinition; import eu.eudat.utilities.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; -public class FieldSet implements Comparable,PropertiesModelBuilder,ModelDefinition, ViewStyleDefinition{ +public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDefinition{ private String id; private Integer ordinal; + private String title; + private String description; + private String extendedDescription; private Multiplicity multiplicity; private List fields; private List
multiplicityItems; @@ -23,6 +26,30 @@ public class FieldSet implements Comparable,PropertiesModelBuilder,ModelDefiniti return fields; } + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getExtendedDescription() { + return extendedDescription; + } + + public void setExtendedDescription(String extendedDescription) { + this.extendedDescription = extendedDescription; + } + public void setFields(List fields) { this.fields = fields; } @@ -65,26 +92,10 @@ public class FieldSet implements Comparable,PropertiesModelBuilder,ModelDefiniti this.ordinal = ordinal; } - @Override - public eu.eudat.entities.xmlmodels.modeldefinition.FieldSet toDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet fieldSet) { - fieldSet.setId(this.id); - fieldSet.setOrdinal(this.ordinal); - List modelfields = new ModelBuilder().toModelDefinition(this.fields, eu.eudat.entities.xmlmodels.modeldefinition.Field.class); - fieldSet.setFields(modelfields); - fieldSet.setMultiplicity(this.multiplicity); - return fieldSet; - } @Override - public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet item) { - this.id = item.getId(); - this.ordinal = item.getOrdinal(); - this.multiplicity = item.getMultiplicity(); - } - - @Override - public eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet toDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet item) { - List viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.entities.xmlmodels.viewstyledefinition.Field.class); + public eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet item) { + List viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field.class); item.setFields(viewStylefields); item.setId(this.id); item.setOrdinal(this.ordinal); @@ -92,10 +103,13 @@ public class FieldSet implements Comparable,PropertiesModelBuilder,ModelDefiniti } @Override - public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet item) { + public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet item) { this.fields = new ModelBuilder().fromViewStyleDefinition(item.getFields(), Field.class); this.id = item.getId(); this.ordinal = item.getOrdinal(); + this.title = item.getTitle(); + this.description = item.getDescription(); + this.extendedDescription = item.getExtendedDescription(); } @Override @@ -114,7 +128,10 @@ public class FieldSet implements Comparable,PropertiesModelBuilder,ModelDefiniti private FieldSet cloneForMultiplicity(String key, int index,Map properties){ FieldSet newFieldSet = new FieldSet(); newFieldSet.id = key; - + newFieldSet.description = this.description; + newFieldSet.extendedDescription = this.extendedDescription; + newFieldSet.title = this.title; + newFieldSet.ordinal = this.ordinal; newFieldSet.fields = new LinkedList(); this.fields.forEach(item->{ diff --git a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Group.java b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Group.java deleted file mode 100644 index 5d55c2a40..000000000 --- a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Group.java +++ /dev/null @@ -1,130 +0,0 @@ -package eu.eudat.models.user.components.datasetprofile; - -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import eu.eudat.entities.xmlmodels.viewstyledefinition.FieldGroup; -import eu.eudat.models.user.composite.PropertiesModelBuilder; -import eu.eudat.utilities.ModelDefinition; -import eu.eudat.utilities.ViewStyleDefinition; -import eu.eudat.utilities.builders.ModelBuilder; - -public class Group implements PropertiesModelBuilder,ModelDefinition, ViewStyleDefinition{ - private String id; - private String title; - private String section; - private String value; - private int ordinal; - private String description; - private String extendedDescription; - private boolean defaultVisibility; - private int page; - private List
compositeFields; - - public String getId() { - return id; - } - public void setId(String id) { - this.id = id; - } - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } - public String getSection() { - return section; - } - public void setSection(String section) { - this.section = section; - } - public String getValue() { - return value; - } - public void setValue(String value) { - this.value = value; - } - public String getDescription() { - return description; - } - public void setDescription(String description) { - this.description = description; - } - public String getExtendedDescription() { - return extendedDescription; - } - public void setExtendedDescription(String extendedDescription) { - this.extendedDescription = extendedDescription; - } - public boolean getDefaultVisibility() { - return defaultVisibility; - } - public void setDefaultVisibility(boolean defaultVisibility) { - this.defaultVisibility = defaultVisibility; - } - public int getPage() { - return page; - } - public void setPage(int page) { - this.page = page; - } - public List
getCompositeFields() { - Collections.sort(this.compositeFields); - return compositeFields; - } - public void setCompositeFields(List
compositeFields) { - this.compositeFields = compositeFields; - } - - public int getOrdinal() { - return ordinal; - } - public void setOrdinal(int ordinal) { - this.ordinal = ordinal; - } - @Override - public eu.eudat.entities.xmlmodels.viewstyledefinition.FieldGroup toDatabaseDefinition(FieldGroup item) { - item.setDefaultVisibility(this.defaultVisibility); - item.setDescription(this.description); - item.setExtendedDescription(this.extendedDescription); - item.setFieldSets(new ModelBuilder().toViewStyleDefinition(this.compositeFields, eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet.class)); - item.setId(this.id); - item.setOrdinal(this.ordinal); - item.setPage(this.page); - item.setTitle(this.title); - return item; - } - @Override - public void fromDatabaseDefinition(FieldGroup item) { - this.defaultVisibility = item.isDefaultVisibility(); - this.description = item.getDescription(); - this.extendedDescription = item.getExtendedDescription(); - this.compositeFields = new ModelBuilder().fromViewStyleDefinition(item.getFieldSets(), FieldSet.class); - this.id = item.getId(); - this.ordinal = item.getOrdinal(); - this.page = item.getPage(); - this.title = item.getTitle(); - } - @Override - public eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup toDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup item) { - item.setFieldSets(new ModelBuilder().toModelDefinition(this.compositeFields, eu.eudat.entities.xmlmodels.modeldefinition.FieldSet.class)); - return item; - } - @Override - public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup item) { - // TODO Auto-generated method stub - - } - @Override - public void fromJsonObject(Map properties) { - this.compositeFields.forEach(item->item.fromJsonObject(properties)); - - } - @Override - public void fromJsonObject(Map properties, String index) { - // TODO Auto-generated method stub - - } -} diff --git a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java index 3c4530d56..b6588e4ba 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java +++ b/dmp-backend/src/main/java/eu/eudat/models/user/components/datasetprofile/Section.java @@ -8,9 +8,9 @@ import eu.eudat.models.user.composite.PropertiesModelBuilder; import eu.eudat.utilities.ViewStyleDefinition; import eu.eudat.utilities.builders.ModelBuilder; -public class Section implements Comparable,ViewStyleDefinition,PropertiesModelBuilder{ +public class Section implements Comparable,ViewStyleDefinition,PropertiesModelBuilder{ private List
sections; - private List fieldGroups; + private List
fieldSets; private Boolean defaultVisibility; private int page; private Integer ordinal; @@ -24,12 +24,15 @@ public class Section implements Comparable,ViewStyleDefinition sections) { this.sections = sections; } - public List getFieldGroups() { - return fieldGroups; + + public List
getFieldSets() { + return fieldSets; } - public void setFieldGroups(List fieldGroups) { - this.fieldGroups = fieldGroups; + + public void setFieldSets(List
fieldSets) { + this.fieldSets = fieldSets; } + public Boolean getDefaultVisibility() { return defaultVisibility; } @@ -68,22 +71,22 @@ public class Section implements Comparable,ViewStyleDefinition properties) { this.sections.forEach(item->item.fromJsonObject(properties)); - this.fieldGroups.forEach(item->item.fromJsonObject(properties)); + this.fieldSets.forEach(item->item.fromJsonObject(properties)); } @Override public int compareTo(Object o) { diff --git a/dmp-backend/src/main/java/eu/eudat/models/user/composite/DatasetProfile.java b/dmp-backend/src/main/java/eu/eudat/models/user/composite/DatasetProfile.java index 9fe520d09..3176e35e8 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/user/composite/DatasetProfile.java +++ b/dmp-backend/src/main/java/eu/eudat/models/user/composite/DatasetProfile.java @@ -38,15 +38,9 @@ public class DatasetProfile implements PropertiesModelBuilder{ this.status = status; } - public void buildProfile(eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup fieldGroup, eu.eudat.entities.xmlmodels.viewstyledefinition.ViewStyleModel viewStyle){ + public void buildProfile( eu.eudat.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel viewStyle){ this.sections = new ModelBuilder().fromViewStyleDefinition(viewStyle.getSections(), Section.class); - updateProfile(fieldGroup,viewStyle); - } - - private void updateProfile(eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup fieldGroup, eu.eudat.entities.xmlmodels.viewstyledefinition.ViewStyleModel viewStyle){ - ModelBuilderCollector.mapUserSections(sections, fieldGroup.getFieldSets()); this.rules = ModelBuilderCollector.collectRules(viewStyle.getSections()); - } @Override diff --git a/dmp-backend/src/main/java/eu/eudat/utilities/ModelSerializer.java b/dmp-backend/src/main/java/eu/eudat/utilities/ModelSerializer.java index b3b556da3..363b63d37 100644 --- a/dmp-backend/src/main/java/eu/eudat/utilities/ModelSerializer.java +++ b/dmp-backend/src/main/java/eu/eudat/utilities/ModelSerializer.java @@ -5,8 +5,7 @@ package eu.eudat.utilities; */ import eu.eudat.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; -import eu.eudat.entities.xmlmodels.modeldefinition.Field; -import eu.eudat.entities.xmlmodels.viewstyledefinition.DatabaseViewStyleDefinition; +import eu.eudat.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; public interface ModelSerializer { void fromDatabaseDefinition(T viewStyle,U model); diff --git a/dmp-backend/src/main/java/eu/eudat/utilities/ViewStyleDefinition.java b/dmp-backend/src/main/java/eu/eudat/utilities/ViewStyleDefinition.java index ccaa75361..78323a741 100644 --- a/dmp-backend/src/main/java/eu/eudat/utilities/ViewStyleDefinition.java +++ b/dmp-backend/src/main/java/eu/eudat/utilities/ViewStyleDefinition.java @@ -4,8 +4,7 @@ package eu.eudat.utilities; * Created by ikalyvas on 12/15/2017. */ -import eu.eudat.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; -import eu.eudat.entities.xmlmodels.viewstyledefinition.DatabaseViewStyleDefinition; +import eu.eudat.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; public interface ViewStyleDefinition{ T toDatabaseDefinition(T item); diff --git a/dmp-backend/src/main/java/eu/eudat/utilities/builders/ModelBuilder.java b/dmp-backend/src/main/java/eu/eudat/utilities/builders/ModelBuilder.java index 47d25f66a..32ef95899 100644 --- a/dmp-backend/src/main/java/eu/eudat/utilities/builders/ModelBuilder.java +++ b/dmp-backend/src/main/java/eu/eudat/utilities/builders/ModelBuilder.java @@ -7,10 +7,9 @@ import java.util.Map; import org.w3c.dom.Element; import eu.eudat.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; -import eu.eudat.entities.xmlmodels.viewstyledefinition.DatabaseViewStyleDefinition; +import eu.eudat.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; import eu.eudat.models.components.commons.datafield.AutoCompleteData; import eu.eudat.models.components.commons.datafield.CheckBoxData; -import eu.eudat.models.components.commons.datafield.ComboBoxData; import eu.eudat.models.components.commons.datafield.FieldData; import eu.eudat.models.components.commons.datafield.RadioBoxData; import eu.eudat.models.components.commons.datafield.WordListData; @@ -84,17 +83,17 @@ public class ModelBuilder { return null; } - public > U toFieldData(Object data,String type){ + public FieldData toFieldData(Object data,String type){ if(type.equals("combobox")){ String comboboxType = (String)((Map)data).get("type"); if(comboboxType.equals("autocomplete")){ - return (U) new AutoCompleteData().fromData(data); + return (FieldData) new AutoCompleteData().fromData(data); }else if(comboboxType.equals("wordlist")) - return (U) new WordListData().fromData(data); + return (FieldData) new WordListData().fromData(data); } if(type.equals("booleanDecision"))return null; - if(type.equals("radiobox"))return (U) new RadioBoxData().fromData(data); - if(type.equals("checkBox"))return (U) new CheckBoxData().fromData(data); + if(type.equals("radiobox"))return (FieldData) new RadioBoxData().fromData(data); + if(type.equals("checkBox"))return (FieldData) new CheckBoxData().fromData(data); if(type.equals("freetext"))return null; return null; } diff --git a/dmp-backend/src/main/java/eu/eudat/utilities/builders/XmlBuilder.java b/dmp-backend/src/main/java/eu/eudat/utilities/builders/XmlBuilder.java index 7b19985a1..034d98bba 100644 --- a/dmp-backend/src/main/java/eu/eudat/utilities/builders/XmlBuilder.java +++ b/dmp-backend/src/main/java/eu/eudat/utilities/builders/XmlBuilder.java @@ -8,7 +8,6 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; @@ -21,8 +20,6 @@ import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; -import eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet; - public class XmlBuilder { diff --git a/dmp-backend/src/main/java/eu/eudat/utilities/helpers/ModelBuilderCollector.java b/dmp-backend/src/main/java/eu/eudat/utilities/helpers/ModelBuilderCollector.java index 78feea248..dbaec974d 100644 --- a/dmp-backend/src/main/java/eu/eudat/utilities/helpers/ModelBuilderCollector.java +++ b/dmp-backend/src/main/java/eu/eudat/utilities/helpers/ModelBuilderCollector.java @@ -1,134 +1,28 @@ package eu.eudat.utilities.helpers; -import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import java.util.Set; import java.util.stream.Collectors; import eu.eudat.models.admin.components.datasetprofile.FieldSet; -import eu.eudat.models.admin.components.datasetprofile.Group; import eu.eudat.models.admin.components.datasetprofile.Section; import eu.eudat.models.user.components.commons.Rule; public class ModelBuilderCollector { - public static List
collectCompositeFields(List
sections){ - List
fieldGroups = new LinkedList(); - for(Section section: sections){ - if(!section.getSections().isEmpty()){ - fieldGroups.addAll(collectCompositeFields(section.getSections())); - } - fieldGroups.addAll( - section.getFieldGroups().stream() - .map(group->group.getCompositeFields()) - .flatMap(List::stream) - .collect(Collectors.toList()) - ); - } - return fieldGroups; - } - - public static void mapSections(List sections, List fieldGroups){ - for(Section section: sections){ - if(!section.getSections().isEmpty()){ - mapSections(section.getSections(),fieldGroups); - } - for(Group group: section.getFieldGroups()){ - if(!group.getCompositeFields().isEmpty()){ - mapCompositeFields(group.getCompositeFields(),fieldGroups); - } - } - } - return; - } - - private static void mapCompositeFields(List fieldSets, List fieldGroups){ - for(FieldSet fieldSet: fieldSets){ - if(!fieldSet.getFields().isEmpty()){ - mapFields(fieldSet.getFields(),fieldGroups); - } - for(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet fieldModelSet :fieldGroups){ - if(fieldSet.getId()!=null&&fieldSet.getId().equals(fieldModelSet.getId())){ - fieldSet.fromDatabaseDefinition(fieldModelSet); - } - } - } - return; - } - - private static void mapFields(List fields, List fieldGroups){ - - for(eu.eudat.models.admin.components.datasetprofile.Field fielditem: fields){ - for(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet fieldSet:fieldGroups){ - for(eu.eudat.entities.xmlmodels.modeldefinition.Field fieldmodelitem : fieldSet.getFields()){ - if(fielditem.getId()!=null&&fielditem.getId().equals(fieldmodelitem.getId())){ - fielditem.fromDatabaseDefinition(fieldmodelitem); - break; - } - } - } - } - return; - } - - public static void mapUserSections(List sections, List fieldGroups){ - for(eu.eudat.models.user.components.datasetprofile.Section section: sections){ - if(!section.getSections().isEmpty()){ - mapUserSections(section.getSections(),fieldGroups); - } - for(eu.eudat.models.user.components.datasetprofile.Group group: section.getFieldGroups()){ - if(!group.getCompositeFields().isEmpty()){ - mapUserCompositeFields(group.getCompositeFields(),fieldGroups); - } - } - } - return; - } - - private static void mapUserCompositeFields(List fieldSets, List fieldGroups){ - for(eu.eudat.models.user.components.datasetprofile.FieldSet fieldSet: fieldSets){ - if(!fieldSet.getFields().isEmpty()){ - mapUserFields(fieldSet.getFields(),fieldGroups); - } - for(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet fieldModelSet :fieldGroups){ - if(fieldSet.getId()!=null&&fieldSet.getId().equals(fieldModelSet.getId())){ - fieldSet.fromDatabaseDefinition(fieldModelSet); - } - } - } - return; - } - - private static void mapUserFields(List fields, List fieldGroups){ - - for(eu.eudat.models.user.components.datasetprofile.Field fielditem: fields){ - for(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet fieldSet:fieldGroups){ - for(eu.eudat.entities.xmlmodels.modeldefinition.Field fieldmodelitem : fieldSet.getFields()){ - if(fielditem.getId()!=null&&fielditem.getId().equals(fieldmodelitem.getId())){ - fielditem.fromDatabaseDefinition(fieldmodelitem); - break; - } - } - } - } - return; - } /** * @param sections * @return */ - public static List collectRules(List sections){ + public static List collectRules(List sections){ List rules = new LinkedList(); - for(eu.eudat.entities.xmlmodels.viewstyledefinition.Section section: sections){ + for(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section section: sections){ if(!section.getSections().isEmpty()){ rules.addAll(collectRules(section.getSections())); } rules.addAll( - section.getFieldGroups().stream() - .map(group->group.getFieldSets()) - .flatMap(List::stream) + section.getFieldSets().stream() .map(fieldset->fieldset.getFields()) .flatMap(List::stream) .map(field->getRulesFromField(field.getId(),field.getVisible() diff --git a/dmp-backend/src/main/java/eu/eudat/utilities/helpers/ModelSerializer.java b/dmp-backend/src/main/java/eu/eudat/utilities/helpers/ModelSerializer.java index 8e6494ebf..bc9d151dc 100644 --- a/dmp-backend/src/main/java/eu/eudat/utilities/helpers/ModelSerializer.java +++ b/dmp-backend/src/main/java/eu/eudat/utilities/helpers/ModelSerializer.java @@ -5,8 +5,7 @@ package eu.eudat.utilities.helpers; */ import eu.eudat.entities.xmlmodels.modeldefinition.DatabaseModelDefinition; -import eu.eudat.entities.xmlmodels.modeldefinition.Field; -import eu.eudat.entities.xmlmodels.viewstyledefinition.DatabaseViewStyleDefinition; +import eu.eudat.entities.xmlmodels.datasetprofiledefinition.DatabaseViewStyleDefinition; public interface ModelSerializer { void fromDatabaseDefinition(T viewStyle,U model); diff --git a/dmp-backend/src/main/java/eu/eudat/validators/ApiValidator.java b/dmp-backend/src/main/java/eu/eudat/validators/ApiValidator.java new file mode 100644 index 000000000..d4e00f955 --- /dev/null +++ b/dmp-backend/src/main/java/eu/eudat/validators/ApiValidator.java @@ -0,0 +1,9 @@ +package eu.eudat.validators; + +import org.springframework.validation.Validator; + +/** + * Created by ikalyvas on 1/2/2018. + */ +public abstract class ApiValidator implements Validator { +} diff --git a/dmp-backend/src/main/java/eu/eudat/validators/DataManagementPlanTableRequestValidator.java b/dmp-backend/src/main/java/eu/eudat/validators/DataManagementPlanTableRequestValidator.java index 67cb99755..fa0832f9b 100644 --- a/dmp-backend/src/main/java/eu/eudat/validators/DataManagementPlanTableRequestValidator.java +++ b/dmp-backend/src/main/java/eu/eudat/validators/DataManagementPlanTableRequestValidator.java @@ -8,6 +8,7 @@ import org.springframework.validation.Validator; /** * Created by ikalyvas on 12/22/2017. */ +@Component("dataManagementPlanTableRequestValidator") public class DataManagementPlanTableRequestValidator implements Validator { @Override public boolean supports(Class aClass) { @@ -16,12 +17,16 @@ public class DataManagementPlanTableRequestValidator implements Validator { @Override public void validate(Object obj, Errors errors) { - DataManagementPlanTableRequest user = (DataManagementPlanTableRequest) obj; - if(user.getOffset()<0){ + DataManagementPlanTableRequest dataManagementPlanTableRequest = (DataManagementPlanTableRequest) obj; + if(dataManagementPlanTableRequest.getOffset()<0){ errors.rejectValue("offset", "datamanagementplanrequest.offset.negative"); } - if(user.getLength()<0){ + if(dataManagementPlanTableRequest.getLength()<0){ errors.rejectValue("length", "datamanagementplanrequest.length.negative"); } } + + public static boolean supportsType(Class clazz) { + return DataManagementPlanTableRequest.class.equals(clazz); + } } diff --git a/dmp-backend/src/main/java/eu/eudat/validators/ProjectTableRequestValidator.java b/dmp-backend/src/main/java/eu/eudat/validators/ProjectTableRequestValidator.java new file mode 100644 index 000000000..86f2623d4 --- /dev/null +++ b/dmp-backend/src/main/java/eu/eudat/validators/ProjectTableRequestValidator.java @@ -0,0 +1,36 @@ +package eu.eudat.validators; + +import eu.eudat.models.dmp.DataManagementPlanTableRequest; +import eu.eudat.models.project.ProjectTableRequest; +import org.springframework.stereotype.Component; +import org.springframework.validation.Errors; +import org.springframework.validation.Validator; + +/** + * Created by ikalyvas on 1/2/2018. + */ +@Component("projectTableRequestValidator") +public class ProjectTableRequestValidator implements Validator { + @Override + public boolean supports(Class aClass) { + return ProjectTableRequest.class.equals(aClass); + } + + @Override + public void validate(Object obj, Errors errors) { + ProjectTableRequest projectTableRequest = (ProjectTableRequest) obj; + if(projectTableRequest.getCriteria().getPeriodEnd()!=null&&projectTableRequest.getCriteria().getPeriodEnd()!=null&&projectTableRequest.getCriteria().getPeriodEnd().before(projectTableRequest.getCriteria().getPeriodStart())){ + errors.rejectValue("criteria.periodStart", "projectTableRequest.periodStart.overlapping"); + } + if(projectTableRequest.getOffset()<0){ + errors.rejectValue("offset", "projectTableRequest.offset.negative"); + } + if(projectTableRequest.getLength()<0){ + errors.rejectValue("length", "projectTableRequest.length.negative"); + } + } + + public static boolean supportsType(Class clazz) { + return ProjectTableRequest.class.equals(clazz); + } +} diff --git a/dmp-backend/src/main/resources/application.properties b/dmp-backend/src/main/resources/application.properties index b75ce84d4..b9402a93d 100644 --- a/dmp-backend/src/main/resources/application.properties +++ b/dmp-backend/src/main/resources/application.properties @@ -5,9 +5,9 @@ ##########################Persistence########################################## database.driver-class-name=org.postgresql.Driver -database.url = jdbc:postgresql://localhost:5432/dmptool -database.username = postgres -database.password = zxcvbnm +database.url = jdbc:postgresql://develdb1.madgik.di.uoa.gr:5432/dmptool +database.username = dmptool +database.password = dmpt00lu$r ##########################/Persistence########################################## ###################Allowed Proxy Service Host ############################ diff --git a/dmp-backend/src/main/resources/messages.properties b/dmp-backend/src/main/resources/messages.properties index 846d3cba1..296cbb932 100644 --- a/dmp-backend/src/main/resources/messages.properties +++ b/dmp-backend/src/main/resources/messages.properties @@ -1,2 +1,5 @@ datamanagementplanrequest.length.negative=table length cannot be negative -datamanagementplanrequest.offset.negative=table offset cannot be negative \ No newline at end of file +datamanagementplanrequest.offset.negative=table offset cannot be negative +projectTableRequest.periodStart.overlapping = Period Start cannot overlap Period End +projectTableRequest.offset.negative=table offset cannot be negative +projectTableRequest.length.negative=table length cannot be negative \ No newline at end of file diff --git a/dmp-frontend/src/app/projects/project-listing.component.ts b/dmp-frontend/src/app/projects/project-listing.component.ts index 6de8cb0de..e4bdedc84 100644 --- a/dmp-frontend/src/app/projects/project-listing.component.ts +++ b/dmp-frontend/src/app/projects/project-listing.component.ts @@ -104,7 +104,7 @@ export class ProjectDataSource extends DataSource { duration: 3000, extraClasses: ['snackbar-warning'] }); - this._criteria.onCallbackError(error); + this._criteria.onCallbackError(error.error); return Observable.of(null); }) .map(result => { diff --git a/dmp-frontend/src/app/shared/components/criteria/base/base-criteria.component.ts b/dmp-frontend/src/app/shared/components/criteria/base/base-criteria.component.ts index f42c77ade..b24a03f01 100644 --- a/dmp-frontend/src/app/shared/components/criteria/base/base-criteria.component.ts +++ b/dmp-frontend/src/app/shared/components/criteria/base/base-criteria.component.ts @@ -13,10 +13,10 @@ import { BaseCriteriaErrorModel } from '../../../../models/criteria/BaseCriteria export class BaseCriteriaComponent implements OnInit { public refreshCallback: Function = null; - public errorModel: BaseCriteriaErrorModel = new BaseCriteriaErrorModel(); + public baseErrorModel: BaseCriteriaErrorModel = new BaseCriteriaErrorModel(); - constructor(errorModel: BaseCriteriaErrorModel) { - this.errorModel = errorModel; + constructor(baseErrorModel: BaseCriteriaErrorModel) { + this.baseErrorModel = baseErrorModel; } ngOnInit() { @@ -28,13 +28,13 @@ export class BaseCriteriaComponent implements OnInit { public setErrorModel(errorModel: BaseCriteriaErrorModel) { Object.keys(errorModel).forEach(item => { - (this.errorModel)[item] = (errorModel)[item]; + (this.baseErrorModel)[item] = (errorModel)[item]; }) } public clearErrorModel() { - Object.keys(this.errorModel).forEach(item => { - (this.errorModel)[item] = ''; + Object.keys(this.baseErrorModel).forEach(item => { + (this.baseErrorModel)[item] = ''; }) } diff --git a/dmp-frontend/src/app/shared/components/criteria/projects/projects-criteria.component.html b/dmp-frontend/src/app/shared/components/criteria/projects/projects-criteria.component.html index 13acc6d4f..6ea508acc 100644 --- a/dmp-frontend/src/app/shared/components/criteria/projects/projects-criteria.component.html +++ b/dmp-frontend/src/app/shared/components/criteria/projects/projects-criteria.component.html @@ -5,23 +5,24 @@ - {{baseErrorModel['Criteria.like']}} + {{baseErrorModel['criteria.like']}}
- {{baseErrorModel['Criteria.periodStart']}} + {{baseErrorModel['criteria.periodStart']}} +
- {{baseErrorModel['Criteria.periodEnd']}} + {{baseErrorModel['criteria.periodEnd']}}