\r
///\r
/// Before build a module, the used libary will be build firstly, the PCD of these\r
- /// libarry is inheritted by the module, so stored module's PCD information as PCD\r
+ /// library is inheritted by the module, so stored module's PCD information as PCD\r
/// context of building libary.\r
///\r
public static List<UsageInstance> UsageInstanceContext = null;\r
Object[] dataArray = null;\r
Map.Entry entry = null;\r
int index = 0;\r
+ int size = 0;\r
\r
if (memoryDatabase == null) {\r
return null;\r
}\r
-\r
dataArray = memoryDatabase.entrySet().toArray();\r
+ size = memoryDatabase.size();\r
tokenArray = new Token[memoryDatabase.size()];\r
- for (index = 0; index < memoryDatabase.size(); index ++) {\r
+ for (index = 0; index < size; index++) {\r
entry =(Map.Entry) dataArray [index];\r
tokenArray[index] =(Token) entry.getValue();\r
}\r
-\r
return tokenArray;\r
}\r
\r
/**\r
Get record array only contains DYNAMIC or DYNAMIC_EX type PCD.\r
\r
- @return ArrayList\r
- */\r
+ @return ArrayList the array list contains all dynamic type PCD.\r
+ **/\r
private ArrayList getDynamicRecordArray() {\r
Token[] tokenArray = getRecordArray();\r
int index = 0;\r
ArrayList tokenArrayList = getDynamicRecordArray();\r
Object[] usageInstanceArray = null;\r
UsageInstance usageInstance = null;\r
+ int size = 0;\r
+ int consumerSize = 0;\r
\r
- //pei = new ArrayList<Token>();\r
- //dxe = new ArrayList<Token>();\r
-\r
- for (index = 0; index < tokenArrayList.size(); index++) {\r
+ size = tokenArrayList.size();\r
+ for (index = 0; index < size; index++) {\r
boolean found = false;\r
Token token = (Token) tokenArrayList.get(index);\r
if (token.consumers != null) {\r
usageInstanceArray = token.consumers.entrySet().toArray();\r
- for (usageInstanceIndex = 0; usageInstanceIndex < token.consumers.size(); usageInstanceIndex ++) {\r
+ consumerSize = token.consumers.size();\r
+ for (usageInstanceIndex = 0; usageInstanceIndex < consumerSize; usageInstanceIndex++) {\r
usageInstance =(UsageInstance) (((Map.Entry)usageInstanceArray[usageInstanceIndex]).getValue());\r
if (usageInstance.isPeiPhaseComponent()) {\r
pei.add(token);\r
if (!found) {\r
if (token.consumers != null) {\r
usageInstanceArray = token.consumers.entrySet().toArray();\r
- for (usageInstanceIndex = 0; usageInstanceIndex < token.consumers.size(); usageInstanceIndex ++) {\r
+ consumerSize = token.consumers.size();\r
+ for (usageInstanceIndex = 0; usageInstanceIndex < consumerSize; usageInstanceIndex++) {\r
usageInstance =(UsageInstance) (((Map.Entry)usageInstanceArray[usageInstanceIndex]).getValue());\r
if (usageInstance.isDxePhaseComponent()) {\r
dxe.add(token);\r
}\r
}\r
}\r
-\r
- return;\r
}\r
\r
- /**\r
- Get all PCD record for a module according to module's name, module's GUID,\r
- package name, package GUID, arch, version information.\r
-\r
- @param usageId the id of UsageInstance.\r
-\r
- @return all usage instance for this module in memory database.\r
- **/\r
- public List<UsageInstance> getUsageInstanceArrayByModuleName(UsageIdentification usageId) {\r
-\r
- String primaryKey = UsageInstance.getPrimaryKey(usageId);\r
-\r
- return getUsageInstanceArrayByKeyString(primaryKey);\r
+ public void clearDatabase() {\r
+ memoryDatabase.clear();\r
}\r
\r
/**\r
\r
@param primaryKey the primary key of usage instance.\r
\r
- @return List<UsageInstance>\r
- */\r
- public List<UsageInstance> getUsageInstanceArrayByKeyString(String primaryKey) {\r
+ @return List<UsageInstance> the list contains all usage instances.\r
+ **/\r
+ public List<UsageInstance> getUsageInstanceArrayById(UsageIdentification usageId) {\r
Token[] tokenArray = null;\r
int recordIndex = 0;\r
UsageInstance usageInstance = null;\r
List<UsageInstance> returnArray = new ArrayList<UsageInstance>();\r
+ String primaryKey = usageId.toString();\r
\r
tokenArray = getRecordArray();\r
-\r
+ \r
//\r
// Loop to find all PCD record related to current module\r
//\r
- for (recordIndex = 0; recordIndex < getDBSize(); recordIndex ++) {\r
+ for (recordIndex = 0; recordIndex < getDBSize(); recordIndex++) {\r
if (tokenArray[recordIndex].consumers.size() != 0) {\r
usageInstance = tokenArray[recordIndex].consumers.get(primaryKey);\r
if (usageInstance != null) {\r
return returnArray;\r
}\r
\r
+ public List<Token> getPcdTokenListForModule(UsageIdentification usageId) {\r
+ List<UsageInstance> usageList = getUsageInstanceArrayById(usageId);\r
+ List<Token> tokenList = new ArrayList<Token>();\r
+\r
+ if (usageList == null) {\r
+ return null;\r
+ }\r
+\r
+ for (int usageIndex = 0; usageIndex < usageList.size(); usageIndex++) {\r
+ tokenList.add(usageList.get(usageIndex).parentToken);\r
+ }\r
+\r
+ return tokenList;\r
+ }\r
+\r
/**\r
Get all modules name who contains PCD information\r
\r
- @return Array for module name\r
+ @return Array for usage's identification\r
**/\r
- public List<String> getAllModuleArray()\r
+ public List<UsageIdentification> getAllModuleArray()\r
{\r
- int indexToken = 0;\r
+ int tokenIndex = 0;\r
int usageIndex = 0;\r
int moduleIndex = 0;\r
Token[] tokenArray = null;\r
Object[] usageInstanceArray = null;\r
- List<String> moduleNames = new ArrayList<String>();\r
+ List<UsageIdentification> usageArray = new ArrayList<UsageIdentification>();\r
UsageInstance usageInstance = null;\r
boolean bFound = false;\r
+ String primaryKey = null;\r
\r
tokenArray = getRecordArray();\r
//\r
// Find all consumer usage instance for retrieving module's name\r
//\r
- for (indexToken = 0; indexToken < getDBSize(); indexToken ++) {\r
- usageInstanceArray = tokenArray[indexToken].consumers.entrySet().toArray();\r
- for (usageIndex = 0; usageIndex < tokenArray[indexToken].consumers.size(); usageIndex ++) {\r
+ for (tokenIndex = 0; tokenIndex < getDBSize(); tokenIndex++) {\r
+ usageInstanceArray = tokenArray[tokenIndex].consumers.entrySet().toArray();\r
+ for (usageIndex = 0; usageIndex < tokenArray[tokenIndex].consumers.size(); usageIndex++) {\r
usageInstance = (UsageInstance)((Map.Entry)usageInstanceArray[usageIndex]).getValue();\r
+ primaryKey = usageInstance.getPrimaryKey();\r
bFound = false;\r
- for (moduleIndex = 0; moduleIndex < moduleNames.size(); moduleIndex ++) {\r
- if (moduleNames.get(moduleIndex).equalsIgnoreCase(usageInstance.getPrimaryKey())) {\r
+ for (moduleIndex = 0; moduleIndex < usageArray.size(); moduleIndex++) {\r
+ if (usageArray.get(moduleIndex).toString().equalsIgnoreCase(primaryKey)) {\r
bFound = true;\r
break;\r
}\r
}\r
if (!bFound) {\r
- moduleNames.add(usageInstance.getPrimaryKey());\r
+ usageArray.add(usageInstance.usageId);\r
}\r
}\r
}\r
- return moduleNames;\r
+ return usageArray;\r
}\r
}\r