From daa4663bdd6c65b7e4423bd7b9f8b2cc72ee9bab Mon Sep 17 00:00:00 2001 From: jlin16 Date: Thu, 17 Aug 2006 03:11:55 +0000 Subject: [PATCH] Fix EDKT191. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1301 6f19259b-4bc3-4df7-8a09-765794883524 --- .../packaging/ui/SpdLibClassDecls.java | 6 +- .../platform/ui/FpdFileContents.java | 6 +- .../platform/ui/FpdFrameworkModules.java | 2 +- .../platform/ui/FpdModuleSA.java | 57 +++++++++--------- .../platform/ui/global/SurfaceAreaQuery.java | 59 +++++++++---------- 5 files changed, 64 insertions(+), 66 deletions(-) diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java index 0ed5768fce..d1363f7cbd 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java @@ -934,9 +934,9 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen ModuleIdentification mi = (ModuleIdentification) ismi.next(); Map m = GlobalData.getNativeMsa(mi); SurfaceAreaQuery.setDoc(m); - String[] classProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED"); - for (int i = 0; i < classProduced.length; ++i) { - if (classProduced[i].equals(libClass)) { + Vector classProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi); + for (int i = 0; i < classProduced.size(); ++i) { + if (classProduced.get(i).equals(libClass)) { libNameGuidMap.put(mi.getName(), mi.getGuid()); } } diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java index 3d3e8f3098..2b1cffe890 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java @@ -379,7 +379,7 @@ public class FpdFileContents { Map m = new HashMap(); m.put("ModuleSurfaceArea", msa); SurfaceAreaQuery.setDoc(m); - PackageIdentification[] depPkgs = SurfaceAreaQuery.getDependencePkg(null); + PackageIdentification[] depPkgs = SurfaceAreaQuery.getDependencePkg(null, vMi.get(i)); PcdDeclarationsDocument.PcdDeclarations.PcdEntry spdPcd = LookupPcdDeclaration(msaPcd, depPkgs); if (spdPcd == null) { // @@ -541,7 +541,7 @@ public class FpdFileContents { Map m = new HashMap(); m.put("ModuleSurfaceArea", msa); SurfaceAreaQuery.setDoc(m); - PackageIdentification[] depPkgs = SurfaceAreaQuery.getDependencePkg(null); + PackageIdentification[] depPkgs = SurfaceAreaQuery.getDependencePkg(null, mi); // // First look through MSA pcd entries. // @@ -896,7 +896,7 @@ public class FpdFileContents { Map m = new HashMap(); m.put("ModuleSurfaceArea", msa); SurfaceAreaQuery.setDoc(m); - PackageIdentification[] depPkgs = SurfaceAreaQuery.getDependencePkg(null); + PackageIdentification[] depPkgs = SurfaceAreaQuery.getDependencePkg(null, mi); // // Implementing InitializePlatformPcdBuildDefinitions // diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java index 440e421288..06d0d0da19 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java @@ -579,6 +579,7 @@ public class FpdFrameworkModules extends IInternalFrame { if (selectedRow < 0) { return; } + docConsole.setSaved(false); TableSorter sorter = (TableSorter) jTableFpdModules.getModel(); selectedRow = sorter.modelIndex(selectedRow); @@ -606,7 +607,6 @@ public class FpdFrameworkModules extends IInternalFrame { } } - docConsole.setSaved(false); ffc.removeModuleSA(selectedRow); } }); diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java index 27533b4137..a34fa5a28a 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java @@ -23,7 +23,6 @@ import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; -import org.apache.xmlbeans.XmlObject; import org.tianocore.frameworkwizard.common.DataValidation; import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType; import org.tianocore.frameworkwizard.platform.ui.global.GlobalData; @@ -38,7 +37,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.ListIterator; -import java.util.Map; import java.util.Set; import java.util.Vector; @@ -226,37 +224,35 @@ public class FpdModuleSA extends JDialog implements ActionListener { ModuleIdentification mi = GlobalData.getModuleId(key); PackageIdentification[] depPkgList = null; try{ - Map m = GlobalData.getNativeMsa(mi); - SurfaceAreaQuery.setDoc(m); // // Get dependency pkg list into which we will search lib instances. // - depPkgList = SurfaceAreaQuery.getDependencePkg(null); + depPkgList = SurfaceAreaQuery.getDependencePkg(null, mi); // // Get the lib class consumed, produced by this module itself. // - String[] classConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED"); + Vector vClassConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi); if (this.classConsumed == null) { this.classConsumed = new HashMap>(); } - for(int i = 0; i < classConsumed.length; ++i){ - ArrayList consumedBy = this.classConsumed.get(classConsumed[i]); + for(int i = 0; i < vClassConsumed.size(); ++i){ + ArrayList consumedBy = this.classConsumed.get(vClassConsumed.get(i)); if (consumedBy == null) { consumedBy = new ArrayList(); } consumedBy.add(key); - this.classConsumed.put(classConsumed[i], consumedBy); + this.classConsumed.put(vClassConsumed.get(i), consumedBy); } - String[] classProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED"); + Vector vClassProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi); if (this.classProduced == null) { this.classProduced = new ArrayList(); } - for(int i = 0; i < classProduced.length; ++i){ - if (!this.classProduced.contains(classProduced[i])){ - this.classProduced.add(classProduced[i]); + for(int i = 0; i < vClassProduced.size(); ++i){ + if (!this.classProduced.contains(vClassProduced.get(i))){ + this.classProduced.add(vClassProduced.get(i)); } } @@ -362,10 +358,12 @@ public class FpdModuleSA extends JDialog implements ActionListener { private String[] getClassProduced(ModuleIdentification mi){ try{ - Map m = GlobalData.getNativeMsa(mi); - SurfaceAreaQuery.setDoc(m); - String[] clsProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED"); - return clsProduced; + Vector clsProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi); + String[] sClassProduced = new String[clsProduced.size()]; + for (int i = 0; i < clsProduced.size(); ++i) { + sClassProduced[i] = clsProduced.get(i); + } + return sClassProduced; }catch (Exception e) { e.printStackTrace(); @@ -376,16 +374,17 @@ public class FpdModuleSA extends JDialog implements ActionListener { private String[] getClassConsumed(ModuleIdentification mi){ - String[] clsConsumed = null; try{ - Map m = GlobalData.getNativeMsa(mi); - SurfaceAreaQuery.setDoc(m); - clsConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED"); - + Vector clsConsumed = SurfaceAreaQuery.getLibraryClasses("ALWAYS_CONSUMED", mi); + String[] sClassConsumed = new String[clsConsumed.size()]; + for (int i = 0; i < clsConsumed.size(); ++i) { + sClassConsumed[i] = clsConsumed.get(i); + } + return sClassConsumed; }catch (Exception e) { e.printStackTrace(); } - return clsConsumed; + return new String[0]; } private void showClassToResolved(){ @@ -397,12 +396,12 @@ public class FpdModuleSA extends JDialog implements ActionListener { while(li.hasNext()){ String[] s = {li.next()}; - if (classConsumed.get(s[0]) == null) { - continue; - } - if (classConsumed.get(s[0]).size() == 0) { - continue; - } +// if (classConsumed.get(s[0]) == null) { +// continue; +// } +// if (classConsumed.get(s[0]).size() == 0) { +// continue; +// } if (!classProduced.contains(s[0])){ libClassTableModel.addRow(s); } diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/SurfaceAreaQuery.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/SurfaceAreaQuery.java index 11a278326a..7e709706f4 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/SurfaceAreaQuery.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/SurfaceAreaQuery.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.Stack; +import java.util.Vector; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -37,6 +38,7 @@ import org.tianocore.LibrariesDocument; import org.tianocore.LibraryClassDeclarationsDocument; import org.tianocore.LibraryClassDocument; import org.tianocore.ModuleSADocument; +import org.tianocore.ModuleSurfaceAreaDocument; import org.tianocore.ModuleTypeDef; import org.tianocore.MsaFilesDocument; import org.tianocore.MsaHeaderDocument; @@ -341,22 +343,22 @@ public class SurfaceAreaQuery { * @returns package name list if elements are found at the known xpath * @returns null if nothing is there */ - public static PackageIdentification[] getDependencePkg(String arch) { - String[] xPath; + + public static PackageIdentification[] getDependencePkg(String arch, ModuleIdentification mi) throws Exception{ + String packageGuid = null; String packageVersion = null; - if (arch == null || arch.equals("")) { - xPath = new String[] { "/PackageDependencies/Package" }; - } else { - xPath = new String[] { "/PackageDependencies/Package[not(@SupArchList) or @SupArchList='" - + arch + "']" }; - } + ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = (ModuleSurfaceAreaDocument.ModuleSurfaceArea) GlobalData.getModuleXmlObject(mi); + if (msa.getPackageDependencies() == null) { + return new PackageIdentification[0]; + } + int size = msa.getPackageDependencies().getPackageList().size(); + XmlObject[] returns = new XmlObject[size]; + for (int i = 0; i < size; ++i) { + returns[i] = msa.getPackageDependencies().getPackageList().get(i); + } - XmlObject[] returns = get("ModuleSurfaceArea", xPath); - if (returns == null) { - return new PackageIdentification[0]; - } PackageIdentification[] packageIdList = new PackageIdentification[returns.length]; for (int i = 0; i < returns.length; i++) { PackageDependenciesDocument.PackageDependencies.Package item = (PackageDependenciesDocument.PackageDependencies.Package) returns[i]; @@ -401,25 +403,22 @@ public class SurfaceAreaQuery { * xpath * @returns null if nothing is there */ - public static String[] getLibraryClasses(String usage) { - String[] xPath; - - if (usage == null || usage.equals("")) { - xPath = new String[] { "/LibraryClass" }; - } else { - xPath = new String[] { "/LibraryClass[@Usage='" + usage + "']" }; - } - - XmlObject[] returns = get("LibraryClassDefinitions", xPath); - if (returns == null || returns.length == 0) { - return new String[0]; - } - - LibraryClassDocument.LibraryClass[] libraryClassList = (LibraryClassDocument.LibraryClass[]) returns; - String[] libraryClassName = new String[libraryClassList.length]; - for (int i = 0; i < libraryClassList.length; i++) { - libraryClassName[i] = libraryClassList[i].getKeyword(); + public static Vector getLibraryClasses(String usage, ModuleIdentification mi) throws Exception{ + ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = (ModuleSurfaceAreaDocument.ModuleSurfaceArea)GlobalData.getModuleXmlObject(mi); + Vector libraryClassName = new Vector(); + if (msa.getLibraryClassDefinitions() == null) { + return libraryClassName; + } + + int size = msa.getLibraryClassDefinitions().getLibraryClassList().size(); + + for (int i = 0; i < size; i++) { + LibraryClassDocument.LibraryClass libClass = msa.getLibraryClassDefinitions().getLibraryClassList().get(i); + if (usage.equals(libClass.getUsage().toString())) { + libraryClassName.add(libClass.getKeyword()); + } } + return libraryClassName; } -- 2.39.2