+++ /dev/null
-/** @file\r
- WorkspaceProfile class. \r
- \r
- WorkspaceProfile provide initializing, instoring, querying and update global data.\r
- It is a bridge to intercommunicate between multiple component, such as AutoGen,\r
- PCD and so on. \r
- \r
-Copyright (c) 2006, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-**/\r
-package org.tianocore.frameworkwizard.platform.ui.global;\r
-\r
-import org.tianocore.ModuleSurfaceAreaDocument;\r
-import org.tianocore.PackageSurfaceAreaDocument;\r
-import org.tianocore.PcdCodedDocument;\r
-import org.tianocore.frameworkwizard.common.GlobalData;\r
-import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
-import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
-import java.util.Iterator;\r
-import java.util.ListIterator;\r
-import java.util.Vector;\r
-\r
-/**\r
- WorkspaceProfile provide initializing, instoring, querying and update global data.\r
- It is a bridge to intercommunicate between multiple component, such as AutoGen,\r
- PCD and so on. \r
- \r
- <p>Note that all global information are initialized incrementally. All data will \r
- parse and record only of necessary during build time. </p>\r
- \r
- @since GenBuild 1.0\r
-**/\r
-public class WorkspaceProfile {\r
- ///\r
- /// Record current WORKSPACE Directory\r
- ///\r
- private static String workspaceDir = "";\r
- \r
- /**\r
- Get the current WORKSPACE Directory. \r
- \r
- @return current workspace directory\r
- **/\r
- public synchronized static String getWorkspacePath() {\r
- return workspaceDir;\r
- }\r
-\r
- public synchronized static PackageIdentification getPackageForModule(ModuleIdentification moduleId) {\r
- //\r
- // If package already defined in module\r
- //\r
- if (moduleId.getPackageId() != null) {\r
- return moduleId.getPackageId();\r
- }\r
- \r
- return null;\r
- }\r
- //\r
- // expanded by FrameworkWizard\r
- //\r
- public synchronized static ModuleSurfaceAreaDocument.ModuleSurfaceArea getModuleXmlObject(ModuleIdentification moduleId) {\r
- return GlobalData.openingModuleList.getModuleSurfaceAreaFromId(moduleId);\r
- }\r
- \r
- public synchronized static PackageSurfaceAreaDocument.PackageSurfaceArea getPackageXmlObject(PackageIdentification packageId) {\r
- return GlobalData.openingPackageList.getPackageSurfaceAreaFromId(packageId);\r
- }\r
- \r
- public static ModuleIdentification getModuleId(String key){\r
- //\r
- // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion, Arch into string array.\r
- //\r
- String[] keyPart = key.split(" ");\r
-\r
- Iterator<ModuleIdentification> iMiList = GlobalData.vModuleList.iterator();\r
- \r
- while (iMiList.hasNext()) {\r
- ModuleIdentification mi = iMiList.next();\r
- if (mi.getGuid().equalsIgnoreCase(keyPart[0])){\r
- if (keyPart[1] != null && keyPart[1].length() > 0 && !keyPart[1].equals("null")){\r
- if(!mi.getVersion().equals(keyPart[1])){\r
- continue;\r
- }\r
- }\r
-\r
- PackageIdentification pi = mi.getPackageId();\r
- if ( !pi.getGuid().equalsIgnoreCase(keyPart[2])){ \r
- continue;\r
- }\r
- if (keyPart[3] != null && keyPart[3].length() > 0 && !keyPart[3].equals("null")){\r
- if(!pi.getVersion().equals(keyPart[3])){\r
- continue;\r
- }\r
- }\r
- return mi;\r
- }\r
- }\r
- \r
- return null;\r
- }\r
- \r
- public static Vector<String> getModuleSupArchs(ModuleIdentification mi) throws Exception {\r
- Vector<String> vArchs = null;\r
- ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = (ModuleSurfaceAreaDocument.ModuleSurfaceArea)getModuleXmlObject(mi);\r
- if (msa.getModuleDefinitions() == null || msa.getModuleDefinitions().getSupportedArchitectures() == null) {\r
- return vArchs;\r
- }\r
- ListIterator li = msa.getModuleDefinitions().getSupportedArchitectures().listIterator();\r
- while (li.hasNext()) {\r
- if (vArchs == null) {\r
- vArchs = new Vector<String>();\r
- }\r
- vArchs.add((String)li.next());\r
- }\r
- \r
- return vArchs;\r
- }\r
- \r
- public static String getModuleBaseName (ModuleIdentification mi) {\r
- ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = getModuleXmlObject(mi);\r
- if (msa.getModuleDefinitions() == null || msa.getModuleDefinitions().getOutputFileBasename() == null) {\r
- return null;\r
- }\r
- return msa.getModuleDefinitions().getOutputFileBasename();\r
- }\r
- \r
- public static boolean pcdInMsa (String cName, String tsGuid, ModuleIdentification mi) {\r
- ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = (ModuleSurfaceAreaDocument.ModuleSurfaceArea)getModuleXmlObject(mi);\r
- if (msa.getPcdCoded() == null || msa.getPcdCoded().getPcdEntryList() == null) {\r
- return false;\r
- }\r
- ListIterator li = msa.getPcdCoded().getPcdEntryList().listIterator();\r
- while (li.hasNext()) {\r
- PcdCodedDocument.PcdCoded.PcdEntry msaPcd = (PcdCodedDocument.PcdCoded.PcdEntry)li.next();\r
- if (msaPcd.getCName().equals(cName) && msaPcd.getTokenSpaceGuidCName().equals(tsGuid)) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
- \r
-}\r
-\r
-\r