This commit is contained in:
annampak 2018-01-03 13:36:38 +02:00
commit 67aa17324c
53 changed files with 501 additions and 1320 deletions

View File

@ -32,11 +32,7 @@ public class Admin {
@RequestMapping(method = RequestMethod.POST, value = { "/admin/addDmp" },consumes = "application/json", produces="application/json")
public ResponseEntity<Object> 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<Object> 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);

View File

@ -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));
}
}

View File

@ -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<DataTableData<DataManagementPlanListingModel>> 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<DataManagementPlan> getPaged(@PathVariable String id) {
public @ResponseBody ResponseItem<DataManagementPlan> getSingle(@PathVariable String id) {
try {
eu.eudat.models.dmp.DataManagementPlan project = new DataManagementPlanManager().getSingle(dMPDao, id);
return new ResponseItem<DataManagementPlan>().status(HttpStatus.OK).payload(project);

View File

@ -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<List<UUID>> listDataRepositories(){
// try {
// List<UUID> 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<DataRepository> 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<List<DataRepository>> getAllDataRepositories(){
//
// try {
// List<DataRepository> 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<DataRepository> 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<Object> 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!\"}");
// }
//
// }
}

View File

@ -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<Object> 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());

View File

@ -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<List<DatasetProfileAutocompleteItem>> get(@RequestBody DatasetProfileAutocompleteRequest datasetProfileAutocompleteRequest) {
try {
List<DatasetProfileAutocompleteItem> datasetProfileAutocompleteItems = DatasetProfileManager.getWithCriteria(datasetProfileDao,datasetProfileAutocompleteRequest);
@ -67,5 +69,27 @@ public class DatasetProfiles {
return new ResponseItem<List<DatasetProfileAutocompleteItem>>().status(HttpStatus.BAD_REQUEST);
}
}
@RequestMapping(method = RequestMethod.POST, value = { "/dmps/datasetprofiles/getPaged" }, produces="application/json")
public @ResponseBody ResponseItem<DataTableData<DatasetProfileListingModel>> getPaged(@RequestBody DatasetProfileTableRequestItem datasetProfileTableRequestItem) {
try {
DataTableData<DatasetProfileListingModel> datasetProfileTableData = DatasetProfileManager.getPaged(datasetProfileDao,datasetProfileTableRequestItem);
return new ResponseItem<DataTableData<DatasetProfileListingModel>>().status(HttpStatus.OK).payload(datasetProfileTableData );
}
catch(Exception ex) {
return new ResponseItem<DataTableData<DatasetProfileListingModel>>().status(HttpStatus.BAD_REQUEST);
}
}
@RequestMapping(method = RequestMethod.GET, value = { "/datasetprofiles/getAll" }, produces="application/json")
public @ResponseBody ResponseItem<List<DatasetProfileListingModel>> getAll() {
try {
List<DatasetProfileListingModel> datasetProfileTableData = DatasetProfileManager.getAll(datasetProfileDao);
return new ResponseItem<List<DatasetProfileListingModel>>().status(HttpStatus.OK).payload(datasetProfileTableData );
}
catch(Exception ex) {
return new ResponseItem<List<DatasetProfileListingModel>>().status(HttpStatus.BAD_REQUEST);
}
}
}

View File

@ -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<DataTableData<eu.eudat.models.project.Project>> getPaged(@RequestBody ProjectTableRequest projectTableRequest) {
public @ResponseBody ResponseItem<DataTableData<eu.eudat.models.project.Project>> getPaged(@Valid @RequestBody ProjectTableRequest projectTableRequest) {
try {
DataTableData<eu.eudat.models.project.Project> dataTable = new ProjectManager().getPaged(projectDao, projectTableRequest);
return new ResponseItem<DataTableData<eu.eudat.models.project.Project>>().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<eu.eudat.entities.Project> inactivate(@PathVariable String id) {
try {
Project inactivate = new ProjectManager().inactivate(projectDao,id);
Project project = new ProjectManager().inactivate(projectDao,id);
return new ResponseItem<eu.eudat.entities.Project>().status(HttpStatus.OK);
}catch (Exception ex){
return new ResponseItem<eu.eudat.entities.Project>().status(HttpStatus.BAD_REQUEST).message(ex.getMessage());

View File

@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
public interface DatasetProfileDao {
QueryableList<DatasetProfile> getWithCriteria(DatasetProfileCriteria criteria);
QueryableList<DatasetProfile> getAll();
DatasetProfile createOrUpdate(DatasetProfile item);

View File

@ -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<DatasetProfile> getAll() {
return databaseService.getQueryable(DatasetProfile.class);
}
}

View File

@ -45,19 +45,6 @@ public class DatasetProfile implements Serializable,DataEntity<DatasetProfile> {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "profile")
private Set<Dataset> 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<DatasetProfile> {
}
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<DatasetProfile> {
@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 + "]";
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -1,4 +1,4 @@
package eu.eudat.entities.xmlmodels.viewstyledefinition;
package eu.eudat.entities.xmlmodels.datasetprofiledefinition;
import eu.eudat.utilities.DatabaseDefinition;

View File

@ -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<Field>{
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<Field>
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<Field>
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<Field>
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<Field>
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;
}

View File

@ -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<FieldSet>{
public class FieldSet implements DatabaseViewStyleDefinition,XmlSerializable<FieldSet>{
private String id;
private int ordinal;
private Multiplicity multiplicity;
private List<Field> 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<Field> getFields() {
return fields;
}
public void setFields(List<Field> 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<FieldSe
this.fields.add(new Field().fromXml((Element)fieldElement));
}
}
}
}
this.multiplicity = new Multiplicity();
Element multiplicity = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "multiplicity");
this.multiplicity.setMin(Integer.parseInt(multiplicity.getAttribute("min")));
this.multiplicity.setMax(Integer.parseInt(multiplicity.getAttribute("max")));
return this;
}
}

View File

@ -1,4 +1,4 @@
package eu.eudat.entities.xmlmodels.viewstyledefinition;
package eu.eudat.entities.xmlmodels.datasetprofiledefinition;
import java.util.LinkedList;
import java.util.List;
@ -20,7 +20,7 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable<Sect
private String description;
private String extendedDescription;
private List<Section> sections;
private List<FieldGroup> fieldGroups;
private List<FieldSet> fieldSets;
public String getId() {
return id;
}
@ -63,13 +63,15 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable<Sect
public void setSections(List<Section> sections) {
this.sections = sections;
}
public List<FieldGroup> getFieldGroups() {
return fieldGroups;
public List<FieldSet> getFieldSets() {
return fieldSets;
}
public void setFieldGroups(List<FieldGroup> fieldGroups) {
this.fieldGroups = fieldGroups;
public void setFieldSets(List<FieldSet> fieldSets) {
this.fieldSets = fieldSets;
}
public String getExtendedDescription() {
return extendedDescription;
}
@ -102,10 +104,10 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable<Sect
rootElement.appendChild(sections);
}
if(this.fieldGroups!=null){
Element formGroups = doc.createElement("fieldGroups");
for(FieldGroup fieldGroup : this.fieldGroups){
formGroups.appendChild(fieldGroup.toXml(doc));
if(this.fieldSets!=null){
Element formGroups = doc.createElement("fieldSets");
for(FieldSet fieldSet : this.fieldSets){
formGroups.appendChild(fieldSet.toXml(doc));
}
rootElement.appendChild(formGroups);
}
@ -145,15 +147,15 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable<Sect
}
}
this.fieldGroups = new LinkedList<FieldGroup>();
Element fieldGroups = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fieldGroups");
this.fieldSets = new LinkedList<FieldSet>();
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));
}
}
}

