X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FPcdTools%2Forg%2Ftianocore%2Fpcd%2Fentity%2FMemoryDatabaseManager.java;h=62789fe4c987dfd3b90e90ae3ed21a91594ecd93;hp=2962e748a2d1800afeb4d76afddabf77213e50cd;hb=b6297711809e23f322ba99177445670b56f28973;hpb=74c0c087a2a7ed32dcbc8a91c9466b01430a241c diff --git a/Tools/Source/PcdTools/org/tianocore/pcd/entity/MemoryDatabaseManager.java b/Tools/Source/PcdTools/org/tianocore/pcd/entity/MemoryDatabaseManager.java index 2962e748a2..62789fe4c9 100644 --- a/Tools/Source/PcdTools/org/tianocore/pcd/entity/MemoryDatabaseManager.java +++ b/Tools/Source/PcdTools/org/tianocore/pcd/entity/MemoryDatabaseManager.java @@ -220,21 +220,6 @@ public class MemoryDatabaseManager { } } - /** - Get all PCD record for a module according to module's name, module's GUID, - package name, package GUID, arch, version information. - - @param usageId the id of UsageInstance. - - @return all usage instance for this module in memory database. - **/ - public List getUsageInstanceArrayByModuleName(UsageIdentification usageId) { - - String primaryKey = UsageInstance.getPrimaryKey(usageId); - - return getUsageInstanceArrayByKeyString(primaryKey); - } - public void clearDatabase() { memoryDatabase.clear(); } @@ -246,14 +231,15 @@ public class MemoryDatabaseManager { @return List the list contains all usage instances. **/ - public List getUsageInstanceArrayByKeyString(String primaryKey) { + public List getUsageInstanceArrayById(UsageIdentification usageId) { Token[] tokenArray = null; int recordIndex = 0; UsageInstance usageInstance = null; List returnArray = new ArrayList(); + String primaryKey = usageId.toString(); tokenArray = getRecordArray(); - + // // Loop to find all PCD record related to current module // @@ -269,19 +255,34 @@ public class MemoryDatabaseManager { return returnArray; } + public List getPcdTokenListForModule(UsageIdentification usageId) { + List usageList = getUsageInstanceArrayById(usageId); + List tokenList = new ArrayList(); + + if (usageList == null) { + return null; + } + + for (int usageIndex = 0; usageIndex < usageList.size(); usageIndex++) { + tokenList.add(usageList.get(usageIndex).parentToken); + } + + return tokenList; + } + /** Get all modules name who contains PCD information - @return Array for module name + @return Array for usage's identification **/ - public List getAllModuleArray() + public List getAllModuleArray() { int tokenIndex = 0; int usageIndex = 0; int moduleIndex = 0; Token[] tokenArray = null; Object[] usageInstanceArray = null; - List moduleNames = new ArrayList(); + List usageArray = new ArrayList(); UsageInstance usageInstance = null; boolean bFound = false; String primaryKey = null; @@ -296,17 +297,17 @@ public class MemoryDatabaseManager { usageInstance = (UsageInstance)((Map.Entry)usageInstanceArray[usageIndex]).getValue(); primaryKey = usageInstance.getPrimaryKey(); bFound = false; - for (moduleIndex = 0; moduleIndex < moduleNames.size(); moduleIndex++) { - if (moduleNames.get(moduleIndex).equalsIgnoreCase(primaryKey)) { + for (moduleIndex = 0; moduleIndex < usageArray.size(); moduleIndex++) { + if (usageArray.get(moduleIndex).toString().equalsIgnoreCase(primaryKey)) { bFound = true; break; } } if (!bFound) { - moduleNames.add(primaryKey); + usageArray.add(usageInstance.usageId); } } } - return moduleNames; + return usageArray; } }