2017-12-15 00:01:26 +01:00
|
|
|
package eu.eudat.utilities.helpers;
|
2017-11-30 11:10:42 +01:00
|
|
|
|
|
|
|
import java.util.LinkedList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
2017-12-15 00:01:26 +01:00
|
|
|
import eu.eudat.models.admin.components.datasetprofile.FieldSet;
|
|
|
|
import eu.eudat.models.admin.components.datasetprofile.Section;
|
|
|
|
import eu.eudat.models.user.components.commons.Rule;
|
2017-11-30 11:10:42 +01:00
|
|
|
|
|
|
|
public class ModelBuilderCollector {
|
|
|
|
|
2017-12-01 15:09:46 +01:00
|
|
|
|
2017-12-08 11:03:41 +01:00
|
|
|
/**
|
|
|
|
* @param sections
|
|
|
|
* @return
|
|
|
|
*/
|
2018-01-03 11:44:54 +01:00
|
|
|
public static List<Rule> collectRules(List<eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section> sections){
|
2017-12-01 15:09:46 +01:00
|
|
|
List<Rule> rules = new LinkedList();
|
2018-01-03 11:44:54 +01:00
|
|
|
for(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section section: sections){
|
2017-12-08 11:03:41 +01:00
|
|
|
if(!section.getSections().isEmpty()){
|
|
|
|
rules.addAll(collectRules(section.getSections()));
|
|
|
|
}
|
|
|
|
rules.addAll(
|
2018-01-03 11:44:54 +01:00
|
|
|
section.getFieldSets().stream()
|
2017-12-08 11:03:41 +01:00
|
|
|
.map(fieldset->fieldset.getFields())
|
|
|
|
.flatMap(List::stream)
|
|
|
|
.map(field->getRulesFromField(field.getId(),field.getVisible()
|
|
|
|
.getRules()))
|
|
|
|
.flatMap(List::stream)
|
|
|
|
.collect(Collectors.toList()));
|
|
|
|
}
|
|
|
|
|
2017-12-01 15:09:46 +01:00
|
|
|
return rules;
|
|
|
|
}
|
|
|
|
|
2017-12-15 00:01:26 +01:00
|
|
|
private static List<Rule> getRulesFromField(String id,List<eu.eudat.models.components.commons.Rule> rules){
|
2017-12-01 15:09:46 +01:00
|
|
|
List<Rule> modelRules = new LinkedList();
|
2017-12-15 00:01:26 +01:00
|
|
|
for(eu.eudat.models.components.commons.Rule rule : rules){
|
2017-12-01 15:09:46 +01:00
|
|
|
Rule modelRule = new Rule().fromDefinitionRule(rule);
|
|
|
|
modelRule.setSourceField(id);
|
|
|
|
modelRules.add(modelRule);
|
|
|
|
}
|
|
|
|
return modelRules;
|
|
|
|
}
|
|
|
|
|
2017-11-30 11:10:42 +01:00
|
|
|
}
|