View File

@ -1,4 +1,4 @@
package eu.eudat.entities.xmlmodels.viewstyledefinition;
package eu.eudat.entities.xmlmodels.datasetprofiledefinition;
import java.util.LinkedList;
import java.util.List;

View File

@ -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<Field>{
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;
}
}

View File

@ -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<FieldGroup>{
private List<FieldSet> fieldSets;
public List<FieldSet> getFieldSets() {
return fieldSets;
}
public void setFieldSets(List<FieldSet> 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;
}
}

View File

@ -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<FieldGroup>{
private String id;
private int ordinal;
private boolean defaultVisibility;
private int page;
private String description;
private String title;
private String extendedDescription;
private List<FieldSet> 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<FieldSet> getFieldSets() {
return fieldSets;
}
public void setFieldSets(List<FieldSet> 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;
}
}

View File

@ -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<FieldSet>{
private String id;
private int ordinal;
private List<Field> fields;
public List<Field> getFields() {
return fields;
}
public void setFields(List<Field> 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;
}
}

View File

@ -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"));

View File

@ -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<FieldSet> fieldSets = ModelBuilderCollector.collectCompositeFields(profile.getSections());
FieldGroup fieldGroup = new FieldGroup();
List<eu.eudat.entities.xmlmodels.modeldefinition.FieldSet> 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;
}

