return fpdFrameworkModules;\r
}\r
\r
+ public void getFrameworkModuleGuid (String fvName, Vector<String> vGuid) {\r
+ if (getFrameworkModulesCount() == 0){\r
+ return;\r
+ }\r
+ \r
+ ListIterator li = getfpdFrameworkModules().getModuleSAList().listIterator();\r
+ while(li.hasNext()) {\r
+ ModuleSADocument.ModuleSA moduleSa = (ModuleSADocument.ModuleSA)li.next();\r
+ if (moduleSa.getModuleSaBuildOptions() == null) {\r
+ continue;\r
+ }\r
+ String fvBinding = moduleSa.getModuleSaBuildOptions().getFvBinding();\r
+ if (fvBinding == null) {\r
+ continue;\r
+ }\r
+ \r
+ String[] fvNames = fvBinding.split(" ");\r
+ for (int i = 0; i < fvNames.length; ++i) {\r
+ if (fvNames[i].equals(fvName) || fvNames[i].replaceAll("_", "").equals(fvName)) {\r
+ vGuid.add(moduleSa.getModuleGuid());\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ }\r
+ \r
public int getFrameworkModulesCount() {\r
if (getfpdFrameworkModules().getModuleSAList() == null || getfpdFrameworkModules().getModuleSAList().size() == 0){\r
removeElement(getfpdFrameworkModules());\r
ListIterator li = getfpdFrameworkModules().getModuleSAList().listIterator();\r
int i = 0;\r
while(li.hasNext()) {\r
- ModuleSADocument.ModuleSA msa = (ModuleSADocument.ModuleSA)li.next();\r
- saa[i][0] = msa.getModuleGuid();\r
- saa[i][1] = msa.getModuleVersion();\r
+ ModuleSADocument.ModuleSA moduleSa = (ModuleSADocument.ModuleSA)li.next();\r
+ saa[i][0] = moduleSa.getModuleGuid();\r
+ saa[i][1] = moduleSa.getModuleVersion();\r
\r
- saa[i][2] = msa.getPackageGuid();\r
- saa[i][3] = msa.getPackageVersion();\r
- saa[i][4] = listToString(msa.getSupArchList());\r
+ saa[i][2] = moduleSa.getPackageGuid();\r
+ saa[i][3] = moduleSa.getPackageVersion();\r
+ saa[i][4] = listToString(moduleSa.getSupArchList());\r
++i;\r
}\r
}\r
if (moduleSA.getPcdBuildDefinition() != null) {\r
XmlCursor cursor = moduleSA.getPcdBuildDefinition().newCursor();\r
if (cursor.toFirstChild()) {\r
- PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData pcdData = (PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData) cursor\r
- .getObject();\r
- if (msaPcd.getCName().equals(pcdData.getCName())\r
- && msaPcd.getTokenSpaceGuidCName().equals(pcdData.getTokenSpaceGuidCName())) {\r
-\r
- maintainDynPcdMap(pcdData.getCName() + " " + pcdData.getTokenSpaceGuidCName(), moduleKey);\r
- cursor.removeXml();\r
- break;\r
- }\r
- while (cursor.toNextSibling()) {\r
- pcdData = (PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData) cursor.getObject();\r
+ do {\r
+ PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData pcdData = (PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData) cursor\r
+ .getObject();\r
if (msaPcd.getCName().equals(pcdData.getCName())\r
&& msaPcd.getTokenSpaceGuidCName().equals(pcdData.getTokenSpaceGuidCName())) {\r
+\r
maintainDynPcdMap(pcdData.getCName() + " " + pcdData.getTokenSpaceGuidCName(),\r
moduleKey);\r
cursor.removeXml();\r
break;\r
}\r
- }\r
+ } while (cursor.toNextSibling());\r
}\r
cursor.dispose();\r
}\r
return msa.getModuleSaBuildOptions().getFvBinding();\r
}\r
\r
+ public void setFvBinding(ModuleSADocument.ModuleSA moduleSa, String fvBinding) {\r
+ if (moduleSa == null ) {\r
+ return;\r
+ }\r
+ if (fvBinding == null || fvBinding.length() == 0) {\r
+ if(moduleSa.getModuleSaBuildOptions() != null){\r
+ moduleSa.getModuleSaBuildOptions().unsetFvBinding();\r
+ }\r
+ }\r
+ else {\r
+ if(moduleSa.getModuleSaBuildOptions() == null){\r
+ moduleSa.addNewModuleSaBuildOptions().setFvBinding(fvBinding);\r
+ return;\r
+ }\r
+ moduleSa.getModuleSaBuildOptions().setFvBinding(fvBinding);\r
+ }\r
+ }\r
+ \r
public void setFvBinding(String moduleKey, String fvBinding){\r
- ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
- if (msa == null ) {\r
+ ModuleSADocument.ModuleSA moduleSa = getModuleSA(moduleKey);\r
+ setFvBinding (moduleSa, fvBinding);\r
+ }\r
+ \r
+ public void removeFvBinding (ModuleSADocument.ModuleSA moduleSa, String fvName) {\r
+ if (moduleSa == null || moduleSa.getModuleSaBuildOptions() == null || moduleSa.getModuleSaBuildOptions().getFvBinding() == null) {\r
return;\r
}\r
- if(msa.getModuleSaBuildOptions() == null){\r
- msa.addNewModuleSaBuildOptions().setFvBinding(fvBinding);\r
+ \r
+ String fvNameList = moduleSa.getModuleSaBuildOptions().getFvBinding();\r
+ String[] fvNamesArray = fvNameList.split(" ");\r
+ int occursAt = -1;\r
+ for (int i = 0; i < fvNamesArray.length; ++i) {\r
+ if (fvNamesArray[i].equals(fvName)) {\r
+ occursAt = i;\r
+ break;\r
+ }\r
+ }\r
+ // jump over where the input fvName occurs in the original Fv list.\r
+ if (occursAt != -1) {\r
+ String newFvNameList = " ";\r
+ for (int i = 0; i < fvNamesArray.length; ++i) {\r
+ if (i == occursAt) {\r
+ continue;\r
+ }\r
+ newFvNameList += fvNamesArray[i];\r
+ }\r
+ setFvBinding (moduleSa, newFvNameList.trim());\r
+ }\r
+\r
+ }\r
+ \r
+ /**\r
+ * @param fvName The FV name that to be removed from FvBinding List.\r
+ */\r
+ public void removeFvBindingAll (String fvName) {\r
+ if (getfpdFrameworkModules().getModuleSAList() == null || getfpdFrameworkModules().getModuleSAList().size() == 0){\r
+ removeElement(getfpdFrameworkModules());\r
+ fpdFrameworkModules = null;\r
+ return;\r
+ }\r
+ \r
+ Iterator<ModuleSADocument.ModuleSA> li = getfpdFrameworkModules().getModuleSAList().iterator();\r
+ while (li.hasNext()) {\r
+ ModuleSADocument.ModuleSA moduleSa = li.next();\r
+ removeFvBinding (moduleSa, fvName); \r
+ }\r
+ }\r
+ \r
+ public void appendFvBinding (String moduleKey, String fvName) {\r
+ ModuleSADocument.ModuleSA moduleSa = getModuleSA(moduleKey);\r
+ appendFvBinding (moduleSa, fvName);\r
+ }\r
+ \r
+ public void appendFvBinding (ModuleSADocument.ModuleSA moduleSa, String fvName) {\r
+ if (moduleSa == null) {\r
+ return;\r
+ }\r
+ \r
+ if (moduleSa.getModuleSaBuildOptions() == null || moduleSa.getModuleSaBuildOptions().getFvBinding() == null) {\r
+ setFvBinding(moduleSa, fvName);\r
return;\r
}\r
- msa.getModuleSaBuildOptions().setFvBinding(fvBinding);\r
+ \r
+ String fvNameList = moduleSa.getModuleSaBuildOptions().getFvBinding();\r
+ String newFvNameList = fvNameList + " " + fvName;\r
+ setFvBinding (moduleSa, newFvNameList.trim());\r
+ }\r
+ \r
+ public void updateFvBindingInModuleSA (ModuleIdentification mi, String fvName) {\r
+ Vector<Object> vSupArchs = new Vector<Object>();\r
+ getPlatformDefsSupportedArchs(vSupArchs);\r
+ String moduleInfo = mi.getGuid() + " " + mi.getVersion() + " " + mi.getPackageId().getGuid() + " " + mi.getPackageId().getVersion();\r
+ for (int i = 0; i < vSupArchs.size(); ++i) {\r
+ String moduleKey = moduleInfo + " " + vSupArchs.get(i);\r
+ appendFvBinding (moduleKey, fvName);\r
+ }\r
}\r
\r
public String getFfsFileNameGuid(String moduleKey){\r
- ModuleSADocument.ModuleSA msa = getModuleSA(moduleKey);\r
- if (msa == null || msa.getModuleSaBuildOptions() == null) {\r
+ ModuleSADocument.ModuleSA moduleSa = getModuleSA(moduleKey);\r
+ if (moduleSa == null || moduleSa.getModuleSaBuildOptions() == null) {\r
return null;\r
}\r
- return msa.getModuleSaBuildOptions().getFfsFileNameGuid();\r
+ return moduleSa.getModuleSaBuildOptions().getFfsFileNameGuid();\r
}\r
\r
public void setFfsFileNameGuid(String moduleKey, String fileGuid){\r
fpdPcd.setValue("0");\r
}\r
if (dataType.equals("BOOLEAN")){\r
- fpdPcd.setValue("false");\r
+ fpdPcd.setValue("FALSE");\r
}\r
if (dataType.equals("VOID*")) {\r
fpdPcd.setValue("");\r
return fpdBuildOpts;\r
}\r
\r
- public void genBuildOptionsUserExtensions(String fvName, String infName, String outputFileName, String[][] includeModules) {\r
+ public void genBuildOptionsUserExtensions(String fvName, String outputFileName, Vector<String[]> includeModules) {\r
UserExtensionsDocument.UserExtensions userExts = getfpdBuildOpts().addNewUserExtensions();\r
userExts.setUserID("IMAGES");\r
userExts.setIdentifier(new BigInteger("1"));\r
cursor.toNextToken();\r
\r
cursor.beginElement("InfFileName");\r
- cursor.insertChars(infName);\r
+ cursor.insertChars(fvName + ".inf");\r
cursor.toNextToken();\r
\r
cursor.beginElement("IncludeModules");\r
- for (int i = 0; i < includeModules.length; ++i) {\r
+ for (int i = 0; i < includeModules.size(); ++i) {\r
cursor.beginElement("Module");\r
- cursor.insertAttributeWithValue("ModuleGuid", includeModules[i][0]);\r
- cursor.insertAttributeWithValue("BaseName", includeModules[i][1]);\r
+ cursor.insertAttributeWithValue("ModuleGuid", includeModules.get(i)[0]);\r
+ cursor.insertAttributeWithValue("BaseName", includeModules.get(i)[1]);\r
cursor.toEndToken();\r
cursor.toNextToken();\r
}\r
\r
}\r
\r
+ public void removeBuildOptionsUserExtensions (String fvName) {\r
+ if (getfpdBuildOpts().getUserExtensionsList() == null) {\r
+ return;\r
+ }\r
+ \r
+ ListIterator<UserExtensionsDocument.UserExtensions> li = getfpdBuildOpts().getUserExtensionsList().listIterator();\r
+ while (li.hasNext()) {\r
+ UserExtensionsDocument.UserExtensions ues = li.next();\r
+ if (!ues.getUserID().equals("IMAGES")) {\r
+ continue;\r
+ }\r
+ XmlCursor cursor = ues.newCursor();\r
+ cursor.toFirstChild();\r
+ String elementName = cursor.getTextValue();\r
+ if (elementName.equals(fvName)) {\r
+ cursor.toParent();\r
+ cursor.removeXml();\r
+ cursor.dispose();\r
+ return;\r
+ }\r
+ cursor.dispose();\r
+ }\r
+ \r
+ }\r
+ \r
+ \r
public void genBuildOptionsUserDefAntTask (String id, String fileName, String execOrder) {\r
UserDefinedAntTasksDocument.UserDefinedAntTasks udats = getfpdBuildOpts().getUserDefinedAntTasks();\r
if (udats == null) {\r