return new ModuleSADocument.ModuleSA[0];\r
\r
}\r
+ \r
/**\r
- Get name array of PCD in a module. In one module, token space\r
- is same, and token name should not be conflicted.\r
-\r
- @return String[]\r
+ Get name array who contains all PCDs in a module according to specified arch.\r
+ \r
+ @param arch The specified architecture type.\r
+ \r
+ @return String[] return all PCDs name into array, if no any PCD used by\r
+ this module, a String[0] array is returned.\r
**/\r
- public String[] getModulePcdEntryNameArray() {\r
+ public String[] getModulePcdEntryNameArray(String arch) {\r
PcdCodedDocument.PcdCoded.PcdEntry[] pcdEntries = null;\r
- String[] results;\r
- int index;\r
- String[] xPath = new String[] {"/PcdEntry"};\r
- Object[] returns = get ("PcdCoded", xPath);\r
+ java.util.List archList = null;\r
+ java.util.List<String> results = new java.util.ArrayList<String> ();\r
+ int index;\r
+ String[] xPath = new String[] {"/PcdEntry"};\r
+ Object[] returns = get ("PcdCoded", xPath);\r
\r
if (returns == null) {\r
return new String[0];\r
}\r
\r
- pcdEntries = (PcdCodedDocument.PcdCoded.PcdEntry[])returns;\r
- results = new String[pcdEntries.length];\r
+ pcdEntries = (PcdCodedDocument.PcdCoded.PcdEntry[])returns;\r
\r
for (index = 0; index < pcdEntries.length; index ++) {\r
- results[index] = pcdEntries[index].getCName();\r
+ archList = pcdEntries[index].getSupArchList();\r
+ //\r
+ // If the ArchList is specified in MSA for this PCD, need check\r
+ // current arch whether can support by this PCD.\r
+ // \r
+ if (archList != null) {\r
+ if (archList.contains(arch)) {\r
+ results.add(new String(pcdEntries[index].getCName()));\r
+ }\r
+ } else {\r
+ //\r
+ // If no ArchList is specificied in MSA for this PCD, that means\r
+ // this PCD support all architectures.\r
+ // \r
+ results.add(new String(pcdEntries[index].getCName()));\r
+ }\r
}\r
- return results;\r
+\r
+ if (results.size() == 0) {\r
+ return new String[0];\r
+ }\r
+\r
+ String[] retArray = new String[results.size()];\r
+ results.toArray(retArray);\r
+\r
+ return retArray; \r
}\r
\r
/**\r