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 bcc1938928..63b9d6713d 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 @@ -776,7 +776,7 @@ public class FpdFileContents { // // ToDo Error // - throw new PcdDeclNotFound(mi.getName() + " " + msaPcd.getCName()); + throw new PcdDeclNotFound("No Declaration for PCD Entry " + msaPcd.getCName() + " in Module " + mi.getName()); } // // AddItem to ModuleSA PcdBuildDefinitions @@ -788,7 +788,7 @@ public class FpdFileContents { } catch (Exception e){ - e.printStackTrace(); + throw e; } @@ -879,10 +879,10 @@ public class FpdFileContents { while(li.hasNext()) { String value = li.next().toString(); String[] valuePart= value.split(" "); - if (!valuePart[4].equals("DYNAMIC")) { + if (!valuePart[5].equals("DYNAMIC")) { //ToDo error for same pcd, other type than dynamic pcdConsumer.remove(listValue); - throw new PcdItemTypeConflictException(value); + throw new PcdItemTypeConflictException(cName, value); } } } @@ -891,10 +891,10 @@ public class FpdFileContents { while(li.hasNext()) { String value = li.next().toString(); String[] valuePart= value.split(" "); - if (valuePart[4].equals("DYNAMIC")) { + if (valuePart[5].equals("DYNAMIC")) { //ToDo error for same pcd, other type than non-dynamic pcdConsumer.remove(listValue); - throw new PcdItemTypeConflictException(value); + throw new PcdItemTypeConflictException(cName, value); } } } @@ -1030,7 +1030,7 @@ public class FpdFileContents { private ArrayList LookupPlatformPcdData(String pcdKey) { - return dynPcdMap.get("pcdKey"); + return dynPcdMap.get(pcdKey); } public int getDynamicPcdBuildDataCount() { @@ -2464,8 +2464,9 @@ class PcdItemTypeConflictException extends Exception { private static final long serialVersionUID = 1L; private String details = null; - PcdItemTypeConflictException(String info){ - details = "ItemTypeConflict: " + info; + PcdItemTypeConflictException(String pcdName, String info){ + ModuleIdentification mi = GlobalData.getModuleId(info); + details = pcdName + " ItemType Conflicts with " + mi.getName() + " in Pkg " + mi.getPackage().getName(); } public String getMessage() { 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 25a39c0a62..954d992e1d 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 @@ -218,6 +218,7 @@ public class FpdFrameworkModules extends IInternalFrame { return; } //ToDo put Arch instead of null + boolean errorOccurred = false; for (int i = 0; i < vArchs.size(); ++i) { String arch = vArchs.get(i); al.add(arch); @@ -237,12 +238,19 @@ public class FpdFrameworkModules extends IInternalFrame { ffc.addFrameworkModulesPcdBuildDefs(mi, arch, null); } catch (Exception exception) { - JOptionPane.showMessageDialog(frame, "PCD Insertion Fail. " + exception.getMessage()); + JOptionPane.showMessageDialog(frame, "Adding " + row[0] + " with SupArch " + arch + ": "+ exception.getMessage()); + errorOccurred = true; } } - - JOptionPane.showMessageDialog(frame, "This Module with Arch "+ archsAdded +" Added Successfully."); + String s = "This Module with Arch "+ archsAdded; + if (errorOccurred) { + s += " Added with Error. Platform may NOT Be Built."; + } + else { + s += " Added Successfully."; + } + JOptionPane.showMessageDialog(frame, s); jTableFpdModules.changeSelection(modelFpdModules.getRowCount()-1, 0, false, false); } }); @@ -361,7 +369,7 @@ public class FpdFrameworkModules extends IInternalFrame { String pg = sa[2]; String pv = sa[3]; String arch = sa[4]; - ModuleIdentification mi = getModuleId(sa[0] + " " + sa[1] + " " + sa[2] + " " + sa[3] + " " + sa[4]); + ModuleIdentification mi = GlobalData.getModuleId(sa[0] + " " + sa[1] + " " + sa[2] + " " + sa[3] + " " + sa[4]); mv = mi.getVersion(); pv = mi.getPackage().getVersion(); modelFpdModules.removeRow(selectedRow); @@ -434,7 +442,7 @@ public class FpdFrameworkModules extends IInternalFrame { String[][] saa = new String[ffc.getFrameworkModulesCount()][5]; ffc.getFrameworkModulesInfo(saa); for (int i = 0; i < saa.length; ++i) { - ModuleIdentification mi = getModuleId(saa[i][0]+ " "+saa[i][1]+" "+saa[i][2]+" "+saa[i][3]); + ModuleIdentification mi = GlobalData.getModuleId(saa[i][0]+ " "+saa[i][1]+" "+saa[i][2]+" "+saa[i][3]); String[] row = {"", "", "", "", "", ""}; if (mi != null) { row[0] = mi.getName(); @@ -507,43 +515,6 @@ public class FpdFrameworkModules extends IInternalFrame { this.setVisible(true); } - - private ModuleIdentification getModuleId(String key){ - // - // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion, Arch into string array. - // - String[] keyPart = key.split(" "); - Set spi = GlobalData.getPackageList(); - Iterator ispi = spi.iterator(); - - while(ispi.hasNext()) { - PackageIdentification pi = (PackageIdentification)ispi.next(); - if ( !pi.getGuid().equalsIgnoreCase(keyPart[2])){ - - continue; - } - if (keyPart[3] != null && keyPart[3].length() > 0 && !keyPart[3].equals("null")){ - if(!pi.getVersion().equals(keyPart[3])){ - continue; - } - } - Set smi = GlobalData.getModules(pi); - Iterator ismi = smi.iterator(); - while(ismi.hasNext()) { - ModuleIdentification mi = (ModuleIdentification)ismi.next(); - if (mi.getGuid().equalsIgnoreCase(keyPart[0])){ - if (keyPart[1] != null && keyPart[1].length() > 0 && !keyPart[1].equals("null")){ - if(!mi.getVersion().equals(keyPart[1])){ - continue; - } - } - - return mi; - } - } - } - return null; - } } // @jve:decl-index=0:visual-constraint="10,10" 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 0da5a935c9..36b22be6a4 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 @@ -175,7 +175,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { String[][] saa = new String[instanceCount][5]; ffc.getLibraryInstances(key, saa); for (int i = 0; i < saa.length; ++i) { - ModuleIdentification mi = getModuleId(saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]); + ModuleIdentification mi = GlobalData.getModuleId(saa[i][1] + " " + saa[i][2] + " " + saa[i][3] + " " + saa[i][4]); if (mi != null) { saa[i][0] = mi.getName(); saa[i][2] = mi.getVersion(); @@ -218,7 +218,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { } private void resolveLibraryInstances(String key) { - ModuleIdentification mi = getModuleId(key); + ModuleIdentification mi = GlobalData.getModuleId(key); PackageIdentification[] depPkgList = null; try{ Map m = GlobalData.getNativeMsa(mi); @@ -326,7 +326,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { } private void removeInstance(String key) { - ModuleIdentification mi = getModuleId(key); + ModuleIdentification mi = GlobalData.getModuleId(key); // // remove pcd information of instance from current ModuleSA // @@ -361,42 +361,6 @@ public class FpdModuleSA extends JDialog implements ActionListener { } - private ModuleIdentification getModuleId(String key){ - // - // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion, Arch into string array. - // - String[] keyPart = key.split(" "); - Set spi = GlobalData.getPackageList(); - Iterator ispi = spi.iterator(); - - while(ispi.hasNext()) { - PackageIdentification pi = (PackageIdentification)ispi.next(); - if ( !pi.getGuid().equals(keyPart[2])){ - - continue; - } - if (keyPart[3] != null && keyPart[3].length() > 0 && !keyPart[3].equals("null")){ - if(!pi.getVersion().equals(keyPart[3])){ - continue; - } - } - Set smi = GlobalData.getModules(pi); - Iterator ismi = smi.iterator(); - while(ismi.hasNext()) { - ModuleIdentification mi = (ModuleIdentification)ismi.next(); - if (mi.getGuid().equals(keyPart[0])){ - if (keyPart[1] != null && keyPart[1].length() > 0 && !keyPart[1].equals("null")){ - if(!mi.getVersion().equals(keyPart[1])){ - continue; - } - } - - return mi; - } - } - } - return null; - } private String[] getClassProduced(ModuleIdentification mi){ @@ -668,11 +632,11 @@ public class FpdModuleSA extends JDialog implements ActionListener { ffc.getLibraryInstances(moduleKey, saa); try{ - if (ffc.getPcdBuildDataInfo(getModuleId(moduleKey), cName, sa)) { + if (ffc.getPcdBuildDataInfo(GlobalData.getModuleId(moduleKey), cName, sa)) { return; } for (int j = 0; j < saa.length; ++j) { - if (ffc.getPcdBuildDataInfo(getModuleId(saa[j][1] + " " + saa[j][2] + " " + saa[j][3] + " " + saa[j][4]), + if (ffc.getPcdBuildDataInfo(GlobalData.getModuleId(saa[j][1] + " " + saa[j][2] + " " + saa[j][3] + " " + saa[j][4]), cName, sa)) { return; } @@ -880,8 +844,8 @@ public class FpdModuleSA extends JDialog implements ActionListener { while(li.hasNext()) { String instance = li.next(); String[] s = {"", "", "", "", ""}; - if (getModuleId(instance) != null) { - s[0] = getModuleId(instance).getName(); + if (GlobalData.getModuleId(instance) != null) { + s[0] = GlobalData.getModuleId(instance).getName(); } String[] instancePart = instance.split(" "); @@ -1020,7 +984,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { libInstanceTableModel.getValueAt(row, 2) + " " + libInstanceTableModel.getValueAt(row, 3) + " " + libInstanceTableModel.getValueAt(row, 4); - ModuleIdentification libMi = getModuleId(instanceValue); + ModuleIdentification libMi = GlobalData.getModuleId(instanceValue); ffc.genLibraryInstance(libMi, moduleKey); // // Add pcd information of selected instance to current moduleSA @@ -1029,7 +993,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { ffc.addFrameworkModulesPcdBuildDefs(libMi, null, ffc.getModuleSA(moduleKey)); } catch (Exception exception) { - JOptionPane.showMessageDialog(frame, "PCD Insertion Fail. " + exception.getMessage()); + JOptionPane.showMessageDialog(frame, "Adding Instance" + s[0] + ": "+ exception.getMessage()); } resolveLibraryInstances(instanceValue); } diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/GlobalData.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/GlobalData.java index 4a325c21ff..afa4c31e0b 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/GlobalData.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/GlobalData.java @@ -428,6 +428,42 @@ public class GlobalData { return result; } + public static ModuleIdentification getModuleId(String key){ + // + // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion, Arch into string array. + // + String[] keyPart = key.split(" "); + Set spi = GlobalData.getPackageList(); + Iterator ispi = spi.iterator(); + + while(ispi.hasNext()) { + PackageIdentification pi = (PackageIdentification)ispi.next(); + if ( !pi.getGuid().equalsIgnoreCase(keyPart[2])){ + + continue; + } + if (keyPart[3] != null && keyPart[3].length() > 0 && !keyPart[3].equals("null")){ + if(!pi.getVersion().equals(keyPart[3])){ + continue; + } + } + Set smi = GlobalData.getModules(pi); + Iterator ismi = smi.iterator(); + while(ismi.hasNext()) { + ModuleIdentification mi = (ModuleIdentification)ismi.next(); + if (mi.getGuid().equalsIgnoreCase(keyPart[0])){ + if (keyPart[1] != null && keyPart[1].length() > 0 && !keyPart[1].equals("null")){ + if(!mi.getVersion().equals(keyPart[1])){ + continue; + } + } + + return mi; + } + } + } + return null; + } public static Vector getModuleSupArchs(ModuleIdentification mi) throws Exception{ Vector vArchs = null;