From 2554084eeb9a5593cf40e6ad97e5c6dd83c01823 Mon Sep 17 00:00:00 2001
From: marvin <marvin@marvin-TERRA-MOBILE-1529H>
Date: Thu, 23 Jan 2020 11:27:30 +0100
Subject: [PATCH] merge

---
 .../bin/Adapter.class                         | Bin 0 -> 6001 bytes
 ...onfigurator$$ConfiguratorMain$Module.class | Bin 0 -> 582 bytes
 .../bin/Configurator$$ConfiguratorMain.class  | Bin 0 -> 4256 bytes
 .../bin/Configurator.class                    | Bin 0 -> 483 bytes
 .../src/Configurator.jak                      |  86 ++++++++----------
 5 files changed, 38 insertions(+), 48 deletions(-)
 create mode 100644 Varianten/FeatureModelConfigurator/bin/Adapter.class
 create mode 100644 Varianten/FeatureModelConfigurator/bin/Configurator$$ConfiguratorMain$Module.class
 create mode 100644 Varianten/FeatureModelConfigurator/bin/Configurator$$ConfiguratorMain.class
 create mode 100644 Varianten/FeatureModelConfigurator/bin/Configurator.class

diff --git a/Varianten/FeatureModelConfigurator/bin/Adapter.class b/Varianten/FeatureModelConfigurator/bin/Adapter.class
new file mode 100644
index 0000000000000000000000000000000000000000..1d29be803e4ae0515bcdc9b7d7da372cb4caf871
GIT binary patch
literal 6001
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

literal 0
HcmV?d00001

diff --git a/Varianten/FeatureModelConfigurator/bin/Configurator$$ConfiguratorMain$Module.class b/Varianten/FeatureModelConfigurator/bin/Configurator$$ConfiguratorMain$Module.class
new file mode 100644
index 0000000000000000000000000000000000000000..ea2e6fdb4c44df2d4a6fe46d6dac428344aacdbd
GIT binary patch
literal 582
zcmaix-%A2P5XZl(rg>VPmi;b-jLaZ|dMknug5b0V#rIV=TRHb)?=JAq>LG$2`UCo-
zqS-qk!3SApc4p_p?tEu|e!so}T;VW-1j9+wQ_pe~Y94sHTAj~YT&ilz8-}jPAjM#h
z`5SMzT#Xt}{jnGX3^_lpxA{acl$?K}6KJVMHw<|mBi-q%@EOW669&?4+-uFJj`Rb<
z(!q=LtCtKFXTFEUjtqM%l??6}j%&-{vmQgL=?z5|423+huq-4|%p->qL$YRof+Lk^
zhm*e0UEX&iCEkF$J+7t6XNM`%BE#vDH)kWGKCO-y>VbHW=E~x{tP3+Jn$4q9LN{IR
z`@+v)pW$epS`<&(<7uKodXn^y##WFf4`i?k*tQW#86(RfPx~50*GSL;tor!}*6W|J
j-ziIAgM2z->)52&@I;}Et*E{o`5o*=r;Mt5H~{_tEzOX_

literal 0
HcmV?d00001

diff --git a/Varianten/FeatureModelConfigurator/bin/Configurator$$ConfiguratorMain.class b/Varianten/FeatureModelConfigurator/bin/Configurator$$ConfiguratorMain.class
new file mode 100644
index 0000000000000000000000000000000000000000..679eacc455d2aa4d5ddd1a30152b9f8f78bc5810
GIT binary patch
literal 4256
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
CTQYV4

literal 0
HcmV?d00001

diff --git a/Varianten/FeatureModelConfigurator/bin/Configurator.class b/Varianten/FeatureModelConfigurator/bin/Configurator.class
new file mode 100644
index 0000000000000000000000000000000000000000..5be86ad8f7b5500995f01f112f2db4fabddea69d
GIT binary patch
literal 483
zcmYk2O;5r=5Qg6=pO(s(;>X3rgczua96X{XhQw3x0>Se_7hF@jNon~rM*R(*NIduh
z{87ePYNVHUc6Mi;d1t?WKED85;<yBh;0$y)SBoSPv5rc}6Hc->?RGXB3KbHHS1MHT
z4I$U*P6+vd_N9#+b{rH?B-A_=%KPMbDx<NO29nV9^h^X35h;`ZUFPFQwIo!%?1Vn^
zmSQE#sPmu)F`ow;cGJNg_L(hwf2@bvPXg(wWlU&wyeF{|y+DME-YAY#xafB$#?OI+
zs_|owbP~<voibJ$*=ZN16Q|%+_)EY_W(C#~XFZO@vEZ&z{@{ZJo7Fr6FQ~9OX#vMw
z&Ul&s=4-AtbrrW+Tcg2<))rCS%zNeHH%7i^P?Z!_zcuSJ!1y?0l*O^=o-=7nNsZ8^
M+q@GFSuGs>0xV%wN&o-=

