package com.release11; import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Result; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.File; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Scanner; public class DAO { static List materials = new ArrayList<>(); static List packages = new ArrayList<>(); public String test(LinkedHashMap materialMap) throws Exception { Material material = mapToMaterial(materialMap); String xml = singleXML(material); return xml; } static int counter=0; public void hello(){ counter++; System.out.println("helloWorld"+counter); } public void splitPackage(LinkedHashMap packageMap) { Package pack = new Package(); pack.setId((Integer) packageMap.get("id")); pack.setNumber((String) packageMap.get("number")); pack.setMaterial_id((Integer) packageMap.get("material_id")); pack.setEan((String.valueOf(packageMap.get("ean")))); pack.setUnit_of_measure((String) packageMap.get("unit_of_measure")); pack.setDimension((String) packageMap.get("dimension")); pack.setDescription((String) packageMap.get("description")); packages.add(pack); } public void splitMaterial(LinkedHashMap materialMap) { Material material = mapToMaterial(materialMap); materials.add(material); } public String singleXML(Material material) throws Exception { File file = new File("src/main/resources/test.xml"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dbf.newDocumentBuilder(); Document doc = builder.newDocument(); Element root = doc.createElement("material"); Element materialNumber = doc.createElement("material_number"); materialNumber.setTextContent(String.valueOf(material.getNumber())); root.appendChild(materialNumber); Element materialType = doc.createElement("material_type"); materialType.setTextContent(String.valueOf(material.getType())); root.appendChild(materialType); Element materialName = doc.createElement("material_name"); materialName.setTextContent(String.valueOf(material.getName())); root.appendChild(materialName); Element description = doc.createElement("description"); description.setTextContent(material.getDescription()); root.appendChild(description); Element is_deleted = doc.createElement("is_deleted"); is_deleted.setTextContent(String.valueOf(material.getIs_deleted())); root.appendChild(is_deleted); for (Package p : material.getPackageList()) { Element packageElement = doc.createElement("packages"); Element packageNumber = doc.createElement("package_number"); packageNumber.setTextContent(String.valueOf(p.getNumber())); packageElement.appendChild(packageNumber); Element ean = doc.createElement("ean"); ean.setTextContent(String.valueOf(p.getEan())); packageElement.appendChild(ean); Element unit = doc.createElement("unit_of_measure"); unit.setTextContent(String.valueOf(p.getUnit_of_measure())); packageElement.appendChild(unit); Element dimension = doc.createElement("dimension"); dimension.setTextContent(String.valueOf(p.getDimension())); packageElement.appendChild(dimension); Element descriptionPackage = doc.createElement("description"); descriptionPackage.setTextContent(String.valueOf(p.getDescription())); packageElement.appendChild(descriptionPackage); root.appendChild(packageElement); } doc.appendChild(root); DOMSource src = new DOMSource(doc); Result result = new StreamResult(file); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.transform(src, result); String xml = ""; Scanner myReader = new Scanner(file); while (myReader.hasNextLine()) { xml+=myReader.nextLine()+"\n"; } return xml; } public Material mapToMaterial(LinkedHashMap list) { Material material = new Material(); material.setId((Integer) list.get("id")); material.setNumber((String) list.get("number")); material.setType(Material.enumType.valueOf((String) list.get("type"))); material.setName((String) list.get("name")); material.setDescription((String) list.get("description")); material.setIs_deleted((Boolean) list.get("is_deleted")); for (int j = 0; j < packages.size(); j++) { if (packages.get(j).getMaterial_id() == material.getId()) material.getPackageList().add(packages.get(j)); } return material; } }