]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
Add ModuleSA BuildOptions
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFileContents.java
index b9e772e0b3b868716eb47cd358d2621fdbb7f642..21e0a5b25b00cefbfd7d5753a8b1592635982ba8 100644 (file)
@@ -391,6 +391,149 @@ public class FpdFileContents {
         instance.setPackageVersion(pv);\r
         \r
     }\r
+    \r
+    public String getFvBinding(String moduleKey){\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa == null || msa.getModuleSaBuildOptions() == null) {\r
+            return null;\r
+        }\r
+        return msa.getModuleSaBuildOptions().getFvBinding();\r
+    }\r
+    \r
+    public void setFvBinding(String moduleKey, String fvBinding){\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa == null ) {\r
+            return;\r
+        }\r
+        if(msa.getModuleSaBuildOptions() == null){\r
+            msa.addNewModuleSaBuildOptions().setFvBinding(fvBinding);\r
+            return;\r
+        }\r
+        msa.getModuleSaBuildOptions().setFvBinding(fvBinding);\r
+    }\r
+    \r
+    public String getFfsFileNameGuid(String moduleKey){\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa == null || msa.getModuleSaBuildOptions() == null) {\r
+            return null;\r
+        }\r
+        return msa.getModuleSaBuildOptions().getFfsFileNameGuid();\r
+    }\r
+    \r
+    public void setFfsFileNameGuid(String moduleKey, String fileGuid){\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa == null ) {\r
+            return;\r
+        }\r
+        if(msa.getModuleSaBuildOptions() == null){\r
+            msa.addNewModuleSaBuildOptions().setFfsFileNameGuid(fileGuid);\r
+            return;\r
+        }\r
+        msa.getModuleSaBuildOptions().setFfsFileNameGuid(fileGuid);\r
+    }\r
+    \r
+    public String getFfsFormatKey(String moduleKey){\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa == null || msa.getModuleSaBuildOptions() == null) {\r
+            return null;\r
+        }\r
+        return msa.getModuleSaBuildOptions().getFfsFormatKey();\r
+    }\r
+    \r
+    public void setFfsFormatKey(String moduleKey, String ffsKey){\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa == null ) {\r
+            return;\r
+        }\r
+        if(msa.getModuleSaBuildOptions() == null){\r
+            msa.addNewModuleSaBuildOptions().setFfsFormatKey(ffsKey);\r
+            return;\r
+        }\r
+        msa.getModuleSaBuildOptions().setFvBinding(ffsKey);\r
+    }\r
+    \r
+    public void getModuleSAOptions(String moduleKey, String[][] saa) {\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null\r
+                        || msa.getModuleSaBuildOptions().getOptions().getOptionList() == null) {\r
+            return ;\r
+        }\r
+        \r
+        List<OptionDocument.Option> lOpt = msa.getModuleSaBuildOptions().getOptions().getOptionList();\r
+        ListIterator li = lOpt.listIterator();\r
+        int i = 0;\r
+        while(li.hasNext()) {\r
+            OptionDocument.Option opt = (OptionDocument.Option)li.next();\r
+            if (opt.getBuildTargets() != null) {\r
+                saa[i][0] = listToString(opt.getBuildTargets());\r
+            }\r
+            saa[i][1] = opt.getToolChainFamily();\r
+            if (opt.getSupArchList() != null){\r
+                saa[i][2] = listToString(opt.getSupArchList());\r
+\r
+            }\r
+            saa[i][3] = opt.getToolCode();\r
+            saa[i][4] = opt.getTagName();\r
+            saa[i][5] = opt.getStringValue();\r
+             \r
+            ++i;\r
+        }\r
+    }\r
+    \r
+    public int getModuleSAOptionsCount(String moduleKey){\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null\r
+                        || msa.getModuleSaBuildOptions().getOptions().getOptionList() == null) {\r
+            return 0;\r
+        }\r
+        return msa.getModuleSaBuildOptions().getOptions().getOptionList().size();\r
+    }\r
+    \r
+    public void genModuleSAOptionsOpt(String moduleKey, Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents) {\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa.getModuleSaBuildOptions() == null) {\r
+            msa.addNewModuleSaBuildOptions();\r
+        }\r
+        if (msa.getModuleSaBuildOptions().getOptions() == null){\r
+            msa.getModuleSaBuildOptions().addNewOptions();\r
+        }\r
+        OptionDocument.Option opt = msa.getModuleSaBuildOptions().getOptions().addNewOption();\r
+        setBuildOptionsOpt(buildTargets, toolChain, tagName, toolCmd, archList, contents, opt);\r
+    }\r
+    \r
+    public void removeModuleSAOptionsOpt(String moduleKey, int i) {\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null) {\r
+            return ;\r
+        }\r
+        OptionsDocument.Options opts = msa.getModuleSaBuildOptions().getOptions();\r
+        XmlCursor cursor = opts.newCursor();\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j){\r
+                cursor.toNextSibling();\r
+            }\r
+            cursor.removeXml();\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
+    public void updateModuleSAOptionsOpt(String moduleKey, int i, Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents) {\r
+        ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+        if (msa.getModuleSaBuildOptions() == null || msa.getModuleSaBuildOptions().getOptions() == null) {\r
+            return ;\r
+        }\r
+        OptionsDocument.Options opts = msa.getModuleSaBuildOptions().getOptions();\r
+        XmlCursor cursor = opts.newCursor();\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j){\r
+                cursor.toNextSibling();\r
+            }\r
+            OptionDocument.Option opt = (OptionDocument.Option)cursor.getObject();\r
+            setBuildOptionsOpt(buildTargets, toolChain, tagName, toolCmd, archList, contents, opt);\r
+        }\r
+        cursor.dispose();\r
+    }\r
+    \r
     /**add pcd information of module mi to a ModuleSA. \r
      * @param mi\r
      * @param moduleSa if null, generate a new ModuleSA.\r
@@ -1050,7 +1193,7 @@ public class FpdFileContents {
             ++i;\r
         }\r
     }\r
-    public void genBuildOptionsOpt(String buildTargets, String toolChain, String tagName, String toolCmd, String archList, String contents) {\r
+    public void genBuildOptionsOpt(Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents) {\r
         OptionsDocument.Options opts = getfpdBuildOpts().getOptions();\r
         if (opts == null) {\r
             opts = getfpdBuildOpts().addNewOptions();\r
@@ -1059,18 +1202,15 @@ public class FpdFileContents {
         setBuildOptionsOpt(buildTargets, toolChain, tagName, toolCmd, archList, contents, opt);\r
     }\r
     \r
-    private void setBuildOptionsOpt(String buildTargets, String toolChain, String tagName, String toolCmd, String archList, String contents, OptionDocument.Option opt){\r
+    private void setBuildOptionsOpt(Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents, OptionDocument.Option opt){\r
         opt.setStringValue(contents);\r
-//        opt.setBuildTargets(buildTargets);\r
+        \r
+        opt.setBuildTargets(buildTargets);\r
         opt.setToolChainFamily(toolChain);\r
         opt.setTagName(tagName);\r
         opt.setToolCode(toolCmd);\r
-        String[] s = archList.split(" ");\r
-        ArrayList<String> al = new ArrayList<String>();\r
-        for (int i = 0; i < s.length; ++i) {\r
-            al.add(s[i]);\r
-        }\r
-        opt.setSupArchList(al);\r
+        \r
+        opt.setSupArchList(archList);\r
     }\r
     \r
     public void removeBuildOptionsOpt(int i){\r
@@ -1090,7 +1230,7 @@ public class FpdFileContents {
         cursor.dispose();\r
     }\r
     \r
-    public void updateBuildOptionsOpt(int i, String buildTargets, String toolChain, String tagName, String toolCmd, String archList, String contents) {\r
+    public void updateBuildOptionsOpt(int i, Vector<Object> buildTargets, String toolChain, String tagName, String toolCmd, Vector<Object> archList, String contents) {\r
         XmlObject o = getfpdBuildOpts().getOptions();\r
         if (o == null) {\r
             return;\r
@@ -1374,8 +1514,8 @@ public class FpdFileContents {
             while(li.hasNext()) {\r
                 BuildOptionsDocument.BuildOptions.Ffs.Sections.Sections2.Section section = li.next();\r
                 if (section.isSetSectionType()) {\r
-                al.add(section.getSectionType().toString());\r
-            }\r
+                    al.add(section.getSectionType().toString());\r
+                }\r
                 \r
             }\r
         }\r
@@ -2002,7 +2142,7 @@ public class FpdFileContents {
 \r
     }\r
     \r
-    private String listToString(List<String> l) {\r
+    private String listToString(List l) {\r
         if (l == null) {\r
             return null;\r
         }\r