import org.apache.xmlbeans.XmlException;\r
import org.tianocore.DbPathAndFilename;\r
import org.tianocore.IndustryStdIncludesDocument.IndustryStdIncludes;\r
+import org.tianocore.LibraryClassDeclarationsDocument.LibraryClassDeclarations;\r
+import org.tianocore.LibraryClassDefinitionsDocument.LibraryClassDefinitions;\r
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
import org.tianocore.MsaFilesDocument.MsaFiles;\r
import org.tianocore.PackageDependenciesDocument.PackageDependencies;\r
msaFile.setFilenameArray(msaFile.getFilenameList().size() - 1, fn);\r
spd.setMsaFiles(msaFile);\r
SaveFile.saveSpdFile(mid.getPackageId().getPath(), spd);\r
+ //\r
+ // Update GlobalData\r
+ //\r
+ GlobalData.openingPackageList.getPackageSurfaceAreaFromId(mid.getPackageId()).setMsaFiles(msaFile);\r
}\r
\r
/**\r
public Vector<String> getAllFilesPathOfModule(String path) {\r
Vector<String> v = new Vector<String>();\r
path = Tools.convertPathToCurrentOsType(path);\r
+\r
+ //\r
+ // First add msa file's path\r
+ //\r
v.addElement(path);\r
+\r
ModuleSurfaceArea msa = GlobalData.openingModuleList\r
.getModuleSurfaceAreaFromId(GlobalData.openingModuleList\r
.getIdByPath(path));\r
+ //\r
+ // Get common defined files of module\r
+ //\r
if (msa != null) {\r
//\r
// Get all files' path of a module\r
}\r
}\r
\r
+ //\r
+ // Get include header files for this module\r
+ //\r
+ if (msa.getLibraryClassDefinitions() != null) {\r
+ LibraryClassDefinitions lcd = msa.getLibraryClassDefinitions();\r
+ for (int index = 0; index < lcd.sizeOfLibraryClassArray(); index++) {\r
+ if (lcd.getLibraryClassList().get(index).getUsage().toString()\r
+ .equals(DataType.USAGE_TYPE_ALWAYS_PRODUCED)\r
+ || lcd.getLibraryClassList().get(index).getUsage().toString()\r
+ .equals(DataType.USAGE_TYPE_SOMETIMES_PRODUCED)) {\r
+ //\r
+ // Get library class name\r
+ //\r
+ String name = lcd.getLibraryClassList().get(index).getKeyword();\r
+\r
+ //\r
+ // Find file path for this class\r
+ //\r
+ PackageIdentification pid = GlobalData.openingModuleList.getIdByPath(path).getPackageId();\r
+ PackageSurfaceArea spd = GlobalData.openingPackageList.getPackageSurfaceAreaFromId(pid);\r
+ if (spd != null) {\r
+ if (spd.getLibraryClassDeclarations() != null) {\r
+ LibraryClassDeclarations lcdl = spd.getLibraryClassDeclarations();\r
+ for (int indexOfLibOfSpd = 0; indexOfLibOfSpd < lcdl.sizeOfLibraryClassArray(); indexOfLibOfSpd++) {\r
+ if (lcdl.getLibraryClassList().get(indexOfLibOfSpd).getName().equals(name)) {\r
+ v.addElement(Tools.convertPathToCurrentOsType(Tools.getFilePathOnly(pid.getPath())\r
+ + DataType.FILE_SEPARATOR\r
+ + lcdl.getLibraryClassList()\r
+ .get(indexOfLibOfSpd)\r
+ .getIncludeHeader()));\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
return v;\r
}\r
\r