package managers; import java.util.Date; import java.util.List; import org.w3c.dom.Document; import org.w3c.dom.Element; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import entities.DatasetProfileViewstyle; import entities.xmlmodels.modeldefinition.FieldGroup; import entities.xmlmodels.viewstyledefinition.Section; import entities.xmlmodels.viewstyledefinition.ViewStyleModel; import models.admin.components.datasetprofile.FieldSet; import models.admin.composite.DatasetProfile; import utilities.builders.ModelBuilder; import utilities.builders.XmlBuilder; import utilities.helpers.ModelBuilderCollector; public class AdminManager { public static entities.DatasetProfile generateModelDefinition(DatasetProfile profile){ ObjectMapper xmlMapper = new XmlMapper(); List
fieldSets = ModelBuilderCollector.collectCompositeFields(profile.getSections()); FieldGroup fieldGroup = new FieldGroup(); List fieldset = new ModelBuilder().toModelDefinition(fieldSets, entities.xmlmodels.modeldefinition.FieldSet.class); fieldGroup.setFieldSets(fieldset); Document modelDoc = XmlBuilder.getDocument(); fieldGroup.toXml(modelDoc); String xml = XmlBuilder.generateXml(modelDoc); entities.DatasetProfile datasetProfile = new 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){ ViewStyleModel viewStyleModel = new ViewStyleModel(); viewStyleModel.setSections(new ModelBuilder().toViewStyleDefinition(profile.getSections(), entities.xmlmodels.viewstyledefinition.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; } public static models.admin.composite.DatasetProfile generateDatasetProfileModel(entities.DatasetProfile profile){ Document viewStyleDoc = XmlBuilder.fromXml(profile.getViewstyle().getDefinition()); Element root = (Element)viewStyleDoc.getDocumentElement(); entities.xmlmodels.viewstyledefinition.ViewStyleModel viewstyle= new entities.xmlmodels.viewstyledefinition.ViewStyleModel().fromXml(root); Document profileDoc = XmlBuilder.fromXml(profile.getDefinition()); root = (Element)profileDoc.getDocumentElement(); entities.xmlmodels.modeldefinition.FieldGroup fieldGroup = new entities.xmlmodels.modeldefinition.FieldGroup().fromXml(root); models.admin.composite.DatasetProfile datasetprofile = new models.admin.composite.DatasetProfile(); datasetprofile.buildProfile(fieldGroup, viewstyle); return datasetprofile; } }