+ \r
+ XmlCursor cursor = msa.getLibraries().newCursor();\r
+ if (cursor.toFirstChild()) {\r
+ for (int j = 0; j < i; ++j) {\r
+ cursor.toNextSibling();\r
+ }\r
+ cursor.push();\r
+ cursor.toPrevToken();\r
+ if (cursor.isComment()) {\r
+ cursor.removeXml();\r
+ }\r
+ cursor.pop();\r
+ cursor.removeXml();\r
+ if (getLibraryInstancesCount(key) == 0) {\r
+ cursor.toParent();\r
+ cursor.removeXml();\r
+ }\r
+ }\r
+ \r
+ cursor.dispose();\r
+ }\r
+ \r
+ public void genLibraryInstance(ModuleIdentification libMi, String key) {\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(key);\r
+ if (msa == null){\r
+ msa = getfpdFrameworkModules().addNewModuleSA();\r
+ }\r
+ LibrariesDocument.Libraries libs = msa.getLibraries();\r
+ if(libs == null){\r
+ libs = msa.addNewLibraries();\r
+ }\r
+ \r
+ String mn = libMi.getName();\r
+ String mg = libMi.getGuid();\r
+ String mv = libMi.getVersion();\r
+ String pn = libMi.getPackage().getName();\r
+ String pg = libMi.getPackage().getGuid();\r
+ String pv = libMi.getPackage().getVersion();\r
+ LibrariesDocument.Libraries.Instance instance = libs.addNewInstance();\r
+ XmlCursor cursor = instance.newCursor();\r
+ try{\r
+ String comment = "Pkg: " + pn + " Mod: " + mn \r
+ + " Path: " + GlobalData.getMsaFile(libMi).getPath().substring(System.getenv("WORKSPACE").length() + 1);\r
+ cursor.insertComment(comment);\r
+ }\r
+ catch (Exception e){\r
+ e.printStackTrace();\r
+ }\r
+ finally {\r
+ cursor.dispose();\r
+ }\r
+ \r
+ instance.setModuleGuid(mg);\r
+ instance.setModuleVersion(mv);\r
+ instance.setPackageGuid(pg);\r
+ 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();\r
+ \r
+ }\r
+ ModuleSaBuildOptionsDocument.ModuleSaBuildOptions msaBuildOpts= msa.getModuleSaBuildOptions();\r
+ if (fileGuid != null) {\r
+ msaBuildOpts.setFfsFileNameGuid(fileGuid);\r
+ }\r
+ else{\r
+ XmlCursor cursor = msaBuildOpts.newCursor();\r
+ if (cursor.toChild(xmlNs, "FfsFileNameGuid")) {\r
+ cursor.removeXml();\r
+ }\r
+ cursor.dispose();\r
+ }\r
+ \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().setFfsFormatKey(ffsKey);\r
+ }\r
+ \r
+ public void getModuleSAOptions(String moduleKey, String[][] saa) {\r
+ ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
+ if (msa == null || 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
+ saa[i][2] = opt.getTagName();\r
+ saa[i][3] = opt.getToolCode();\r
+ \r
+ if (opt.getSupArchList() != null){\r
+ saa[i][4] = listToString(opt.getSupArchList());\r
+\r
+ }\r
+ \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 == null || 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