142 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| 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<Material> materials = new ArrayList<>();
 | |
|     static List<Package> 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;
 | |
|     }
 | |
| }
 |