View File

@ -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<DatasetProfileAutocompleteItem> datasetProfiles = new DomainModelConverter<DatasetProfile, DatasetProfileAutocompleteItem>().fromDataModel( items.toList(), DatasetProfileAutocompleteItem.class);
return datasetProfiles;
}
public static DataTableData<DatasetProfileListingModel> getPaged(DatasetProfileDao datasetProfileRepository, DatasetProfileTableRequestItem datasetProfileTableRequestItem) throws IllegalAccessException, InstantiationException{
QueryableList<DatasetProfile> items = datasetProfileRepository.getWithCriteria(datasetProfileTableRequestItem.getCriteria());
QueryableList<DatasetProfile> pagedItems = PaginationManager.applyPaging(items,datasetProfileTableRequestItem);
List<DatasetProfileListingModel> datasetProfiles = new DomainModelConverter<DatasetProfile, DatasetProfileListingModel>().fromDataModel( pagedItems.toList(), DatasetProfileListingModel.class);
DataTableData<DatasetProfileListingModel> dataTable = new DataTableData<>();
dataTable.setData(datasetProfiles);
dataTable.setTotalCount(items.count());
return dataTable;
}
public static List<DatasetProfileListingModel> getAll(DatasetProfileDao datasetProfileRepository) throws IllegalAccessException, InstantiationException{
QueryableList<DatasetProfile> items = datasetProfileRepository.getAll();
List<DatasetProfileListingModel> datasetProfiles = new DomainModelConverter<DatasetProfile, DatasetProfileListingModel>().fromDataModel( items.toList(), DatasetProfileListingModel.class);
return datasetProfiles;
}
}

View File

@ -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;
}

View File

