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