literal 0
HcmV?d00001

diff --git a/Varianten/FeatureModelConfigurator/src/Configurator.jak b/Varianten/FeatureModelConfigurator/src/Configurator.jak
index 656bc98..d2aac61 100644
--- a/Varianten/FeatureModelConfigurator/src/Configurator.jak
+++ b/Varianten/FeatureModelConfigurator/src/Configurator.jak
@@ -1,16 +1,11 @@
 
 import java.util.List;
 import java.util.ArrayList;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
 import java.io.IOException;
 
-import org.jsoup.Jsoup;
-import org.jsoup.nodes.*;
-import org.jsoup.nodes.Document.OutputSettings;
-import org.jsoup.nodes.Document.OutputSettings.Syntax;
-import org.jsoup.parser.Parser;
+import org.jdom2.Document;
+import org.jdom2.Element;
+import org.jdom2.JDOMException;
 
 SoUrCe RooT ConfiguratorMain "../features/ConfiguratorMain/Configurator.jak";
 
@@ -35,16 +30,12 @@ abstract class Configurator$$ConfiguratorMain {
 	//module list
 	private List m_aModuleList;
 	//output path
-	private String m_sOutputPath = "./test.xml";
+	private String m_sOutputPath = "resources/output/featuremodel.xml";
 	//TODO: set this
 	//path for test case selector, which has to be launched from this application
 	private String m_sTestCaseSelectorPath;
-	//TODO: set this
-	//path for the Gazebo adapter, which has to be launched from this application
-	private String m_sGazeboAdapterPath;
-	//TODO: properly set this
 	//path to the feature model xml
-	private String m_sFeatureModelPath = "./model.xml";
+	private String m_sFeatureModelPath = "model.xml";
 	//document representation of the feature model
 	private Document m_oFeatureModelDoc; 
 	//representation of a single module with all of its types
@@ -59,10 +50,9 @@ abstract class Configurator$$ConfiguratorMain {
 	}
 	
 	public void save() {						
-		//transform list to XML document using jsoup
-		Document oDoc = Jsoup.parse("<?xml version=\"1.0\"?>\n", "", Parser.xmlParser());
+		//create empty xml
 		Element oStruct = new Element("specification");
-		oDoc.appendChild(oStruct);
+		Document oDoc = new Document(oStruct);
 		
 		//if the module list was initialized
 		if(m_aModuleList!=null) {
@@ -71,7 +61,7 @@ abstract class Configurator$$ConfiguratorMain {
 				Element oModuleElement = new Element("module");
 				//Add name
 				Module oModule = (Module)m_aModuleList.get(i);
-				oModuleElement.attr("name", oModule.sModuleName);
+				oModuleElement.setAttribute("name", oModule.sModuleName);
 				//Create type String
 				ArrayList<String> aTypes = oModule.aModuleTypes;	
 				String sTypesString = "";
@@ -82,59 +72,59 @@ abstract class Configurator$$ConfiguratorMain {
 					if(j<aTypes.size()-1)
 						sTypesString += ", ";
 				}
-				oModuleElement.attr("types", sTypesString);
-				oStruct.appendChild(oModuleElement);
+				oModuleElement.setAttribute("types", sTypesString);
+				oStruct.addContent(oModuleElement);
 			}
 		}
 		
-		//generate xml String
-		OutputSettings oOutputSettings = new OutputSettings();
-		oOutputSettings.syntax(Syntax.xml);
-		oDoc.outputSettings(oOutputSettings);
-		String sDoc = oDoc.toString();
-		System.out.println(sDoc);
-		
-		//save to file
+		//generate xml String and save it to a file
 		try {
-			BufferedWriter writer = new BufferedWriter(new FileWriter(m_sOutputPath));
-		    writer.write(sDoc);	     
-		    writer.close();			
-		} 
-		catch (IOException oEx) {
+			Adapter.saveAsXml(oDoc, m_sOutputPath);	
+		}
+		catch (Exception oEx) {
 			System.out.println(oEx);
+			return;
 		}
+		
+		//create and launch Adapter
+		new Adapter();
 	}
 	
 	//get all parents of a given module from the Feature Model file
-	private Module GetModuleParents(String sModuleName) throws IOException {
+	private Module GetModuleParents(String sModuleName) throws IOException, JDOMException {
 		Module oModule = new Module();
 		//set name
 		oModule.sModuleName = sModuleName;
 		//init Doc if not done
 		if(m_oFeatureModelDoc==null) {
-			File oModel = new File(m_sFeatureModelPath);
-			m_oFeatureModelDoc = Jsoup.parse(oModel, "UTF-8");
+			m_oFeatureModelDoc = Adapter.readXml(m_sFeatureModelPath);
+			System.out.println(m_oFeatureModelDoc.toString());
+		}
+		//get element
+		String sQuery = "//*[@name= '"+sModuleName+"']";
+		List<Element> aModules = Adapter.xQueryElements(m_oFeatureModelDoc, sQuery);
+		Element oModuleElement;
+		try {
+			oModuleElement = aModules.get(0);
 		}
-		//should have size 1
-		org.jsoup.select.Elements aModuleBuffer = m_oFeatureModelDoc.getElementsByAttributeValue("name", sModuleName);
-		if(aModuleBuffer.size()>1) {
-			//somethings wrong
-			//TODO: properly log this
-			System.out.println("Found more than one module with the name " + sModuleName);
+		catch (Exception oEx) {
+			System.out.println(oEx.toString() + "\nList empty for query "+ sQuery);
+			return null;
 		}
-		Element oModuleElement = aModuleBuffer.first();	
 		//get all anchestors
-		aModuleBuffer = oModuleElement.parents();
+		Element oParent = oModuleElement.getParentElement();
 		ArrayList<String> aTypes = new ArrayList();
 		//itterate through parents of module
-		for(int i=0; i<aModuleBuffer.size(); i++) {
-			Element oElement = aModuleBuffer.get(i);
-			String sElementName = oElement.attr("name");
+		while(true) {
+			String sElementName = oParent.getAttribute("name").getValue();
 			//break if we reach the Main class, as there are no types further up
 			if(sElementName.equals("ConfiguratorMain")) {
 				break;
 			}
 			aTypes.add(sElementName);
+			//iterate further trough List
+			oModuleElement = oParent;
+			oParent = oModuleElement.getParentElement();
 		}		
 		oModule.aModuleTypes = aTypes;
 		return oModule;
@@ -151,7 +141,7 @@ abstract class Configurator$$ConfiguratorMain {
 		try {
 			oModule = GetModuleParents(sModuleName);		
 		}
-		catch (IOException oEx) {
+		catch (Exception oEx) {
 			System.out.print(oEx);
 			return;
 		}		
-- 
GitLab