@ -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<eu.eudat.entities.xmlmodels.viewstyledefinition.Field>,ModelDefinition<eu.eudat.entities.xmlmodels.modeldefinition.Field>,Comparable{
public class Field implements ViewStyleDefinition<eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field>,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<eu.eudat.entities.xmlmodels.vi
public void setOrdinal(int ordinal){
this.ordinal = ordinal;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getValue() {
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;
}
@ -97,13 +68,7 @@ public class Field implements ViewStyleDefinition<eu.eudat.entities.xmlmodels.vi
this.datatype = datatype;
}
public Multiplicity getMultiplicity() {
return multiplicity;
}
public void setMultiplicity(Multiplicity multiplicity) {
this.multiplicity = multiplicity;
}
public Object getData() {
return data;
}
@ -118,49 +83,27 @@ public class Field implements ViewStyleDefinition<eu.eudat.entities.xmlmodels.vi
public void setVisible(Visibility visible) {
this.visible = visible;
}
@Override
public eu.eudat.entities.xmlmodels.modeldefinition.Field toDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.Field field) {
public eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field field) {
if(this.id == null||this.id.isEmpty())this.id = "field_"+RandomStringUtils.random(5, true, true);
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) {
if(this.id == null||this.id.isEmpty())this.id = "field_"+RandomStringUtils.random(5, true, true);
field.setDefaultVisibility(this.defaultVisibility);
field.setDescription(this.description);
field.setExtendedDescription(this.extendedDescription);
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.setVisible(this.visible);
field.setDefaultValue(this.defaultValue);
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.visible = item.getVisible();
this.defaultValue = item.getDefaultValue();
}
@Override
public int compareTo(Object o) {

View File

@ -9,10 +9,14 @@ import eu.eudat.models.components.commons.Multiplicity;
import eu.eudat.utilities.ViewStyleDefinition;
import eu.eudat.utilities.builders.ModelBuilder;
public class FieldSet implements Comparable,ModelDefinition<eu.eudat.entities.xmlmodels.modeldefinition.FieldSet>, ViewStyleDefinition<eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet>{
public class FieldSet implements Comparable, ViewStyleDefinition<eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet>{
private String id;
private Integer ordinal;
private Multiplicity multiplicity;
private String title;
private String description;
private String extendedDescription;
private List<Field> fields;
public List<Field> getFields() {
@ -47,41 +51,58 @@ public class FieldSet implements Comparable,ModelDefinition<eu.eudat.entities.xm
this.multiplicity = multiplicity;
}
@Override
public eu.eudat.entities.xmlmodels.modeldefinition.FieldSet toDatabaseDefinition(eu.eudat.entities.xmlmodels.modeldefinition.FieldSet fieldSet) {
if(this.id == null||this.id.isEmpty())this.id = "fieldSet_"+RandomStringUtils.random(5, true, true);
public void setOrdinal(Integer ordinal) {
this.ordinal = ordinal;
}
fieldSet.setId(this.id);
fieldSet.setOrdinal(this.ordinal);
List<eu.eudat.entities.xmlmodels.modeldefinition.Field> 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<eu.eudat.entities.xmlmodels.viewstyledefinition.Field> viewStylefields = new ModelBuilder().toViewStyleDefinition(this.fields, eu.eudat.entities.xmlmodels.viewstyledefinition.Field.class);
List<eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field> 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

View File

@ -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<eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup>,ViewStyleDefinition<eu.eudat.entities.xmlmodels.viewstyledefinition.FieldGroup>{
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<FieldSet> 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<FieldSet> getCompositeFields() {
return compositeFields;
}
public void setCompositeFields(List<FieldSet> 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
}
}

View File

@ -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<eu.eudat.entities.xmlmodels.viewstyledefinition.Section>{
public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section>{
private List<Section> sections;
private List<Group> fieldGroups;
private List<FieldSet> fieldSets;
private Boolean defaultVisibility;
private int page;
private Integer ordinal;
@ -22,12 +22,15 @@ public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities
public void setSections(List<Section> sections) {
this.sections = sections;
}
public List<Group> getFieldGroups() {
return fieldGroups;
public List<FieldSet> getFieldSets() {
return fieldSets;
}
public void setFieldGroups(List<Group> fieldGroups) {
this.fieldGroups = fieldGroups;
public void setFieldSets(List<FieldSet> fieldSets) {
this.fieldSets = fieldSets;
}
public Boolean getDefaultVisibility() {
return defaultVisibility;
}
@ -66,24 +69,24 @@ public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities
this.ordinal = ordinal;
}
@Override
public eu.eudat.entities.xmlmodels.viewstyledefinition.Section toDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.Section item) {
public eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section item) {
if(this.id == null||this.id.isEmpty())this.id = "section_"+RandomStringUtils.random(5, true, true);
item.setDefaultVisibility(this.defaultVisibility);
item.setDescription(this.description);
if(this.fieldGroups!=null)item.setFieldGroups(new ModelBuilder().toViewStyleDefinition(this.fieldGroups, eu.eudat.entities.xmlmodels.viewstyledefinition.FieldGroup.class));
if(this.fieldSets!=null)item.setFieldSets(new ModelBuilder().toViewStyleDefinition(this.fieldSets, eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet.class));
item.setId(this.id);
item.setOrdinal(this.ordinal);
item.setPage(this.page);
if(this.sections!=null)item.setSections(new ModelBuilder().toViewStyleDefinition(this.sections, eu.eudat.entities.xmlmodels.viewstyledefinition.Section.class));
if(this.sections!=null)item.setSections(new ModelBuilder().toViewStyleDefinition(this.sections, eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section.class));
item.setTitle(this.title);
return item;
}
@Override
public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.Section item) {
public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section item) {
this.defaultVisibility = item.isDefaultVisibility();
this.description = item.getDescription();
this.fieldGroups = new ModelBuilder().fromViewStyleDefinition(item.getFieldGroups(),Group.class);
this.fieldSets = new ModelBuilder().fromViewStyleDefinition(item.getFieldSets(),FieldSet.class);
this.id = item.getId();
this.ordinal = item.getOrdinal();
this.page = item.getPage();

View File

@ -27,13 +27,9 @@ public class DatasetProfile {
this.label = label;
}
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.mapSections(sections, fieldGroup.getFieldSets());
}
}

View File

@ -1,12 +1,12 @@
package eu.eudat.models.components.commons;
import eu.eudat.entities.xmlmodels.modeldefinition.DatabaseModelDefinition;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import eu.eudat.entities.xmlmodels.modeldefinition.DatabaseModelDefinition;
import eu.eudat.utilities.XmlSerializable;
public class Rule implements XmlSerializable<Rule>,DatabaseModelDefinition{
public class Rule implements XmlSerializable<Rule>,DatabaseModelDefinition {
private String ruleType;
private String target;
private String ruleStyle;

View File

@ -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<DatasetProfileCriteria> {
}

View File

@ -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;
}
}

View File

@ -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<FieldError> fieldErrors = new ArrayList<>();
private Map<String,String> error = new HashMap<>();
public List<FieldError> getFieldErrors() {
return fieldErrors;
public Map<String, String> getError() {
return error;
}
public void setFieldErrors(List<FieldError> fieldErrors) {
this.fieldErrors = fieldErrors;
public void setError(Map<String, String> 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);
}
}

View File

@ -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<eu.eudat.entities.xmlmodels.modeldefinition.Field>, ViewStyleDefinition<eu.eudat.entities.xmlmodels.viewstyledefinition.Field>{
public class Field implements Comparable,PropertiesModelBuilder,ViewStyleDefinition<eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field>{
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<Field> multiplicityItems;
private Visibility visible;
public List<Field> 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<String, Object> 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<String, Object> properties) {

View File

@ -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<eu.eudat.entities.xmlmodels.modeldefinition.FieldSet>, ViewStyleDefinition<eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet>{
public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDefinition<eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet>{
private String id;
private Integer ordinal;
private String title;
private String description;
private String extendedDescription;
private Multiplicity multiplicity;
private List<Field> fields;
private List<FieldSet> 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<Field> 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<eu.eudat.entities.xmlmodels.modeldefinition.Field> 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<eu.eudat.entities.xmlmodels.viewstyledefinition.Field> 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<eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field> 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<String, Object> 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->{

View File

@ -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<eu.eudat.entities.xmlmodels.modeldefinition.FieldGroup>, ViewStyleDefinition<eu.eudat.entities.xmlmodels.viewstyledefinition.FieldGroup>{
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<FieldSet> 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<FieldSet> getCompositeFields() {
Collections.sort(this.compositeFields);
return compositeFields;
}
public void setCompositeFields(List<FieldSet> 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<String, Object> properties) {
this.compositeFields.forEach(item->item.fromJsonObject(properties));
}
@Override
public void fromJsonObject(Map<String, Object> properties, String index) {
// TODO Auto-generated method stub
}
}

View File

@ -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<eu.eudat.entities.xmlmodels.viewstyledefinition.Section>,PropertiesModelBuilder{
public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section>,PropertiesModelBuilder{
private List<Section> sections;
private List<Group> fieldGroups;
private List<FieldSet> fieldSets;
private Boolean defaultVisibility;
private int page;
private Integer ordinal;
@ -24,12 +24,15 @@ public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities
public void setSections(List<Section> sections) {
this.sections = sections;
}
public List<Group> getFieldGroups() {
return fieldGroups;
public List<FieldSet> getFieldSets() {
return fieldSets;
}
public void setFieldGroups(List<Group> fieldGroups) {
this.fieldGroups = fieldGroups;
public void setFieldSets(List<FieldSet> fieldSets) {
this.fieldSets = fieldSets;
}
public Boolean getDefaultVisibility() {
return defaultVisibility;
}
@ -68,22 +71,22 @@ public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities
this.ordinal = ordinal;
}
@Override
public eu.eudat.entities.xmlmodels.viewstyledefinition.Section toDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.Section item) {
public eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section item) {
item.setDefaultVisibility(this.defaultVisibility);
item.setDescription(this.description);
if(this.fieldGroups!=null)item.setFieldGroups(new ModelBuilder().toViewStyleDefinition(this.fieldGroups, eu.eudat.entities.xmlmodels.viewstyledefinition.FieldGroup.class));
if(this.fieldSets!=null)item.setFieldSets(new ModelBuilder().toViewStyleDefinition(this.fieldSets, eu.eudat.entities.xmlmodels.datasetprofiledefinition.FieldSet.class));
item.setId(this.id);
item.setOrdinal(this.ordinal);
item.setPage(this.page);
if(this.sections!=null)item.setSections(new ModelBuilder().toViewStyleDefinition(this.sections, eu.eudat.entities.xmlmodels.viewstyledefinition.Section.class));
if(this.sections!=null)item.setSections(new ModelBuilder().toViewStyleDefinition(this.sections, eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section.class));
item.setTitle(this.title);
return item;
}
@Override
public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.viewstyledefinition.Section item) {
public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section item) {
this.defaultVisibility = item.isDefaultVisibility();
this.description = item.getDescription();
this.fieldGroups = new ModelBuilder().fromViewStyleDefinition(item.getFieldGroups(),Group.class);
this.fieldSets = new ModelBuilder().fromViewStyleDefinition(item.getFieldSets(),FieldSet.class);
this.id = item.getId();
this.ordinal = item.getOrdinal();
this.page = item.getPage();
@ -93,7 +96,7 @@ public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities
@Override
public void fromJsonObject(Map<String, Object> 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) {

View File

@ -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

View File

@ -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<T extends DatabaseViewStyleDefinition,U extends DatabaseModelDefinition> {
void fromDatabaseDefinition(T viewStyle,U model);

View File

@ -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 extends DatabaseViewStyleDefinition>{
T toDatabaseDefinition(T item);

View File

@ -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 extends FieldData<U>> U toFieldData(Object data,String type){
public <U > FieldData<U> toFieldData(Object data,String type){
if(type.equals("combobox")){
String comboboxType = (String)((Map<String,Object>)data).get("type");
if(comboboxType.equals("autocomplete")){
return (U) new AutoCompleteData().fromData(data);
return (FieldData<U>) new AutoCompleteData().fromData(data);
}else if(comboboxType.equals("wordlist"))
return (U) new WordListData().fromData(data);
return (FieldData<U>) 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<U>) new RadioBoxData().fromData(data);
if(type.equals("checkBox"))return (FieldData<U>) new CheckBoxData().fromData(data);
if(type.equals("freetext"))return null;
return null;
}

View File

@ -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 {

View File

@ -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<FieldSet> collectCompositeFields(List<Section> sections){
List<FieldSet> 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<eu.eudat.models.admin.components.datasetprofile.Section> sections, List<eu.eudat.entities.xmlmodels.modeldefinition.FieldSet> 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<eu.eudat.models.admin.components.datasetprofile.FieldSet> fieldSets, List<eu.eudat.entities.xmlmodels.modeldefinition.FieldSet> 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<eu.eudat.models.admin.components.datasetprofile.Field> fields, List<eu.eudat.entities.xmlmodels.modeldefinition.FieldSet> 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<eu.eudat.models.user.components.datasetprofile.Section> sections, List<eu.eudat.entities.xmlmodels.modeldefinition.FieldSet> 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<eu.eudat.models.user.components.datasetprofile.FieldSet> fieldSets, List<eu.eudat.entities.xmlmodels.modeldefinition.FieldSet> 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<eu.eudat.models.user.components.datasetprofile.Field> fields, List<eu.eudat.entities.xmlmodels.modeldefinition.FieldSet> 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<Rule> collectRules(List<eu.eudat.entities.xmlmodels.viewstyledefinition.Section> sections){
public static List<Rule> collectRules(List<eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section> sections){
List<Rule> 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()

View File

@ -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<T extends DatabaseViewStyleDefinition,U extends DatabaseModelDefinition> {
void fromDatabaseDefinition(T viewStyle,U model);

View File

@ -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 {
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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 ############################

View File

@ -1,2 +1,5 @@
datamanagementplanrequest.length.negative=table length cannot be negative
datamanagementplanrequest.offset.negative=table offset cannot be negative
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

View File

@ -104,7 +104,7 @@ export class ProjectDataSource extends DataSource<ProjectListingModel> {
duration: 3000,
extraClasses: ['snackbar-warning']
});
this._criteria.onCallbackError(error);
this._criteria.onCallbackError(error.error);
return Observable.of(null);
})
.map(result => {

View File

@ -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 => {
(<any>this.errorModel)[item] = (<any>errorModel)[item];
(<any>this.baseErrorModel)[item] = (<any>errorModel)[item];
})
}
public clearErrorModel() {
Object.keys(this.errorModel).forEach(item => {
(<any>this.errorModel)[item] = '';
Object.keys(this.baseErrorModel).forEach(item => {
(<any>this.baseErrorModel)[item] = '';
})
}

View File

@ -5,23 +5,24 @@
<mat-form-field>
<input matInput placeholder=" {{'CRITERIA.PROJECTS.LIKE'| translate}}" name="projectCriteriaLike" [(ngModel)]="criteria.like"
(ngModelChange)="controlModified()">
<mat-error *ngIf="baseErrorModel?.like">{{baseErrorModel['Criteria.like']}}</mat-error>
<mat-error *ngIf="baseErrorModel?.like">{{baseErrorModel['criteria.like']}}</mat-error>
</mat-form-field>
</div>
<div class="col-md-4">
<mat-form-field>
<input matInput (focus)="periodStartPicker.open()" (click)="periodStartPicker.open()" placeholder=" {{'CRITERIA.PROJECTS.PERIOD-FROM'| translate}}"
[matDatepicker]="periodStartPicker" name="projectCriteriaPeriodStart" [(ngModel)]="criteria.periodStart" (ngModelChange)="controlModified()">
<mat-error *ngIf="baseErrorModel?.periodStart">{{baseErrorModel['Criteria.periodStart']}}</mat-error>
<mat-datepicker-toggle matSuffix [for]="periodStartPicker"></mat-datepicker-toggle>
<mat-datepicker #periodStartPicker></mat-datepicker>
</mat-form-field>
<mat-error *ngIf="baseErrorModel['criteria.periodStart']">{{baseErrorModel['criteria.periodStart']}}</mat-error>
</div>
<div class="col-md-4">
<mat-form-field>
<input matInput (focus)="periodEndPicker.open()" (click)="periodEndPicker.open()" name="projectCriteriaPeriodEnd" placeholder=" {{'CRITERIA.PROJECTS.PERIOD-TO'| translate}}"
[matDatepicker]="periodEndPicker" [(ngModel)]="criteria.periodEnd" (ngModelChange)="controlModified()">
<mat-error *ngIf="baseErrorModel?.periodEnd">{{baseErrorModel['Criteria.periodEnd']}}</mat-error>
<mat-error *ngIf="baseErrorModel?.criteria?.periodEnd">{{baseErrorModel['criteria.periodEnd']}}</mat-error>
<mat-datepicker-toggle matSuffix [for]="periodEndPicker"></mat-datepicker-toggle>
<mat-datepicker #periodEndPicker></mat-datepicker>
</mat-form-field>