diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..51a8bba
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index 9154f4c..17278eb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,16 +1,11 @@
-# ---> Java
-# Compiled class file
+# Java
+target/
+bin/
*.class
# Log file
*.log
-# BlueJ files
-*.ctxt
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
# Package Files #
*.jar
*.war
@@ -20,7 +15,5 @@
*.tar.gz
*.rar
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
-replay_pid*
-
+# do NOT ignores
+!lib/*
diff --git a/.project b/.project
new file mode 100644
index 0000000..facdc01
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+
+
+ exampleXml
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..af07d5f
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/src/mmk/xml/ReadXmlFile.java b/src/mmk/xml/ReadXmlFile.java
new file mode 100644
index 0000000..12bd9f4
--- /dev/null
+++ b/src/mmk/xml/ReadXmlFile.java
@@ -0,0 +1,61 @@
+package mmk.xml;
+
+import java.io.IOException;
+import java.util.Locale;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+public class ReadXmlFile {
+
+ public static void main(String[] args) {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder;
+ Document doc;
+ try {
+ dBuilder = dbFactory.newDocumentBuilder();
+ doc = dBuilder.parse("txt//asd.xml");
+ doc.getDocumentElement().normalize();
+ NodeList nList = doc.getElementsByTagName("Parameter");
+
+ for (int temp = 0; temp < nList.getLength(); temp++) {
+ Node node = nList.item(temp);
+ Element param = (Element) node;
+ System.out.println(setParameters(param));
+ }
+ }
+ catch (ParserConfigurationException | SAXException | IOException e) {
+ System.out.println(e.getMessage());
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+
+ private static String setParameters(Element element) throws Exception{
+ String result = "";
+ String typeOfParameter = element.getAttribute("type").trim().toLowerCase(Locale.ENGLISH);
+
+ if (typeOfParameter.equals("real_number"))
+ result = element.getAttribute("name") + " - " + element.getAttribute("type")
+ + " - " + Double.valueOf(element.getAttribute("value"));
+ else if (typeOfParameter.equals("string"))
+ result = element.getAttribute("name") + " - " + element.getAttribute("type")
+ + " - " + element.getAttribute("value");
+ else if (typeOfParameter.equals("integer"))
+ result = element.getAttribute("name") + " - " + element.getAttribute("type")
+ + " - " + Integer.valueOf(element.getAttribute("value"));
+ else if (typeOfParameter.equals("yes_no"))
+ result = element.getAttribute("name") + " - " + element.getAttribute("type")
+ + " - " + Boolean.valueOf(element.getAttribute("value"));
+
+ return result;
+ }
+
+}
diff --git a/src/mmk/xml/WriteXmlFile.java b/src/mmk/xml/WriteXmlFile.java
new file mode 100644
index 0000000..2a04cd3
--- /dev/null
+++ b/src/mmk/xml/WriteXmlFile.java
@@ -0,0 +1,65 @@
+package mmk.xml;
+
+import java.io.File;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+public class WriteXmlFile {
+
+ public static void main(String[] args) {
+
+ File xmlFile = new File("txt\\" + "asd.xml");
+
+ try {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.newDocument();
+ Element rootElement = doc.createElement("Parameters");
+ doc.appendChild(rootElement);
+
+ TransformerFactory tFactory = TransformerFactory.newInstance();
+ Transformer transformer = tFactory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+
+ StreamResult sResult = new StreamResult(xmlFile);
+
+ Element childElement = doc.createElement("Parameter");
+ rootElement.appendChild(childElement);
+
+ Attr attrName = doc.createAttribute("name");
+ attrName.setValue("id");
+ childElement.setAttributeNode(attrName);
+
+ Attr attrType = doc.createAttribute("type");
+ attrType.setValue("string");
+ childElement.setAttributeNode(attrType);
+
+ Attr attrValue = doc.createAttribute("value");
+ attrValue.setValue("00001");
+ childElement.setAttributeNode(attrValue);
+
+ DOMSource source = new DOMSource(doc);
+ transformer.transform(source, sResult);
+ }
+ catch (ParserConfigurationException | TransformerException pce) {
+ System.out.println("error: " + pce.getMessage());
+ }
+
+ System.out.println("Completed.");
+
+ }
+
+}
diff --git a/src/mmk/xml/repo/XmlApp.java b/src/mmk/xml/repo/XmlApp.java
new file mode 100644
index 0000000..a3cb9b6
--- /dev/null
+++ b/src/mmk/xml/repo/XmlApp.java
@@ -0,0 +1,38 @@
+ package mmk.xml.repo;
+
+import java.io.IOException;
+
+public class XmlApp {
+
+ public static void main(String[] args) throws IOException {
+
+ saveXml("txt\\asd2.xml");
+ readXml("txt\\asd2.xml");
+
+ }
+
+ private static void saveXml(String file) {
+ XmlParameter xp1 = new XmlParameter<>("name", "STRING", "M.KILIC");
+ XmlParameter xp2 = new XmlParameter<>("machineType", "STRING", "workstation");
+ XmlParameter xp3 = new XmlParameter<>("length", "REAL_NUMBER", 200.5);
+ XmlParameter xp4 = new XmlParameter<>("qty", "INTEGER", 5);
+ XmlParameter xp5 = new XmlParameter<>("completed", "YES_NO", true);
+
+ XmlRepo xmlr = new XmlRepo(file);
+
+ xmlr.addParam(xp1);
+ xmlr.addParam(xp2);
+ xmlr.addParam(xp3);
+ xmlr.addParam(xp4);
+ xmlr.addParam(xp5);
+
+ System.out.println("done");
+ }
+
+ private static void readXml(String file) {
+ XmlRepo xmlr = new XmlRepo(file);
+
+ xmlr.readParam().stream().forEach(p -> System.out.println(p.toString()));
+ }
+
+}
diff --git a/src/mmk/xml/repo/XmlParameter.java b/src/mmk/xml/repo/XmlParameter.java
new file mode 100644
index 0000000..aaf16aa
--- /dev/null
+++ b/src/mmk/xml/repo/XmlParameter.java
@@ -0,0 +1,44 @@
+package mmk.xml.repo;
+
+public class XmlParameter {
+ private String name;
+ private String type;
+ private T value;
+
+ public XmlParameter() { }
+
+ public XmlParameter(String name, String type, T value) {
+ this.name = name;
+ this.type = type;
+ this.value = value;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public T getValeu() {
+ return value;
+ }
+
+ public void setValeu(T valeu) {
+ this.value = valeu;
+ }
+
+ @Override
+ public String toString() {
+ return name +" - "+ type +" - "+ value;
+ }
+}
diff --git a/src/mmk/xml/repo/XmlRepo.java b/src/mmk/xml/repo/XmlRepo.java
new file mode 100644
index 0000000..8b9e968
--- /dev/null
+++ b/src/mmk/xml/repo/XmlRepo.java
@@ -0,0 +1,178 @@
+package mmk.xml.repo;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class XmlRepo {
+ private File xmlFile;
+ private Document doc;
+ private Element rootElement;
+ private Transformer transformer;
+ private StreamResult sResult;
+
+ public XmlRepo(String urlFileName) {
+ xmlFile = new File(urlFileName);
+
+ if (xmlFile.exists()) {
+ try {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ doc = dBuilder.parse(xmlFile);
+ rootElement = doc.getDocumentElement();
+
+ TransformerFactory tFactory = TransformerFactory.newInstance();
+ transformer = tFactory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+
+ sResult = new StreamResult(xmlFile);
+ }
+ catch (ParserConfigurationException pce) {
+ System.out.println(pce.getMessage());
+ }
+ catch (TransformerConfigurationException tce) {
+ System.out.println(tce.getMessage());
+ }
+ catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ else {
+ try {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ doc = dBuilder.newDocument();
+ rootElement = doc.createElement("Parameters");
+ doc.appendChild(rootElement);
+
+ TransformerFactory tFactory = TransformerFactory.newInstance();
+ transformer = tFactory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+ //transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
+ //transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "3");
+
+ sResult = new StreamResult(xmlFile);
+ DOMSource source = new DOMSource(doc);
+
+ transformer.transform(source, sResult);
+ }
+ catch (ParserConfigurationException pce) {
+ //...
+ }
+ catch (TransformerConfigurationException tce) {
+ //...
+ }
+ catch (Exception e) {
+ //...
+ }
+ }
+ }
+
+ public boolean addParam(XmlParameter> parameter) {
+ try {
+
+ Element childElement = doc.createElement("Parameter");
+ rootElement.appendChild(childElement);
+
+ Attr attrName = doc.createAttribute("name");
+ attrName.setValue(parameter.getName());
+ childElement.setAttributeNode(attrName);
+
+ Attr attrType = doc.createAttribute("type");
+ attrType.setValue(parameter.getType());
+ childElement.setAttributeNode(attrType);
+
+ Attr attrValue = doc.createAttribute("value");
+ attrValue.setValue(parameter.getValeu().toString());
+ childElement.setAttributeNode(attrValue);
+
+ DOMSource source = new DOMSource(doc);
+ transformer.transform(source, sResult);
+
+ return true;
+ }
+ catch (Exception ex) {
+ return false;
+ }
+ }
+
+ public boolean changeParam(XmlParameter> parameter) {
+ try {
+ NodeList nList = doc.getElementsByTagName("Parameter");
+
+ for (int i = 0; i > readParam(){
+ List> parameters = new ArrayList<>();
+ doc.getDocumentElement().normalize();
+ NodeList nList = doc.getElementsByTagName("Parameter");
+
+ for (int temp = 0; temp < nList.getLength(); temp++) {
+ Node node = nList.item(temp);
+ Element param = (Element) node;
+
+ try {
+ parameters.add(getParameter(param));
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ }
+ }
+ return parameters;
+ }
+
+ private XmlParameter> getParameter(Element element) throws Exception{
+ XmlParameter> parameter = null;
+ String typeOfParameter = element.getAttribute("type").trim().toLowerCase(Locale.ENGLISH);
+
+ if (typeOfParameter.equals("real_number"))
+ parameter = new XmlParameter(element.getAttribute("name"),
+ element.getAttribute("type"), Double.valueOf(element.getAttribute("value")));
+ else if (typeOfParameter.equals("string"))
+ parameter = new XmlParameter(element.getAttribute("name"),
+ element.getAttribute("type"), (element.getAttribute("value")));
+ else if (typeOfParameter.equals("integer"))
+ parameter = new XmlParameter(element.getAttribute("name"),
+ element.getAttribute("type"), Integer.valueOf(element.getAttribute("value")));
+ else if (typeOfParameter.equals("yes_no"))
+ parameter = new XmlParameter(element.getAttribute("name"),
+ element.getAttribute("type"), Boolean.valueOf(element.getAttribute("value")));
+
+ return parameter;
+ }
+
+}
diff --git a/txt/asd.xml b/txt/asd.xml
new file mode 100644
index 0000000..349fad8
--- /dev/null
+++ b/txt/asd.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/txt/asd2.xml b/txt/asd2.xml
new file mode 100644
index 0000000..d7c0a49
--- /dev/null
+++ b/txt/asd2.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/xmlFiles/CityTemplate.xml b/xmlFiles/CityTemplate.xml
new file mode 100644
index 0000000..2a4ce4e
--- /dev/null
+++ b/xmlFiles/CityTemplate.xml
@@ -0,0 +1,10 @@
+
+Bratislava432000
+Budapest1759000
+Prague1280000
+Warsaw1748000
+Los Angeles3971000
+New York8550000
+Edinburgh464000
+Berlin3671000
+
\ No newline at end of file
diff --git a/xmlFiles/XmlUpdaterTemplate.xml b/xmlFiles/XmlUpdaterTemplate.xml
new file mode 100644
index 0000000..76d3d9c
--- /dev/null
+++ b/xmlFiles/XmlUpdaterTemplate.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file