From: jlin16 Date: Thu, 24 Aug 2006 23:37:27 +0000 (+0000) Subject: Use unified global data to get module informations. X-Git-Tag: edk2-stable201903~24491 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=3658f95e1a73626ff1cdb9cde3676ebc1edc3523 Use unified global data to get module informations. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1383 6f19259b-4bc3-4df7-8a09-765794883524 --- 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 d3ba1c092d..6972bfd742 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 @@ -18,7 +18,6 @@ import java.awt.event.ComponentEvent; import java.io.File; import java.util.HashMap; import java.util.Iterator; -import java.util.Map; import java.util.Set; import java.util.Vector; @@ -42,20 +41,17 @@ import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; - -import org.apache.xmlbeans.XmlObject; import org.tianocore.PackageSurfaceAreaDocument; import org.tianocore.frameworkwizard.common.DataValidation; +import org.tianocore.frameworkwizard.common.GlobalData; import org.tianocore.frameworkwizard.common.Tools; import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType; import org.tianocore.frameworkwizard.common.ui.IInternalFrame; import org.tianocore.frameworkwizard.common.ui.StarLabel; import org.tianocore.frameworkwizard.common.ui.iCheckBoxList.ICheckBoxList; import org.tianocore.frameworkwizard.platform.ui.ListEditor; -import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile; import org.tianocore.frameworkwizard.platform.ui.global.SurfaceAreaQuery; -import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.PackageIdentification; +import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification; /** @@ -919,20 +915,10 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen private void getLibInstances(String libClass){ libNameGuidMap.clear(); try { - WorkspaceProfile.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db", System.getenv("WORKSPACE")); - - Set spi = WorkspaceProfile.getPackageList(); - Iterator ispi = spi.iterator(); - - while (ispi.hasNext()) { - PackageIdentification pi = (PackageIdentification) ispi.next(); - - Set smi = WorkspaceProfile.getModules(pi); - Iterator ismi = smi.iterator(); + Iterator ismi = GlobalData.vModuleList.iterator(); while (ismi.hasNext()) { ModuleIdentification mi = (ModuleIdentification) ismi.next(); - Map m = WorkspaceProfile.getNativeMsa(mi); - SurfaceAreaQuery.setDoc(m); + Vector classProduced = SurfaceAreaQuery.getLibraryClasses("ALWAYS_PRODUCED", mi); for (int i = 0; i < classProduced.size(); ++i) { if (classProduced.get(i).equals(libClass)) { @@ -940,7 +926,7 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen } } } - } + } catch(Exception e){ JOptionPane.showMessageDialog(frame, "Search Instances Failed."); 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 096fec5810..73ee69e9a8 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 @@ -60,8 +60,8 @@ import org.tianocore.UserDefinedAntTasksDocument; import org.tianocore.UserExtensionsDocument; import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile; import org.tianocore.frameworkwizard.platform.ui.global.SurfaceAreaQuery; -import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.PackageIdentification; +import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification; +import org.tianocore.frameworkwizard.packaging.PackageIdentification; /** This class processes fpd file contents such as add remove xml elements. @@ -702,14 +702,14 @@ public class FpdFileContents { String mn = libMi.getName(); String mg = libMi.getGuid(); String mv = libMi.getVersion(); - String pn = libMi.getPackage().getName(); - String pg = libMi.getPackage().getGuid(); - String pv = libMi.getPackage().getVersion(); + String pn = libMi.getPackageId().getName(); + String pg = libMi.getPackageId().getGuid(); + String pv = libMi.getPackageId().getVersion(); LibrariesDocument.Libraries.Instance instance = libs.addNewInstance(); XmlCursor cursor = instance.newCursor(); try{ String comment = "Pkg: " + pn + " Mod: " + mn - + " Path: " + WorkspaceProfile.getMsaFile(libMi).getPath().substring(System.getenv("WORKSPACE").length() + 1); + + " Path: " + libMi.getPath().substring(System.getenv("WORKSPACE").length() + 1); cursor.insertComment(comment); } catch (Exception e){ @@ -947,12 +947,10 @@ public class FpdFileContents { private PcdDeclarationsDocument.PcdDeclarations.PcdEntry LookupPcdDeclaration (PcdCodedDocument.PcdCoded.PcdEntry msaPcd, PackageIdentification[] depPkgs) { - Map m = new HashMap(); PcdDeclarationsDocument.PcdDeclarations.PcdEntry spdPcd = null; for (int i = 0; i < depPkgs.length; ++i) { - m.put("PackageSurfaceArea", WorkspaceProfile.getPackageXmlObject(depPkgs[i])); - SurfaceAreaQuery.setDoc(m); - XmlObject[] xo = SurfaceAreaQuery.getSpdPcdDeclarations(); + + XmlObject[] xo = SurfaceAreaQuery.getSpdPcdDeclarations(depPkgs[i]); if (xo == null) { continue; } @@ -980,8 +978,8 @@ public class FpdFileContents { ModuleSADocument.ModuleSA msa = getfpdFrameworkModules().addNewModuleSA(); XmlCursor cursor = msa.newCursor(); try{ - String comment = "Mod: " + mi.getName() + " Type: " + mi.getModuleType() + " Path: " - + WorkspaceProfile.getMsaFile(mi).getPath().substring(System.getenv("WORKSPACE").length() + 1); + String comment = "Mod: " + mi.getName() + " Type: " + SurfaceAreaQuery.getModuleType(mi) + " Path: " + + mi.getPath().substring(System.getenv("WORKSPACE").length() + 1); cursor.insertComment(comment); } catch(Exception e){ @@ -2693,7 +2691,7 @@ class PcdItemTypeConflictException extends Exception { PcdItemTypeConflictException(String pcdName, String info){ ModuleIdentification mi = WorkspaceProfile.getModuleId(info); - details = pcdName + " ItemType Conflicts with " + mi.getName() + " in Pkg " + mi.getPackage().getName(); + details = pcdName + " ItemType Conflicts with " + mi.getName() + " in Pkg " + mi.getPackageId().getName(); } public String getMessage() { diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java index 690291bd50..a326f5e2ca 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java @@ -17,6 +17,7 @@ import javax.swing.JPanel; import javax.swing.AbstractAction; import javax.swing.DefaultCellEditor; +import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; @@ -36,11 +37,14 @@ import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.io.BufferedReader; import java.io.File; +import java.io.FileReader; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; +import java.util.Vector; import javax.swing.JCheckBox; import javax.swing.JTextField; @@ -59,6 +63,7 @@ import javax.swing.table.TableColumn; import javax.swing.table.TableModel; import javax.swing.JComboBox; import java.awt.Dimension; +import javax.swing.JSplitPane; public class FpdFlash extends IInternalFrame { @@ -124,6 +129,284 @@ public class FpdFlash extends IInternalFrame { private JScrollPane jScrollPane = null; private JTable jTableFvImageOpts = null; private JButton jButtonUpdateFvImage = null; + private JButton jButtonTest = null; + private JPanel jPanelFdfN = null; + private JPanel jPanelFdfS = null; + private JSplitPane jSplitPaneFdfC = null; + private JPanel jPanelFdfCTop = null; + private JPanel jPanelFdfCBottom = null; + private JPanel jPanelFdfCTopN = null; + private JPanel jPanelFdfCTopS = null; + private JPanel jPanelFdfCTopC = null; + private JPanel jPanelFdfCBottomN = null; + private JPanel jPanelFdfCBottomC = null; + private JLabel jLabelFvInFdf = null; + private JLabel jLabelFvAdditional = null; + private JScrollPane jScrollPaneFvInFdf = null; + private JTable jTableFvInFdf = null; + private NonEditableTableModel fvInFdfTableModel = null; // @jve:decl-index=0:visual-constraint="" + private JButton jButtonFvInFdfOptions = null; + private JScrollPane jScrollPaneFvAdditional = null; + private JTable jTableFvAdditional = null; + private DefaultTableModel fvAddtionalTableModel = null; // @jve:decl-index=0:visual-constraint="" + private JButton jButtonAddFv = null; + private JButton jButtonDelFv = null; + private JButton jButtonAddFvOptions = null; + + private NonEditableTableModel nonEditableTableModel = null; // @jve:decl-index=0:visual-constraint="" + + private JPanel jPanelModOrder = null; + private JPanel jPanelModOrderN = null; + private JPanel jPanelModOrderS = null; + private JPanel jPanelModOrderC = null; + private JScrollPane jScrollPaneModInFv = null; + private JTable jTableModInFv = null; + private JPanel jPanelController = null; + private JScrollPane jScrollPaneFpdModules = null; + private JTable jTableFpdModules = null; + private JButton jButtonUp = null; + private JButton jButtonInsert = null; + private JButton jButtonRemove = null; + private JButton jButtonDown = null; + private JButton jButtonOk = null; + private JButton jButtonCancel = null; + + /** + * This method initializes jPanelModOrder + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelModOrder() { +// if (jPanelModOrder == null) { + jPanelModOrder = new JPanel(); + jPanelModOrder.setLayout(new BorderLayout()); + jPanelModOrder.add(getJPanelModOrderN(), java.awt.BorderLayout.NORTH); + jPanelModOrder.add(getJPanelModOrderS(), java.awt.BorderLayout.SOUTH); + jPanelModOrder.add(getJPanelModOrderC(), java.awt.BorderLayout.CENTER); + jPanelModOrder.addComponentListener(new java.awt.event.ComponentAdapter() { + public void componentShown(java.awt.event.ComponentEvent e) { + System.out.println("componentShown()" + jTabbedPane.getTitleAt(jTabbedPane.getSelectedIndex())); // TODO Auto-generated Event stub componentShown() + } + }); +// } + return jPanelModOrder; + } + + /** + * This method initializes jPanelModOrderN + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelModOrderN() { +// if (jPanelModOrderN == null) { + jPanelModOrderN = new JPanel(); +// } + return jPanelModOrderN; + } + + /** + * This method initializes jPanelModOrderS + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelModOrderS() { +// if (jPanelModOrderS == null) { + FlowLayout flowLayout6 = new FlowLayout(); + flowLayout6.setAlignment(java.awt.FlowLayout.RIGHT); + jPanelModOrderS = new JPanel(); + jPanelModOrderS.setLayout(flowLayout6); + jPanelModOrderS.add(getJButtonOk(), null); + jPanelModOrderS.add(getJButtonCancel(), null); +// } + return jPanelModOrderS; + } + + /** + * This method initializes jPanelModOrderC + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelModOrderC() { +// if (jPanelModOrderC == null) { + jPanelModOrderC = new JPanel(); + jPanelModOrderC.add(getJScrollPaneModInFv(), null); + jPanelModOrderC.add(getJPanelController(), null); + jPanelModOrderC.add(getJScrollPaneFpdModules(), null); +// } + return jPanelModOrderC; + } + + /** + * This method initializes jScrollPaneModInFv + * + * @return javax.swing.JScrollPane + */ + private JScrollPane getJScrollPaneModInFv() { +// if (jScrollPaneModInFv == null) { + jScrollPaneModInFv = new JScrollPane(); + jScrollPaneModInFv.setPreferredSize(new java.awt.Dimension(150,500)); + jScrollPaneModInFv.setViewportView(getJTableModInFv()); +// } + return jScrollPaneModInFv; + } + + /** + * This method initializes jTableModInFv + * + * @return javax.swing.JTable + */ + private JTable getJTableModInFv() { +// if (jTableModInFv == null) { + NonEditableTableModel modInFvTableModel = new NonEditableTableModel(); + modInFvTableModel.addColumn("Module Orders in FV"); + jTableModInFv = new JTable(modInFvTableModel); + jTableModInFv.setRowHeight(20); +// } + return jTableModInFv; + } + + /** + * This method initializes jPanelController + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelController() { +// if (jPanelController == null) { + FlowLayout flowLayout5 = new FlowLayout(); + flowLayout5.setVgap(50); + flowLayout5.setHgap(50); + jPanelController = new JPanel(); + jPanelController.setLayout(flowLayout5); + jPanelController.setPreferredSize(new java.awt.Dimension(150,500)); + jPanelController.add(getJButtonUp(), null); + jPanelController.add(getJButtonInsert(), null); + jPanelController.add(getJButtonRemove(), null); + jPanelController.add(getJButtonDown(), null); +// } + return jPanelController; + } + + /** + * This method initializes jScrollPaneFpdModules + * + * @return javax.swing.JScrollPane + */ + private JScrollPane getJScrollPaneFpdModules() { +// if (jScrollPaneFpdModules == null) { + jScrollPaneFpdModules = new JScrollPane(); + jScrollPaneFpdModules.setPreferredSize(new java.awt.Dimension(150,500)); + jScrollPaneFpdModules.setViewportView(getJTableFpdModules()); +// } + return jScrollPaneFpdModules; + } + + /** + * This method initializes jTableFpdModules + * + * @return javax.swing.JTable + */ + private JTable getJTableFpdModules() { +// if (jTableFpdModules == null) { + NonEditableTableModel fpdModTableModel = new NonEditableTableModel(); + fpdModTableModel.addColumn("Modules in Platform"); + jTableFpdModules = new JTable(fpdModTableModel); + jTableFpdModules.setRowHeight(20); +// } + return jTableFpdModules; + } + + /** + * This method initializes jButtonUp + * + * @return javax.swing.JButton + */ + private JButton getJButtonUp() { +// if (jButtonUp == null) { + jButtonUp = new JButton(); + jButtonUp.setPreferredSize(new java.awt.Dimension(60,20)); + jButtonUp.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 14)); + jButtonUp.setText("^"); +// } + return jButtonUp; + } + + /** + * This method initializes jButtonInsert + * + * @return javax.swing.JButton + */ + private JButton getJButtonInsert() { +// if (jButtonInsert == null) { + jButtonInsert = new JButton(); + jButtonInsert.setText("<<"); + jButtonInsert.setPreferredSize(new java.awt.Dimension(60,20)); +// } + return jButtonInsert; + } + + /** + * This method initializes jButtonRemove + * + * @return javax.swing.JButton + */ + private JButton getJButtonRemove() { +// if (jButtonRemove == null) { + jButtonRemove = new JButton(); + jButtonRemove.setPreferredSize(new java.awt.Dimension(60,20)); + jButtonRemove.setText(">>"); +// } + return jButtonRemove; + } + + /** + * This method initializes jButtonDown + * + * @return javax.swing.JButton + */ + private JButton getJButtonDown() { +// if (jButtonDown == null) { + jButtonDown = new JButton(); + jButtonDown.setPreferredSize(new java.awt.Dimension(60,20)); + jButtonDown.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10)); + jButtonDown.setText("v"); +// } + return jButtonDown; + } + + /** + * This method initializes jButtonOk + * + * @return javax.swing.JButton + */ + private JButton getJButtonOk() { +// if (jButtonOk == null) { + jButtonOk = new JButton(); + jButtonOk.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonOk.setText("Ok"); +// } + return jButtonOk; + } + + /** + * This method initializes jButtonCancel + * + * @return javax.swing.JButton + */ + private JButton getJButtonCancel() { +// if (jButtonCancel == null) { + jButtonCancel = new JButton(); + jButtonCancel.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonCancel.setText("Cancel"); + jButtonCancel.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + getJTabbedPane().setSelectedIndex(0); + } + }); +// } + return jButtonCancel; + } + + public FpdFlash() { super(); // TODO Auto-generated constructor stub @@ -205,8 +488,8 @@ public class FpdFlash extends IInternalFrame { private JTabbedPane getJTabbedPane() { if (jTabbedPane == null) { jTabbedPane = new JTabbedPane(); - jTabbedPane.addTab("FV Images", null, getJPanelFvImages(), null); - jTabbedPane.addTab("Flash Definition File", null, getJPanelFdf(), null); + jTabbedPane.addTab("General", null, getJPanelFdf(), null); + jTabbedPane.addTab("FV Parameters", null, getJPanelFvImages(), null); } return jTabbedPane; @@ -246,7 +529,7 @@ public class FpdFlash extends IInternalFrame { jLabelFvPropName.setEnabled(false); jLabelFvPropName.setPreferredSize(new java.awt.Dimension(38,20)); FlowLayout flowLayout2 = new FlowLayout(); - flowLayout2.setAlignment(java.awt.FlowLayout.CENTER); + flowLayout2.setAlignment(java.awt.FlowLayout.LEFT); flowLayout2.setHgap(15); jPanelFvImageN = new JPanel(); jPanelFvImageN.setPreferredSize(new java.awt.Dimension(576,100)); @@ -289,7 +572,7 @@ public class FpdFlash extends IInternalFrame { private JCheckBox getJCheckBoxFvProperty() { if (jCheckBoxFvProperty == null) { jCheckBoxFvProperty = new JCheckBox(); - jCheckBoxFvProperty.setText("FV Properties"); + jCheckBoxFvProperty.setText("Global FV Variables"); jCheckBoxFvProperty.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent arg0) { @@ -952,25 +1235,24 @@ public class FpdFlash extends IInternalFrame { */ private JPanel getJPanelFdf() { if (jPanelFdf == null) { - FlowLayout flowLayout1 = new FlowLayout(); - flowLayout1.setAlignment(FlowLayout.LEFT); jPanelFdf = new JPanel(); - jPanelFdf.setLayout(flowLayout1); - jPanelFdf.add(getJCheckBoxFdf(), null); - jPanelFdf.add(getJTextFieldFdf(), null); - jPanelFdf.add(getJButtonFdfBrowse(), null); - jPanelFdf.addComponentListener(new ComponentAdapter(){ - public void componentShown(ComponentEvent e) { - if (ffc.getFlashDefinitionFile() != null) { - jTextFieldFdf.setText(ffc.getFlashDefinitionFile()); - } - } - public void componentHidden(ComponentEvent e) { - if (jCheckBoxFdf.isSelected()) { - ffc.genFlashDefinitionFile(jTextFieldFdf.getText()); - } - } - }); + jPanelFdf.setLayout(new BorderLayout()); + + jPanelFdf.add(getJPanelFdfN(), java.awt.BorderLayout.NORTH); + jPanelFdf.add(getJPanelFdfS(), java.awt.BorderLayout.SOUTH); + jPanelFdf.add(getJSplitPaneFdfC(), java.awt.BorderLayout.CENTER); +// jPanelFdf.addComponentListener(new ComponentAdapter(){ +// public void componentShown(ComponentEvent e) { +// if (ffc.getFlashDefinitionFile() != null) { +// jTextFieldFdf.setText(ffc.getFlashDefinitionFile()); +// } +// } +// public void componentHidden(ComponentEvent e) { +// if (jCheckBoxFdf.isSelected()) { +// ffc.genFlashDefinitionFile(jTextFieldFdf.getText()); +// } +// } +// }); } return jPanelFdf; } @@ -1055,6 +1337,16 @@ public class FpdFlash extends IInternalFrame { return; } jTextFieldFdf.setText(filePath.substring(wsDir.length() + 1).replace('\\', '/')); + ffc.genFlashDefinitionFile(jTextFieldFdf.getText()); + docConsole.setSaved(false); + Vector vFvInfo = new Vector(); + getFvInfoFromFdf(filePath, vFvInfo); + getFvInFdfTableModel().setRowCount(0); + for (int j = 0; j < vFvInfo.size(); ++j) { + FvInfoFromFdf fvInfo = vFvInfo.get(j); + String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()}; + getFvInFdfTableModel().addRow(row); + } } } @@ -1231,6 +1523,352 @@ public class FpdFlash extends IInternalFrame { return jButtonUpdateFvImage; } + /** + * This method initializes jButtonTest + * + * @return javax.swing.JButton + */ +// private JButton getJButtonTest() { +// if (jButtonTest == null) { +// jButtonTest = new JButton(); +// jButtonTest.addActionListener(new java.awt.event.ActionListener() { +// public void actionPerformed(java.awt.event.ActionEvent e) { +// docConsole.setSaved(false); +// String[][] includeModules = {{"1", "a"}, {"2", "b"}}; +// ffc.genBuildOptionsUserExtensions("FV_RECOVERY", "FvRecovery.inf", null, includeModules); +// int i = ffc.getUserExtsIncModCount("FV_RECOVERY"); +// String[][] saa = new String[i][2]; +// ffc.getUserExtsIncMods("FV_RECOVERY", saa); +// jTextFieldFdf.setText(saa[0][0] + saa[0][1] + saa[1][0] + saa[1][1]); +// +// } +// }); +// } +// return jButtonTest; +// } + + /** + * This method initializes jPanelFdfN + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfN() { + if (jPanelFdfN == null) { + jPanelFdfN = new JPanel(); + jPanelFdfN.add(getJCheckBoxFdf(), null); + jPanelFdfN.add(getJTextFieldFdf(), null); + jPanelFdfN.add(getJButtonFdfBrowse(), null); + } + return jPanelFdfN; + } + + /** + * This method initializes jPanelFdfS + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfS() { + if (jPanelFdfS == null) { + FlowLayout flowLayout4 = new FlowLayout(); + flowLayout4.setAlignment(java.awt.FlowLayout.RIGHT); + jPanelFdfS = new JPanel(); + jPanelFdfS.setLayout(flowLayout4); + jPanelFdfS.add(getJButtonAddFv(), null); + jPanelFdfS.add(getJButtonDelFv(), null); + jPanelFdfS.add(getJButtonAddFvOptions(), null); + } + return jPanelFdfS; + } + + /** + * This method initializes jSplitPaneFdfC + * + * @return javax.swing.JSplitPane + */ + private JSplitPane getJSplitPaneFdfC() { + if (jSplitPaneFdfC == null) { + jSplitPaneFdfC = new JSplitPane(); + jSplitPaneFdfC.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT); + jSplitPaneFdfC.setDividerSize(5); + jSplitPaneFdfC.setTopComponent(getJPanelFdfCTop()); + jSplitPaneFdfC.setBottomComponent(getJPanelFdfCBottom()); + jSplitPaneFdfC.setDividerLocation(280); + } + return jSplitPaneFdfC; + } + + /** + * This method initializes jPanelFdfCTop + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCTop() { + if (jPanelFdfCTop == null) { + jPanelFdfCTop = new JPanel(); + jPanelFdfCTop.setLayout(new BorderLayout()); + jPanelFdfCTop.add(getJPanelFdfCTopN(), java.awt.BorderLayout.NORTH); + jPanelFdfCTop.add(getJPanelFdfCTopS(), java.awt.BorderLayout.SOUTH); + jPanelFdfCTop.add(getJPanelFdfCTopC(), java.awt.BorderLayout.CENTER); + } + return jPanelFdfCTop; + } + + /** + * This method initializes jPanelFdfCBottom + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCBottom() { + if (jPanelFdfCBottom == null) { + jPanelFdfCBottom = new JPanel(); + jPanelFdfCBottom.setLayout(new BorderLayout()); + jPanelFdfCBottom.add(getJPanelFdfCBottomN(), java.awt.BorderLayout.NORTH); + jPanelFdfCBottom.add(getJPanelFdfCBottomC(), java.awt.BorderLayout.CENTER); + } + return jPanelFdfCBottom; + } + + /** + * This method initializes jPanelFdfCTopN + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCTopN() { + if (jPanelFdfCTopN == null) { + jLabelFvInFdf = new JLabel(); + jLabelFvInFdf.setText("FVs in Flash Definition File"); + jPanelFdfCTopN = new JPanel(); + jPanelFdfCTopN.add(jLabelFvInFdf, null); + } + return jPanelFdfCTopN; + } + + /** + * This method initializes jPanelFdfCTopS + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCTopS() { + if (jPanelFdfCTopS == null) { + FlowLayout flowLayout1 = new FlowLayout(); + flowLayout1.setAlignment(java.awt.FlowLayout.RIGHT); + jPanelFdfCTopS = new JPanel(); + jPanelFdfCTopS.setLayout(flowLayout1); + jPanelFdfCTopS.add(getJButtonFvInFdfOptions(), null); + } + return jPanelFdfCTopS; + } + + /** + * This method initializes jPanelFdfCTopC + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCTopC() { + if (jPanelFdfCTopC == null) { + jPanelFdfCTopC = new JPanel(); + jPanelFdfCTopC.add(getJScrollPaneFvInFdf(), null); + } + return jPanelFdfCTopC; + } + + /** + * This method initializes jPanelFdfCBottomN + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCBottomN() { + if (jPanelFdfCBottomN == null) { + jLabelFvAdditional = new JLabel(); + jLabelFvAdditional.setText("Additional FVs"); + jPanelFdfCBottomN = new JPanel(); + jPanelFdfCBottomN.add(jLabelFvAdditional, null); + } + return jPanelFdfCBottomN; + } + + /** + * This method initializes jPanelFdfCBottomC + * + * @return javax.swing.JPanel + */ + private JPanel getJPanelFdfCBottomC() { + if (jPanelFdfCBottomC == null) { + jPanelFdfCBottomC = new JPanel(); + jPanelFdfCBottomC.add(getJScrollPaneFvAdditional(), null); + } + return jPanelFdfCBottomC; + } + + /** + * This method initializes jScrollPaneFvInFdf + * + * @return javax.swing.JScrollPane + */ + private JScrollPane getJScrollPaneFvInFdf() { + if (jScrollPaneFvInFdf == null) { + jScrollPaneFvInFdf = new JScrollPane(); + jScrollPaneFvInFdf.setPreferredSize(new java.awt.Dimension(653,200)); + jScrollPaneFvInFdf.setViewportView(getJTableFvInFdf()); + } + return jScrollPaneFvInFdf; + } + + /** + * This method initializes jTableFvInFdf + * + * @return javax.swing.JTable + */ + private JTable getJTableFvInFdf() { + if (jTableFvInFdf == null) { + jTableFvInFdf = new JTable(); + jTableFvInFdf.setRowHeight(20); + jTableFvInFdf.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + jTableFvInFdf.setModel(getFvInFdfTableModel()); + } + return jTableFvInFdf; + } + + /** + * This method initializes fvInFdfTableModel + * + * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel + */ + private NonEditableTableModel getFvInFdfTableModel() { + if (fvInFdfTableModel == null) { + fvInFdfTableModel = new NonEditableTableModel(); + fvInFdfTableModel.addColumn("FV Name"); + fvInFdfTableModel.addColumn("Size"); + fvInFdfTableModel.addColumn("Corresponding File Name"); + } + return fvInFdfTableModel; + } + + /** + * This method initializes jButtonFvInFdfOptions + * + * @return javax.swing.JButton + */ + private JButton getJButtonFvInFdfOptions() { + if (jButtonFvInFdfOptions == null) { + jButtonFvInFdfOptions = new JButton(); + jButtonFvInFdfOptions.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonFvInFdfOptions.setText("Options"); + jButtonFvInFdfOptions.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent e) { + int selectedRow = jTableFvInFdf.getSelectedRow(); + if (selectedRow <= 0) { + return; + } + fvInFdfTableModel.moveRow(selectedRow, selectedRow, selectedRow - 1); + jTableFvInFdf.changeSelection(selectedRow - 1, 0, false, false); + } + }); + } + return jButtonFvInFdfOptions; + } + + /** + * This method initializes jScrollPaneFvAdditional + * + * @return javax.swing.JScrollPane + */ + private JScrollPane getJScrollPaneFvAdditional() { + if (jScrollPaneFvAdditional == null) { + jScrollPaneFvAdditional = new JScrollPane(); + jScrollPaneFvAdditional.setPreferredSize(new java.awt.Dimension(653,200)); + jScrollPaneFvAdditional.setViewportView(getJTableFvAdditional()); + } + return jScrollPaneFvAdditional; + } + + /** + * This method initializes jTableFvAdditional + * + * @return javax.swing.JTable + */ + private JTable getJTableFvAdditional() { + if (jTableFvAdditional == null) { + jTableFvAdditional = new JTable(); + jTableFvAdditional.setRowHeight(20); + jTableFvAdditional.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + jTableFvAdditional.setModel(getFvAddtionalTableModel()); + } + return jTableFvAdditional; + } + + /** + * This method initializes fvAddtionalTableModel + * + * @return javax.swing.table.DefaultTableModel + */ + private DefaultTableModel getFvAddtionalTableModel() { + if (fvAddtionalTableModel == null) { + fvAddtionalTableModel = new DefaultTableModel(); + fvAddtionalTableModel.addColumn("FV Name"); + fvAddtionalTableModel.addColumn("Size"); + fvAddtionalTableModel.addColumn("Corresponding File Name"); + } + return fvAddtionalTableModel; + } + + /** + * This method initializes jButtonAddFv + * + * @return javax.swing.JButton + */ + private JButton getJButtonAddFv() { + if (jButtonAddFv == null) { + jButtonAddFv = new JButton(); + jButtonAddFv.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonAddFv.setText("New"); + } + return jButtonAddFv; + } + + /** + * This method initializes jButtonDelFv + * + * @return javax.swing.JButton + */ + private JButton getJButtonDelFv() { + if (jButtonDelFv == null) { + jButtonDelFv = new JButton(); + jButtonDelFv.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonDelFv.setText("Delete"); + } + return jButtonDelFv; + } + + /** + * This method initializes jButtonAddFvOptions + * + * @return javax.swing.JButton + */ + private JButton getJButtonAddFvOptions() { + if (jButtonAddFvOptions == null) { + jButtonAddFvOptions = new JButton(); + jButtonAddFvOptions.setPreferredSize(new java.awt.Dimension(80,20)); + jButtonAddFvOptions.setText("Options"); + } + return jButtonAddFvOptions; + } + + + + /** + * This method initializes nonEditableTableModel + * + * @return org.tianocore.frameworkwizard.platform.ui.NonEditableTableModel + */ + private NonEditableTableModel getNonEditableTableModel() { + if (nonEditableTableModel == null) { + nonEditableTableModel = new NonEditableTableModel(); + } + return nonEditableTableModel; + } + + /** * @param args */ @@ -1269,13 +1907,7 @@ public class FpdFlash extends IInternalFrame { return; } String[][] saa = new String[ffc.getFvImagesFvImageCount()][2]; -// ArrayList> options = new ArrayList>(ffc.getFvImagesFvImageCount()); -// -// for (int j = 0; j < ffc.getFvImagesFvImageCount(); ++j){ -// options.add(new LinkedHashMap()); -// } ffc.getFvImagesFvImages(saa); - int i = 0; while (i < saa.length) { @@ -1284,10 +1916,34 @@ public class FpdFlash extends IInternalFrame { ++i; } -// String fdfFile = ffc.getFlashDefinitionFile(); -// if (fdfFile != null) { -// jTextField3.setText(fdfFile); -// } + saa = new String[ffc.getFvImagesNameValueCount()][2]; + ffc.getFvImagesNameValues(saa); + for (int m = 0; m < saa.length; ++m) { + fvPropertyTableModel.addRow(saa[m]); + } + + jTextFieldFdf.setText(""); + String fdfFile = ffc.getFlashDefinitionFile(); + if (fdfFile != null) { + jTextFieldFdf.setText(fdfFile); + } + + String fdfPath = System.getenv("WORKSPACE") + File.separator + fdfFile; + Vector vFvInfo = new Vector(); + getFvInfoFromFdf(fdfPath, vFvInfo); + getFvInFdfTableModel().setRowCount(0); + for (int j = 0; j < vFvInfo.size(); ++j) { + FvInfoFromFdf fvInfo = vFvInfo.get(j); + String[] row = {fvInfo.getFvName(), fvInfo.getSize(), fvInfo.getEfiFileName()}; + getFvInFdfTableModel().addRow(row); + } + + + for (int k = 0; k < vFvInfo.size(); ++k) { + FvInfoFromFdf fvInfo = vFvInfo.get(k); + getJTabbedPane().addTab(fvInfo.getFvName(), null, getJPanelModOrder(), null); + + } } private void getOptionNameValue(Map m){ @@ -1312,6 +1968,118 @@ public class FpdFlash extends IInternalFrame { } return jContentPane; } + + private void getFvInfoFromFdf(String fdfPath, Vector vFvInfo) { + File fdf = new File(fdfPath); + if (!fdf.exists()) { + return; + } + int lines = 0; + + try { + FileReader reader = new FileReader(fdf); + BufferedReader in = new BufferedReader(reader); + String str; + + while ((str = in.readLine()) != null) { + ++lines; + str = str.trim(); + // + // skip empty line, comment (start with //) + // + if (str.length() == 0 || str.startsWith("//")) { + continue; + } + // + // dig into Region {} section, create FvInfoFromFdf object for it. + // + if (str.startsWith("Region") && str.endsWith("{")) { + FvInfoFromFdf fvInfo = new FvInfoFromFdf(); + boolean nameFound = false; + boolean sizeFound = false; + while ((str = in.readLine()) != null) { + ++lines; + str = str.trim(); + // + // skip empty line, comment (start with //) + // + if (str.length() == 0 || str.startsWith("//")) { + continue; + } + + if (str.startsWith("Name")) { + int firstQuote = str.indexOf("\""); + int lastQuote = str.lastIndexOf("\""); + fvInfo.setFvName(str.substring(firstQuote + 1, lastQuote)); + nameFound = true; + } + + if (str.startsWith("Size")) { + int equalIndex = str.indexOf("="); + int commaIndex = str.indexOf(","); + fvInfo.setSize(str.substring(equalIndex + 1, commaIndex).trim()); + sizeFound = true; + } + + if (nameFound && sizeFound) { + break; + } + } + + vFvInfo.add(fvInfo); + } + // + // dig into File {} section, supply file name information to existing FvInfoFromFdf object. + // + if (str.startsWith("File")) { + boolean fileNameFound = false; + boolean fvFound = false; + String fileName = ""; + String fvName = ""; + while ((str = in.readLine()) != null) { + ++lines; + str = str.trim(); + // + // skip empty line, comment (start with //) + // + if (str.length() == 0 || str.startsWith("//")) { + continue; + } + + if (str.startsWith("Name")) { + int firstQuote = str.indexOf("\""); + int lastQuote = str.lastIndexOf("\""); + fileName = str.substring(firstQuote + 1, lastQuote); + fileNameFound = true; + } + + if (str.startsWith("Region")) { + int firstQuote = str.indexOf("\""); + int lastQuote = str.lastIndexOf("\""); + fvName = str.substring(firstQuote + 1, lastQuote); + fvFound = true; + } + + if (fileNameFound && fvFound) { + break; + } + } + + for (int i = 0; i al = fpdMsa.get(mg + mv + pg + pv); if (al == null) { @@ -408,7 +407,7 @@ public class FpdFrameworkModules extends IInternalFrame { if (mi != null) { row[modNameColForFpdModTable] = mi.getName(); - row[pkgNameColForFpdModTable] = mi.getPackage().getName(); + row[pkgNameColForFpdModTable] = mi.getPackageId().getName(); row[pathColForFpdModTable] = path; row[archColForFpdModTable] = arch; row[pkgVerColForFpdModTable] = pv; @@ -629,7 +628,7 @@ public class FpdFrameworkModules extends IInternalFrame { String arch = sa[ffcModArch]; ModuleIdentification mi = WorkspaceProfile.getModuleId(mg + " " + mv + " " + pg + " " + pv + " " + arch); mv = mi.getVersion(); - pv = mi.getPackage().getVersion(); + pv = mi.getPackageId().getVersion(); modelFpdModules.removeRow(selectedRow); if (arch == null) { // if no arch specified in ModuleSA @@ -679,12 +678,6 @@ public class FpdFrameworkModules extends IInternalFrame { } private void init(PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd) { - try { - WorkspaceProfile.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db", System.getenv("WORKSPACE")); - } - catch(Exception e){ - JOptionPane.showMessageDialog(frame, "Error occurred when getting module data."); - } if (ffc == null) { ffc = new FpdFileContents(fpd); @@ -705,14 +698,12 @@ public class FpdFrameworkModules extends IInternalFrame { if (mi != null) { row[modNameColForFpdModTable] = mi.getName(); row[modVerColForFpdModTable] = mi.getVersion(); - row[typeColForFpdModTable] = mi.getModuleType(); - row[pkgNameColForFpdModTable] = mi.getPackage().getName(); - row[pkgVerColForFpdModTable] = mi.getPackage().getVersion(); + row[typeColForFpdModTable] = SurfaceAreaQuery.getModuleType(mi); + row[pkgNameColForFpdModTable] = mi.getPackageId().getName(); + row[pkgVerColForFpdModTable] = mi.getPackageId().getVersion(); row[archColForFpdModTable] = saa[i][ffcModArch]; try { - row[pathColForFpdModTable] = WorkspaceProfile.getMsaFile(mi).getPath().substring( - System.getenv("WORKSPACE") - .length() + 1); + row[pathColForFpdModTable] = mi.getPath().substring(System.getenv("WORKSPACE").length() + 1); } catch (Exception e) { JOptionPane.showMessageDialog(frame, "Show FPD Modules:" + e.getMessage()); } @@ -743,32 +734,26 @@ public class FpdFrameworkModules extends IInternalFrame { if (miList == null) { miList = new ArrayList(); } - Set spi = WorkspaceProfile.getPackageList(); - Iterator ispi = spi.iterator(); - while (ispi.hasNext()) { - PackageIdentification pi = (PackageIdentification) ispi.next(); String[] s = { "", "", "", "", "", "" }; - - Set smi = WorkspaceProfile.getModules(pi); - Iterator ismi = smi.iterator(); + + Iterator ismi = GlobalData.vModuleList.iterator(); while (ismi.hasNext()) { ModuleIdentification mi = (ModuleIdentification) ismi.next(); s[modNameColForAllModTable] = mi.getName(); s[modVerColForAllModTable] = mi.getVersion(); - s[typeColForAllModTable] = mi.getModuleType(); - s[pkgNameColForAllModTable] = pi.getName(); - s[pkgVerColForAllModTable] = pi.getVersion(); + s[typeColForAllModTable] = SurfaceAreaQuery.getModuleType(mi); + s[pkgNameColForAllModTable] = mi.getPackageId().getName(); + s[pkgVerColForAllModTable] = mi.getPackageId().getVersion(); try { - s[pathColForAllModTable] = WorkspaceProfile.getMsaFile(mi).getPath() - .substring(System.getenv("WORKSPACE").length() + 1); + s[pathColForAllModTable] = mi.getPath().substring(System.getenv("WORKSPACE").length() + 1); } catch (Exception e) { JOptionPane.showMessageDialog(frame, "Show All Modules:" + e.getMessage()); } modelAllModules.addRow(s); miList.add(mi); } - } + TableSorter sorter = (TableSorter)jTableAllModules.getModel(); sorter.setSortState(modNameColForAllModTable, TableSorter.ASCENDING); diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java index 0e3c9517e8..f065b8e1e2 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java @@ -494,7 +494,7 @@ public class FpdHeader extends IInternalFrame { private void init() { //this.setSize(500, 515); this.setContentPane(getJContentPane()); - this.setTitle("Package Surface Area Header"); + this.setTitle("Platform Surface Area Header"); initFrame(); } 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 048616ca66..ef185b16f9 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 @@ -24,11 +24,12 @@ import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import org.tianocore.frameworkwizard.common.DataValidation; +import org.tianocore.frameworkwizard.common.GlobalData; import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType; import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile; import org.tianocore.frameworkwizard.platform.ui.global.SurfaceAreaQuery; -import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.PackageIdentification; +import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification; +import org.tianocore.frameworkwizard.packaging.PackageIdentification; import java.awt.FlowLayout; import java.awt.event.ActionEvent; @@ -37,7 +38,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.ListIterator; -import java.util.Set; import java.util.Vector; import javax.swing.JTextField; @@ -185,7 +185,7 @@ public class FpdModuleSA extends JDialog implements ActionListener { if (mi != null) { saa[i][0] = mi.getName(); saa[i][2] = mi.getVersion(); - saa[i][4] = mi.getPackage().getVersion(); + saa[i][4] = mi.getPackageId().getVersion(); // // re-evaluate lib instance usage when adding a already-selected lib instance. // @@ -297,11 +297,12 @@ public class FpdModuleSA extends JDialog implements ActionListener { ArrayList al = new ArrayList(); for (int i = 0; i < depPkgList.length; ++i) { - Set smi = WorkspaceProfile.getModules(depPkgList[i]); - Iterator ismi = smi.iterator(); + Iterator ismi = GlobalData.vModuleList.iterator(); while(ismi.hasNext()) { ModuleIdentification mi = (ModuleIdentification)ismi.next(); - + if (!mi.getPackageId().getGuid().equalsIgnoreCase(depPkgList[i].getGuid())) { + continue; + } String[] clsProduced = getClassProduced(mi); boolean isPotential = false; diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/Spd.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/Spd.java deleted file mode 100644 index 0a8f3356fd..0000000000 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/Spd.java +++ /dev/null @@ -1,111 +0,0 @@ -/** @file - Spd class. - - This class is to generate a global table for the content of spd file. - - Copyright (c) 2006, Intel Corporation - All rights reserved. This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php - - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - - **/ -package org.tianocore.frameworkwizard.platform.ui.global; - -import java.io.File; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import org.apache.xmlbeans.XmlObject; -import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.PackageIdentification; - -/** - - This class is to generate a global table for the content of spd file. - - **/ -public class Spd { - /// - /// - /// - Map msaInfo = new HashMap(); - - // - // Xml Doc of Spd file, Msa file - // - public Map spdDocMap = new HashMap(); - public Map msaDocMap = new HashMap(); - /// - /// Package path. - /// - PackageIdentification packageId; - - /** - Constructor function - - This function mainly initialize some member variables. - **/ - Spd(File packageFile) throws Exception { - try { - XmlObject spdDoc = XmlObject.Factory.parse(packageFile); - // - // Verify SPD file, if is invalid, throw Exception - // -// if (! spdDoc.validate()) { -// throw new Exception("Package Surface Area file [" + packageFile.getPath() + "] is invalid. "); -// } - // We can change Map to XmlObject - - spdDocMap.put("PackageSurfaceArea", spdDoc); - SurfaceAreaQuery.setDoc(spdDocMap); - // - // - // - packageId = SurfaceAreaQuery.getSpdHeader(); - packageId.setSpdFile(packageFile); - - // - // initialize Msa Files - // MSA file is absolute file path - // - String[] msaFilenames = SurfaceAreaQuery.getSpdMsaFile(); - for (int i = 0; i < msaFilenames.length; i++){ - File msaFile = new File(packageId.getPackageDir() + File.separatorChar + msaFilenames[i]); - if (!msaFile.exists()) { - continue; - } - Map msaDoc = WorkspaceProfile.getNativeMsa( msaFile ); - SurfaceAreaQuery.push(msaDoc); - ModuleIdentification moduleId = SurfaceAreaQuery.getMsaHeader(); - SurfaceAreaQuery.pop(); - moduleId.setPackage(packageId); - msaInfo.put(moduleId, msaFile); - msaDocMap.put(moduleId, msaDoc.get("ModuleSurfaceArea")); - } - - } - catch (Exception e) { - - throw new Exception("Parse package description file [" + packageId.getSpdFile() + "] Error.\n" - + e.getMessage()); - } - } - - public PackageIdentification getPackageId() { - return packageId; - } - - public File getModuleFile(ModuleIdentification moduleId) { - return msaInfo.get(moduleId); - } - - public Set getModules(){ - return msaInfo.keySet(); - } - -} 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 ac081431a6..85b406621c 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 @@ -14,46 +14,25 @@ package org.tianocore.frameworkwizard.platform.ui.global; import java.util.ArrayList; -import java.util.HashMap; import java.util.Iterator; -import java.util.LinkedHashMap; 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; -import org.apache.xmlbeans.XmlNormalizedString; import org.apache.xmlbeans.XmlObject; -import org.apache.xmlbeans.XmlString; import org.tianocore.BuildTargetList; -import org.tianocore.DataIdDocument; -import org.tianocore.ExternsDocument; -import org.tianocore.FileNameConvention; -//import org.tianocore.FvImageDocument; -import org.tianocore.GuidDeclarationsDocument; -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; import org.tianocore.PackageDependenciesDocument; -import org.tianocore.PackageHeadersDocument; -import org.tianocore.PpiDeclarationsDocument; -import org.tianocore.ProtocolDeclarationsDocument; -import org.tianocore.SpdHeaderDocument; +import org.tianocore.PackageSurfaceAreaDocument; import org.tianocore.FilenameDocument.Filename; -import org.tianocore.MsaHeaderDocument.MsaHeader; -import org.tianocore.PlatformHeaderDocument; -import org.tianocore.frameworkwizard.platform.ui.id.FpdModuleIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.PackageIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.PlatformIdentification; + +import org.tianocore.frameworkwizard.common.GlobalData; +import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification; +import org.tianocore.frameworkwizard.packaging.PackageIdentification; /** * SurfaceAreaQuery class is used to query Surface Area information from msa, @@ -322,16 +301,10 @@ public class SurfaceAreaQuery { * @returns The module type name if elements are found at the known xpath * @returns null if nothing is there */ - public static String getModuleType() { - String[] xPath = new String[] { "/ModuleType" }; - - XmlObject[] returns = get(xPath); - if (returns != null && returns.length > 0) { - ModuleTypeDef type = (ModuleTypeDef) returns[0]; - return type.enumValue().toString(); - } + public static String getModuleType(ModuleIdentification mi) { + ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = WorkspaceProfile.getModuleXmlObject(mi); - return null; + return msa.getMsaHeader().getModuleType()+""; } /** @@ -365,8 +338,7 @@ public class SurfaceAreaQuery { packageGuid = item.getPackageGuid(); packageVersion = item.getPackageVersion(); - Set spi = WorkspaceProfile.getPackageList(); - Iterator ispi = spi.iterator(); + Iterator ispi = GlobalData.vPackageList.iterator(); String ver = ""; while(ispi.hasNext()) { PackageIdentification pi = ispi.next(); @@ -422,813 +394,18 @@ public class SurfaceAreaQuery { return libraryClassName; } - /** - * Retrieve ModuleEntryPoint names - * - * @returns ModuleEntryPoint name list if elements are found at the known - * xpath - * @returns null if nothing is there - */ - public static String[] getModuleEntryPointArray() { - String[] xPath = new String[] { "/Extern/ModuleEntryPoint" }; - - XmlObject[] returns = get("Externs", xPath); - - if (returns != null && returns.length > 0) { - String[] entryPoints = new String[returns.length]; - - for (int i = 0; i < returns.length; ++i) { - entryPoints[i] = ((XmlNormalizedString) returns[i]) - .getStringValue(); - } - - return entryPoints; - } - - return null; - } - - - - - /** - * Retrieve ModuleUnloadImage names - * - * @returns ModuleUnloadImage name list if elements are found at the known - * xpath - * @returns null if nothing is there - */ - public static String[] getModuleUnloadImageArray() { - String[] xPath = new String[] { "/Extern/ModuleUnloadImage" }; - - XmlObject[] returns = get("Externs", xPath); - if (returns != null && returns.length > 0) { - String[] stringArray = new String[returns.length]; - XmlNormalizedString[] doc = (XmlNormalizedString[]) returns; - - for (int i = 0; i < returns.length; ++i) { - stringArray[i] = doc[i].getStringValue(); - } - - return stringArray; - } - - return null; - } - - /** - * Retrieve Extern - * - * @returns Extern objects list if elements are found at the known xpath - * @returns null if nothing is there - */ - public static ExternsDocument.Externs.Extern[] getExternArray() { - String[] xPath = new String[] { "/Extern" }; - - XmlObject[] returns = get("Externs", xPath); - if (returns != null && returns.length > 0) { - return (ExternsDocument.Externs.Extern[]) returns; - } - - return null; - } - - /** - * Retrieve Library instance information - * - * @param arch - * Architecture name - * @param usage - * Library instance usage - * - * @returns library instance name list if elements are found at the known - * xpath - * @returns null if nothing is there - */ - public static ModuleIdentification[] getLibraryInstance(String arch) { - String[] xPath; - String saGuid = null; - String saVersion = null; - String pkgGuid = null; - String pkgVersion = null; - - if (arch == null || arch.equalsIgnoreCase("")) { - xPath = new String[] { "/Instance" }; - } else { - xPath = new String[] { "/Instance[not(@SupArchList) or @SupArchList='" - + arch + "']" }; - } - - XmlObject[] returns = get("Libraries", xPath); - if (returns == null || returns.length == 0) { - return new ModuleIdentification[0]; - } - - ModuleIdentification[] saIdList = new ModuleIdentification[returns.length]; - for (int i = 0; i < returns.length; i++) { - LibrariesDocument.Libraries.Instance library = (LibrariesDocument.Libraries.Instance) returns[i]; - saGuid = library.getModuleGuid(); - saVersion = library.getModuleVersion(); - - pkgGuid = library.getPackageGuid(); - pkgVersion = library.getPackageVersion(); - - ModuleIdentification saId = new ModuleIdentification(null, saGuid, - saVersion); - PackageIdentification pkgId = new PackageIdentification(null, - pkgGuid, pkgVersion); - saId.setPackage(pkgId); - - saIdList[i] = saId; - - } - return saIdList; - } - - // / - // / This method is used for retrieving the elements information which has - // / CName sub-element - // / - private static String[] getCNames(String from, String xPath[]) { - XmlObject[] returns = get(from, xPath); - if (returns == null || returns.length == 0) { - return null; - } - - String[] strings = new String[returns.length]; - for (int i = 0; i < returns.length; ++i) { - // TBD - // strings[i] = ((CName) returns[i]).getStringValue(); - } - - return strings; - } - - /** - * Retrive library's constructor name - * - * @returns constructor name list if elements are found at the known xpath - * @returns null if nothing is there - */ - public static String getLibConstructorName() { - String[] xPath = new String[] { "/Extern/Constructor" }; - - XmlObject[] returns = get("Externs", xPath); - if (returns != null && returns.length > 0) { - // CName constructor = (CName) returns[0]; - // return constructor.getStringValue(); - } - - return null; - } - - /** - * Retrive library's destructor name - * - * @returns destructor name list if elements are found at the known xpath - * @returns null if nothing is there - */ - public static String getLibDestructorName() { - String[] xPath = new String[] { "/Extern/Destructor" }; - - XmlObject[] returns = get("Externs", xPath); - if (returns != null && returns.length > 0) { - // CName destructor = (CName) returns[0]; - // return destructor.getStringValue(); - } - - return null; - } - - /** - * Retrive DriverBinding names - * - * @returns DriverBinding name list if elements are found at the known xpath - * @returns null if nothing is there - */ - public static String[] getDriverBindingArray() { - String[] xPath = new String[] { "/Extern/DriverBinding" }; - return getCNames("Externs", xPath); - } - - /** - * Retrive ComponentName names - * - * @returns ComponentName name list if elements are found at the known xpath - * @returns null if nothing is there - */ - public static String[] getComponentNameArray() { - String[] xPath = new String[] { "/Extern/ComponentName" }; - return getCNames("Externs", xPath); - } - - /** - * Retrive DriverConfig names - * - * @returns DriverConfig name list if elements are found at the known xpath - * @returns null if nothing is there - */ - public static String[] getDriverConfigArray() { - String[] xPath = new String[] { "/Extern/DriverConfig" }; - return getCNames("Externs", xPath); - } - - /** - * Retrive DriverDiag names - * - * @returns DriverDiag name list if elements are found at the known xpath - * @returns null if nothing is there - */ - public static String[] getDriverDiagArray() { - String[] xPath = new String[] { "/Extern/DriverDiag" }; - return getCNames("Externs", xPath); - } - - /** - * Retrive SetVirtualAddressMapCallBack names - * - * @returns SetVirtualAddressMapCallBack name list if elements are found at - * the known xpath - * @returns null if nothing is there - */ - public static String[] getSetVirtualAddressMapCallBackArray() { - String[] xPath = new String[] { "/Extern/SetVirtualAddressMapCallBack" }; - return getCNames("Externs", xPath); - } - - /** - * Retrive ExitBootServicesCallBack names - * - * @returns ExitBootServicesCallBack name list if elements are found at the - * known xpath - * @returns null if nothing is there - */ - public static String[] getExitBootServicesCallBackArray() { - String[] xPath = new String[] { "/Extern/ExitBootServicesCallBack" }; - return getCNames("Externs", xPath); - } - - /** - * Retrieve module surface area file information - * - * @returns ModuleSA objects list if elements are found at the known xpath - * @returns Empty ModuleSA list if nothing is there - */ - public static Map> getFpdModules() { - String[] xPath = new String[] { "/FrameworkModules/ModuleSA" }; - XmlObject[] result = get("FrameworkPlatformDescription", xPath); - String arch = null; - String fvBinding = null; - String saGuid = null; - String saVersion = null; - String pkgGuid = null; - String pkgVersion = null; - - Map> fpdModuleMap = new LinkedHashMap>(); - - if (result == null) { - return fpdModuleMap; - } - - for (int i = 0; i < result.length; i++) { - // - // Get Fpd SA Module element node and add to xmlObjectMap. - // - Map xmlObjectMap = new HashMap(); - ModuleSADocument.ModuleSA moduleSA = (ModuleSADocument.ModuleSA) result[i]; - if (((ModuleSADocument.ModuleSA) result[i]).getLibraries() != null) { - xmlObjectMap.put("Libraries", moduleSA.getLibraries()); - } - if (((ModuleSADocument.ModuleSA) result[i]).getPcdBuildDefinition() != null) { - xmlObjectMap.put("PcdBuildDefinition", moduleSA - .getPcdBuildDefinition()); - } - if (((ModuleSADocument.ModuleSA) result[i]) - .getModuleSaBuildOptions() != null) { - xmlObjectMap.put("ModuleSaBuildOptions", moduleSA - .getModuleSaBuildOptions()); - } - - // - // Get Fpd SA Module attribute and create FpdMoudleIdentification. - // - arch = moduleSA.getSupArchList().toString(); - - // TBD - fvBinding = null; - saVersion = ((ModuleSADocument.ModuleSA) result[i]) - .getModuleVersion(); - - saGuid = moduleSA.getModuleGuid(); - pkgGuid = moduleSA.getPackageGuid(); - pkgVersion = moduleSA.getPackageVersion(); - - // - // Create Module Identification which have class member of package - // identification. - // - PackageIdentification pkgId = new PackageIdentification(null, - pkgGuid, pkgVersion); - ModuleIdentification saId = new ModuleIdentification(null, saGuid, - saVersion); - - saId.setPackage(pkgId); - - // - // Create FpdModule Identification which have class member of module - // identification - // - FpdModuleIdentification fpdSaId = new FpdModuleIdentification(saId, - arch); - if (arch != null) { - fpdSaId.setArch(arch); - } - if (fvBinding != null) { - fpdSaId.setFvBinding(fvBinding); - } - - // - // Put element to Map>. - // - fpdModuleMap.put(fpdSaId, xmlObjectMap); - } - return fpdModuleMap; - } - - /** - * Retrieve valid image names - * - * @returns valid iamges name list if elements are found at the known xpath - * @returns empty list if nothing is there - */ - public static String[] getFpdValidImageNames() { - String[] xPath = new String[] { "/PlatformDefinitions/FlashDeviceDefinitions/FvImages/FvImage[@Type='ValidImageNames']/FvImageNames" }; - - XmlObject[] queryResult = get("FrameworkPlatformDescription", xPath); - if (queryResult == null) { - return new String[0]; - } - - String[] result = new String[queryResult.length]; - for (int i = 0; i < queryResult.length; i++) { - result[i] = ((XmlString) queryResult[i]).getStringValue(); - } - - return result; - } - - - - public static XmlObject getFpdBuildOptions() { - String[] xPath = new String[] { "/BuildOptions" }; - - XmlObject[] queryResult = get("FrameworkPlatformDescription", xPath); - - if (queryResult == null || queryResult.length == 0) { - return null; - } - return queryResult[0]; - } - - public static PlatformIdentification getFpdHeader() { - String[] xPath = new String[] { "/PlatformHeader" }; - - XmlObject[] returns = get("FrameworkPlatformDescription", xPath); - - if (returns == null || returns.length == 0) { - return null; - } - PlatformHeaderDocument.PlatformHeader header = (PlatformHeaderDocument.PlatformHeader) returns[0]; - - String name = header.getPlatformName(); - - String guid = header.getGuidValue(); - - String version = header.getVersion(); - - return new PlatformIdentification(name, guid, version); - } - - /** - * Retrieve flash definition file name - * - * @returns file name if elements are found at the known xpath - * @returns null if nothing is there - */ - public static String getFlashDefinitionFile() { - String[] xPath = new String[] { "/PlatformDefinitions/FlashDeviceDefinitions/FlashDefinitionFile" }; - - XmlObject[] queryResult = get("FrameworkPlatformDescription", xPath); - if (queryResult == null || queryResult.length == 0) { - return null; - } - - FileNameConvention filename = (FileNameConvention) queryResult[queryResult.length - 1]; - return filename.getStringValue(); - } - - /** - * Retrieve FV image component options - * - * @param fvName - * FV image name - * - * @returns name/value pairs list if elements are found at the known xpath - * @returns empty list if nothing is there - */ - public static String[][] getFpdComponents(String fvName) { - String[] xPath = new String[] { "/PlatformDefinitions/FlashDeviceDefinitions/DataRegions/FvDataRegion[@Name='" - + fvName.toUpperCase() + "']/DataId" }; - - XmlObject[] queryResult = get("FrameworkPlatformDescription", xPath); - if (queryResult == null) { - return new String[0][]; - } - - ArrayList list = new ArrayList(); - for (int i = 0; i < queryResult.length; i++) { - DataIdDocument.DataId item = (DataIdDocument.DataId) queryResult[i]; - list - .add(new String[] { item.getStringValue(), - item.getDataSize() }); - } - - String[][] result = new String[list.size()][2]; - for (int i = 0; i < list.size(); i++) { - result[i][0] = list.get(i)[0]; - result[i][1] = list.get(i)[1]; - } - - return result; - } - - /** - * Retrieve PCD tokens - * - * @returns CName/ItemType pairs list if elements are found at the known - * xpath - * @returns null if nothing is there - */ - public static String[][] getPcdTokenArray() { - String[] xPath = new String[] { "/PcdData" }; - - XmlObject[] returns = get("PCDs", xPath); - if (returns == null || returns.length == 0) { - return null; - } - - // PcdCoded.PcdData[] pcds = (PcdCoded.PcdData[]) returns; - // String[][] result = new String[pcds.length][2]; - // for (int i = 0; i < returns.length; ++i) { - // if (pcds[i].getItemType() != null) { - // result[i][1] = pcds[i].getItemType().toString(); - // } else { - // result[i][1] = null; - // } - // result[i][0] = pcds[i].getCName(); - // } - - return null; - } - - - - /** - * Retrieve MSA header - * - * @return - * @return - */ - public static ModuleIdentification getMsaHeader() { - String[] xPath = new String[] { "/" }; - XmlObject[] returns = get("MsaHeader", xPath); - - if (returns == null || returns.length == 0) { - return null; - } - - MsaHeader msaHeader = (MsaHeader) returns[0]; - // - // Get BaseName, ModuleType, GuidValue, Version - // which in MsaHeader. - // - String name = msaHeader.getModuleName(); - String moduleType = ""; - if (msaHeader.getModuleType() != null) { - moduleType = msaHeader.getModuleType().toString(); + public static XmlObject[] getSpdPcdDeclarations(PackageIdentification pi) { + XmlObject[] returns = null; + PackageSurfaceAreaDocument.PackageSurfaceArea psa = WorkspaceProfile.getPackageXmlObject(pi); + if (psa.getPcdDeclarations() != null && psa.getPcdDeclarations().getPcdEntryList() != null) { + int size = psa.getPcdDeclarations().getPcdEntryList().size(); + returns = new XmlObject[size]; + for (int i = 0; i < size; ++i) { + returns[i] = psa.getPcdDeclarations().getPcdEntryList().get(i); + } } - - String guid = msaHeader.getGuidValue(); - String version = msaHeader.getVersion(); - - ModuleIdentification moduleId = new ModuleIdentification(name, guid, - version); - - moduleId.setModuleType(moduleType); - - return moduleId; - } - - /** - * Retrieve Extern Specification - * - * @param - * - * @return String[] If have specification element in the String[0] - * If no specification element in the - * - */ - - public static String[] getExternSpecificaiton() { - String[] xPath = new String[] { "/Specification" }; - - XmlObject[] queryResult = get("Externs", xPath); - if (queryResult == null) { - return new String[0]; - } - - String[] specificationList = new String[queryResult.length]; - for (int i = 0; i < queryResult.length; i++) { - // specificationList[i] = ((SpecificationDocument.Specification) - // queryResult[i]) - // .getStringValue(); - } - return specificationList; - } - - /** - * Retreive MsaFile which in SPD - * - * @param - * @return String[][3] The string sequence is ModuleName, ModuleGuid, - * ModuleVersion, MsaFile String[0][] If no msafile in SPD - */ - public static String[] getSpdMsaFile() { - String[] xPath = new String[] { "/MsaFiles" }; - - XmlObject[] returns = get("PackageSurfaceArea", xPath); - if (returns == null) { - return new String[0]; - } - - List filenameList = ((MsaFilesDocument.MsaFiles) returns[0]) - .getFilenameList(); - return filenameList.toArray(new String[filenameList.size()]); - } - - /** - * Reteive - */ - public static Map getSpdLibraryClasses() { - String[] xPath = new String[] { "/LibraryClassDeclarations/LibraryClass" }; - - XmlObject[] returns = get("PackageSurfaceArea", xPath); - - // - // Create Map, Key - LibraryClass, String[] - LibraryClass Header file. - // - Map libClassHeaderMap = new HashMap(); - - if (returns == null) { - return libClassHeaderMap; - } - - for (int i = 0; i < returns.length; i++) { - LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass library = (LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass) returns[i]; - libClassHeaderMap.put(library.getName(), new String[] { library - .getIncludeHeader() }); - } - return libClassHeaderMap; - } - - /** - * Reteive - */ - public static Map getSpdPackageHeaderFiles() { - String[] xPath = new String[] { "/PackageHeaders/IncludePkgHeader" }; - - XmlObject[] returns = get("PackageSurfaceArea", xPath); - - // - // Create Map, Key - ModuleType, String - PackageInclude Header file. - // - Map packageIncludeMap = new HashMap(); - - if (returns == null) { - return packageIncludeMap; - } - WorkspaceProfile.log.info("" + returns[0].getClass().getName()); - for (int i = 0; i < returns.length; i++) { - PackageHeadersDocument.PackageHeaders.IncludePkgHeader includeHeader = (PackageHeadersDocument.PackageHeaders.IncludePkgHeader) returns[i]; - packageIncludeMap.put(includeHeader.getModuleType().toString(), - includeHeader.getStringValue()); - } - return packageIncludeMap; - } - - public static PackageIdentification getSpdHeader() { - String[] xPath = new String[] { "/SpdHeader" }; - - XmlObject[] returns = get("PackageSurfaceArea", xPath); - - if (returns == null || returns.length == 0) { - return null; - } - - SpdHeaderDocument.SpdHeader header = (SpdHeaderDocument.SpdHeader) returns[0]; - - String name = header.getPackageName(); - - String guid = header.getGuidValue(); - - String version = header.getVersion(); - - return new PackageIdentification(name, guid, version); - } - - /** - * Reteive - */ - public static Map getSpdGuid() { - String[] xPath = new String[] { "/GuidDeclarations/Entry" }; - - XmlObject[] returns = get("PackageSurfaceArea", xPath); - - // - // Create Map, Key - GuidName, String[] - C_NAME & GUID value. - // - Map guidDeclMap = new HashMap(); - if (returns == null) { - return guidDeclMap; - } - - for (int i = 0; i < returns.length; i++) { - GuidDeclarationsDocument.GuidDeclarations.Entry entry = (GuidDeclarationsDocument.GuidDeclarations.Entry) returns[i]; - String[] guidPair = new String[2]; - guidPair[0] = entry.getCName(); - guidPair[1] = entry.getGuidValue(); - guidDeclMap.put(entry.getName(), guidPair); - } - return guidDeclMap; - } - - /** - * Reteive - */ - public static Map getSpdProtocol() { - String[] xPath = new String[] { "/ProtocolDeclarations/Entry" }; - - XmlObject[] returns = get("PackageSurfaceArea", xPath); - - // - // Create Map, Key - protocolName, String[] - C_NAME & GUID value. - // - Map protoclMap = new HashMap(); - - if (returns == null) { - return protoclMap; - } - - for (int i = 0; i < returns.length; i++) { - ProtocolDeclarationsDocument.ProtocolDeclarations.Entry entry = (ProtocolDeclarationsDocument.ProtocolDeclarations.Entry) returns[i]; - String[] protocolPair = new String[2]; - - protocolPair[0] = entry.getCName(); - protocolPair[1] = entry.getGuidValue(); - protoclMap.put(entry.getName(), protocolPair); - } - return protoclMap; - } - - /** - * getSpdPpi() Retrieve the SPD PPI Entry - * - * @param - * @return Map if get the PPI entry from SPD. Key - PPI - * Name String[0] - PPI CNAME String[1] - PPI Guid Null if no PPI - * entry in SPD. - */ - public static Map getSpdPpi() { - String[] xPath = new String[] { "/PpiDeclarations/Entry" }; - - XmlObject[] returns = get("PackageSurfaceArea", xPath); - - // - // Create Map, Key - protocolName, String[] - C_NAME & GUID value. - // - Map ppiMap = new HashMap(); - - if (returns == null) { - return ppiMap; - } - - for (int i = 0; i < returns.length; i++) { - PpiDeclarationsDocument.PpiDeclarations.Entry entry = (PpiDeclarationsDocument.PpiDeclarations.Entry) returns[i]; - String[] ppiPair = new String[2]; - ppiPair[0] = entry.getCName(); - ppiPair[1] = entry.getGuidValue(); - ppiMap.put(entry.getName(), ppiPair); - } - return ppiMap; - } - - /** - * getModuleSupportedArchs() - * - * This function is to Retrieve Archs one module supported. - * - * @param - * @return supportArch String of supporting archs. null No arch specified in - * element. - */ - public static List getModuleSupportedArchs() { - String[] xPath = new String[] { "/ModuleDefinitions/SupportedArchitectures" }; - - XmlObject[] returns = get("ModuleSurfaceArea", xPath); - - if (returns == null) { - return null; - } - - return (List)returns[0]; - } - - public static XmlObject[] getSpdPcdDeclarations() { - String[] xPath = null; -// if (tsGuid != null){ -// xPath = new String[] { "/PcdDeclarations/PcdEntry[C_Name='" + cName + "' and TokenSpaceGuid='"+ tsGuid + "']" }; -// } -// else{ -// xPath = new String[] { "/PcdDeclarations/PcdEntry[C_Name='" + cName + "']" }; -// } - xPath = new String[] { "/PcdDeclarations/PcdEntry"}; - XmlObject[] returns = get("PackageSurfaceArea", xPath); return returns; } - - public static XmlObject[] getFpdPcdBuildDefinitions(String cName, String tsGuid, String type) { - String[] xPath = new String[] { "/PcdBuildDefinition/PcdData[C_Name='" + cName + "' and TokenSpaceGuid='" - + tsGuid + "' and DatumType!='" + type + "']" }; - - XmlObject[] returns = get("ModuleSA", xPath); - - return returns; - } - /** - * getToolChainFamily - * - * This function is to retrieve ToolChainFamily attribute of FPD - * - * - * @param - * @return toolChainFamily If find toolChainFamily attribute in - * Null If don't have toolChainFamily in - * . - */ - public String getToolChainFamily() { - String[] xPath = new String[] { "/BuildOptions" }; - - XmlObject[] result = get("FrameworkPlatformDescription", xPath); - if (result == null) { - return null; - } - // toolChainFamily = - // ((BuildOptionsDocument.BuildOptions)result[0]).getToolChainFamilies(); - // return toolChainFamily; - return null; - } - /** - * Retrieve module Guid string - * - * @returns GUILD string if elements are found at the known xpath - * @returns null if nothing is there - */ - public static String getModuleGuid() { - String[] xPath = new String[] { "" }; - - XmlObject[] returns = get("MsaHeader", xPath); - if (returns != null && returns.length > 0) { - String guid = ((MsaHeaderDocument.MsaHeader) returns[0]) - .getGuidValue(); - return guid; - } - - return null; - } - - // - // For new Pcd - // - public static ModuleSADocument.ModuleSA[] getFpdModuleSAs() { - String[] xPath = new String[] { "/FrameworkModules/ModuleSA" }; - XmlObject[] result = get("FrameworkPlatformDescription", xPath); - if (result != null) { - return (ModuleSADocument.ModuleSA[]) result; - } - return new ModuleSADocument.ModuleSA[0]; - - } -} +} \ No newline at end of file diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/WorkspaceProfile.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/WorkspaceProfile.java index 71278e9a1e..9a599aecad 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/WorkspaceProfile.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/global/WorkspaceProfile.java @@ -16,28 +16,15 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ package org.tianocore.frameworkwizard.platform.ui.global; -import org.apache.xmlbeans.XmlObject; -import org.tianocore.DbPathAndFilename; -import org.tianocore.FrameworkDatabaseDocument; import org.tianocore.ModuleSurfaceAreaDocument; +import org.tianocore.PackageSurfaceAreaDocument; import org.tianocore.PcdCodedDocument; -import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea; -import org.tianocore.frameworkwizard.platform.ui.id.FpdModuleIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.ModuleIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.PackageIdentification; -import org.tianocore.frameworkwizard.platform.ui.id.PlatformIdentification; - -import java.io.File; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; +import org.tianocore.frameworkwizard.common.GlobalData; +import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification; +import org.tianocore.frameworkwizard.packaging.PackageIdentification; import java.util.Iterator; -import java.util.List; import java.util.ListIterator; -import java.util.Map; -import java.util.Set; import java.util.Vector; -import java.util.logging.Logger; /** WorkspaceProfile provide initializing, instoring, querying and update global data. @@ -50,102 +37,11 @@ import java.util.logging.Logger; @since GenBuild 1.0 **/ public class WorkspaceProfile { - - - public static Logger log = Logger.getAnonymousLogger(); - public static KeyComparator comparator = new KeyComparator(); /// /// Record current WORKSPACE Directory /// private static String workspaceDir = ""; - /// - /// Be used to ensure Global data will be initialized only once. - /// -// private static boolean globalFlag = false; - - /// - /// Framework Database information: package list and platform list - /// - private static Set packageList = new HashSet(); - - private static Set platformList = new HashSet(); - - /// - /// Every detail SPD informations: Module list, Library class definition, - /// Package header file, GUID/PPI/Protocol definitions - /// - private static final Map spdTable = new HashMap(); - - /// - /// Build informations are divided into three parts: - /// 1. From MSA 2. From FPD 3. From FPD' ModuleSA - /// - private static Map> nativeMsa = new HashMap>(); - - private static Map> fpdModuleSA= new HashMap>(); - - private static XmlObject fpdBuildOptions; - - private static XmlObject fpdDynamicPcds; - - /// - /// Parsed modules list - /// - private static Map> parsedModules = new HashMap>(); - - /// - /// built modules list with ARCH, TARGET, TOOLCHAIN - /// - private static Set builtModules = new HashSet(); - - /** - Parse framework database (DB) and all SPD files listed in DB to initialize - the environment for next build. This method will only be executed only once - in the whole build process. - - @param workspaceDatabaseFile the file name of framework database - @param workspaceDir current workspace directory path - @throws Exception - Framework Dababase or SPD or MSA file is not valid - **/ - public synchronized static void initInfo(String workspaceDatabaseFile, String workspaceDir) throws Exception { - - // - // Backup workspace directory. It will be used by other method - // - WorkspaceProfile.workspaceDir = workspaceDir.replaceAll("(\\\\)", "/"); - File dbFile = new File(workspaceDir + File.separatorChar + workspaceDatabaseFile); - try { - FrameworkDatabaseDocument db = (FrameworkDatabaseDocument) XmlObject.Factory.parse(dbFile); - // - // validate FrameworkDatabaseFile - // -// if (! db.validate()) { -// throw new Exception("Framework Database file [" + dbFile.getPath() + "] is invalid."); -// } - // - // Get package list - // - packageList.clear(); - List packages = db.getFrameworkDatabase().getPackageList().getFilenameList(); - - Iterator iter = packages.iterator(); - while (iter.hasNext()) { - DbPathAndFilename dbPath = (DbPathAndFilename)iter.next(); - String fileName = dbPath.getStringValue(); - Spd spd = new Spd(new File(workspaceDir + File.separatorChar + fileName)); - packageList.add(spd.getPackageId()); - spdTable.put(spd.getPackageId(), spd); - } - - - } catch (Exception e) { - e.printStackTrace(); - throw new Exception("Parse workspace Database [" + dbFile.getPath() + "] Error.\n" + e.getMessage()); - } - } - /** Get the current WORKSPACE Directory. @@ -155,313 +51,57 @@ public class WorkspaceProfile { return workspaceDir; } - - /** - Get the MSA file name with absolute path - */ - public synchronized static File getMsaFile(ModuleIdentification moduleId) throws Exception { - File msaFile = null; - // - // TBD. Do only when package is null. - // - Iterator iter = packageList.iterator(); - while (iter.hasNext()) { - PackageIdentification packageId = (PackageIdentification)iter.next(); - Spd spd = spdTable.get(packageId); - msaFile = spd.getModuleFile(moduleId); - if (msaFile != null ) { - break ; - } - } - if (msaFile == null){ - throw new Exception("Can not find Module [" + moduleId.getName() + "] in any packages in this workspace."); - } - else { - return msaFile; - } - } - public synchronized static PackageIdentification getPackageForModule(ModuleIdentification moduleId) { // // If package already defined in module // - if (moduleId.getPackage() != null) { - return moduleId.getPackage(); + if (moduleId.getPackageId() != null) { + return moduleId.getPackageId(); } - PackageIdentification packageId = null; - Iterator iter = packageList.iterator(); - while (iter.hasNext()) { - packageId = (PackageIdentification)iter.next(); - - Spd spd = spdTable.get(packageId); - if (spd.getModuleFile(moduleId) != null ) { - moduleId.setPackage(packageId); - break ; - } - } - if (packageId == null){ - return null; - } - else { - return packageId; - } - } - - /** - Difference between build and parse: ToolChain and Target - **/ - public synchronized static boolean isModuleBuilt(FpdModuleIdentification moduleId) { - return builtModules.contains(moduleId); - } - - public synchronized static void registerBuiltModule(FpdModuleIdentification fpdModuleId) { - builtModules.add(fpdModuleId); - } - - - public synchronized static void registerFpdModuleSA(FpdModuleIdentification fpdModuleId, Map doc) throws Exception{ - Map result = new HashMap(); - Set keySet = doc.keySet(); - Iterator iter = keySet.iterator(); - while (iter.hasNext()){ - String key = (String)iter.next(); - XmlObject item = cloneXmlObject(doc.get(key), true); - result.put(key, item); - } - fpdModuleSA.put(fpdModuleId, result); - } - - /** - Query overrided module surface area information. If current is Package - or Platform build, also include the information from FPD file. - -

Note that surface area parsing is incremental. That means the method will - only parse the MSA and MBD files if necessary.

- - @param moduleName the base name of the module - @return the overrided module surface area information - @throws Exception - MSA or MBD is not valid - **/ - public synchronized static Map getDoc(FpdModuleIdentification fpdModuleId) throws Exception { - if (parsedModules.containsKey(fpdModuleId)) { - return parsedModules.get(fpdModuleId); - } - Map doc = new HashMap(); - ModuleIdentification moduleId = fpdModuleId.getModule(); - // - // First part: get the MSA files info - // - doc = getNativeMsa(moduleId); - - // - // Second part: put build options - // - doc.put("BuildOptions", fpdBuildOptions); - - // - // Third part: get Module info from FPD, such as Library instances, PCDs - // - if (fpdModuleSA.containsKey(fpdModuleId)){ - // - // merge module info in FPD to final Doc - // For Library Module, do nothing here - // - doc.putAll(fpdModuleSA.get(fpdModuleId)); - } - parsedModules.put(fpdModuleId, doc); - return doc; - } - - public synchronized static Map getDoc(ModuleIdentification moduleId, String arch) throws Exception { - FpdModuleIdentification fpdModuleId = new FpdModuleIdentification(moduleId, arch); - return getDoc(fpdModuleId); - } - /** - Query the native MSA information with module base name. - -

Note that MSA parsing is incremental. That means the method will - only to parse the MSA files when never parsed before.

- - @param moduleName the base name of the module - @return the native MSA information - @throws Exception - MSA file is not valid - **/ - public synchronized static Map getNativeMsa(ModuleIdentification moduleId) throws Exception { - if (nativeMsa.containsKey(moduleId)) { - return nativeMsa.get(moduleId); - } - File msaFile = getMsaFile(moduleId); - Map msaMap = getNativeMsa(msaFile); - nativeMsa.put(moduleId, msaMap); - return msaMap; - } - - public synchronized static Map getNativeMsa(File msaFile) throws Exception { - - try { - ModuleSurfaceAreaDocument doc = (ModuleSurfaceAreaDocument)XmlObject.Factory.parse(msaFile); - // - // Validate File if they accord with XML Schema - // -// if ( ! doc.validate()){ -// throw new Exception("Module Surface Area file [" + msaFile.getPath() + "] is invalid."); -// } - // - // parse MSA file - // - ModuleSurfaceArea msa= doc.getModuleSurfaceArea(); - Map msaMap = new HashMap(); - msaMap.put("ModuleSurfaceArea", msa); - msaMap.put("MsaHeader", cloneXmlObject(msa.getMsaHeader(), true)); - msaMap.put("LibraryClassDefinitions", cloneXmlObject(msa.getLibraryClassDefinitions(), true)); - msaMap.put("SourceFiles", cloneXmlObject(msa.getSourceFiles(), true)); - msaMap.put("PackageDependencies", cloneXmlObject(msa.getPackageDependencies(), true)); - msaMap.put("Protocols", cloneXmlObject(msa.getProtocols(), true)); - msaMap.put("PPIs", cloneXmlObject(msa.getPPIs(), true)); - msaMap.put("Guids", cloneXmlObject(msa.getGuids(), true)); - msaMap.put("Externs", cloneXmlObject(msa.getExterns(), true)); - return msaMap; - } - catch (Exception ex){ - throw new Exception(ex.getMessage()); - } - } - - public static Map getFpdBuildOptions() { - Map map = new HashMap(); - map.put("BuildOptions", fpdBuildOptions); - return map; - } - - public static void setFpdBuildOptions(XmlObject fpdBuildOptions) throws Exception{ - WorkspaceProfile.fpdBuildOptions = cloneXmlObject(fpdBuildOptions, true); - } - - public static XmlObject getFpdDynamicPcds() { - return fpdDynamicPcds; - } - - public static void setFpdDynamicPcds(XmlObject fpdDynamicPcds) { - WorkspaceProfile.fpdDynamicPcds = fpdDynamicPcds; - } - - ////////////////////////////////////////////// - ////////////////////////////////////////////// - - public static Set getModules(PackageIdentification packageId){ - Spd spd = spdTable.get(packageId); - if (spd == null ) { - Set dummy = new HashSet(); - return dummy; - } - else { - return spd.getModules(); - } - } - - public synchronized static PlatformIdentification getPlatform(String name) throws Exception { - Iterator iter = platformList.iterator(); - while(iter.hasNext()){ - PlatformIdentification platformId = (PlatformIdentification)iter.next(); - if (platformId.getName().equalsIgnoreCase(name)) { - WorkspaceProfile.log.info("Platform: " + platformId + platformId.getFpdFile()); - return platformId; - } - } - throw new Exception("Can not find platform [" + name + "] in the current workspace. "); - } - - public synchronized static File getPackageFile(PackageIdentification packageId) throws Exception { - Iterator iter = packageList.iterator(); - while(iter.hasNext()){ - PackageIdentification packageItem = (PackageIdentification)iter.next(); - if (packageItem.equals(packageId)) { - packageId.setName(packageItem.getName()); - return packageItem.getSpdFile(); - } - } - throw new Exception("Can not find " + packageId + " in the current workspace. "); - } - - public synchronized static File getModuleFile(ModuleIdentification moduleId) throws Exception { - PackageIdentification packageId = getPackageForModule(moduleId); - moduleId.setPackage(packageId); - Spd spd = spdTable.get(packageId); - return spd.getModuleFile(moduleId); + return null; } // // expanded by FrameworkWizard // - public synchronized static XmlObject getModuleXmlObject(ModuleIdentification moduleId) throws Exception { - PackageIdentification packageId = getPackageForModule(moduleId); - moduleId.setPackage(packageId); - Spd spd = spdTable.get(packageId); - return spd.msaDocMap.get(moduleId); + public synchronized static ModuleSurfaceAreaDocument.ModuleSurfaceArea getModuleXmlObject(ModuleIdentification moduleId) { + return GlobalData.openingModuleList.getModuleSurfaceAreaFromId(moduleId); } - public synchronized static XmlObject getPackageXmlObject(PackageIdentification packageId) { - Spd spd = spdTable.get(packageId); - if (spd != null){ - return spd.spdDocMap.get("PackageSurfaceArea"); - } - return null; + public synchronized static PackageSurfaceAreaDocument.PackageSurfaceArea getPackageXmlObject(PackageIdentification packageId) { + return GlobalData.openingPackageList.getPackageSurfaceAreaFromId(packageId); } - public synchronized static Set getPackageList(){ - return packageList; - } - ///// remove!! - private static XmlObject cloneXmlObject(XmlObject object, boolean deep) throws Exception { - if ( object == null) { - return null; - } - XmlObject result = null; - try { - result = XmlObject.Factory.parse(object.getDomNode() - .cloneNode(deep)); - } catch (Exception ex) { - throw new Exception(ex.getMessage()); - } - return result; - } - public static ModuleIdentification getModuleId(String key){ // // Get ModuleGuid, ModuleVersion, PackageGuid, PackageVersion, Arch into string array. // String[] keyPart = key.split(" "); - Set spi = WorkspaceProfile.getPackageList(); - Iterator ispi = spi.iterator(); + + Iterator iMiList = GlobalData.vModuleList.iterator(); - while(ispi.hasNext()) { - PackageIdentification pi = (PackageIdentification)ispi.next(); - if ( !pi.getGuid().equalsIgnoreCase(keyPart[2])){ + while (iMiList.hasNext()) { + ModuleIdentification mi = iMiList.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; + } + } - continue; - } - if (keyPart[3] != null && keyPart[3].length() > 0 && !keyPart[3].equals("null")){ - if(!pi.getVersion().equals(keyPart[3])){ + PackageIdentification pi = mi.getPackageId(); + if ( !pi.getGuid().equalsIgnoreCase(keyPart[2])){ continue; } - } - Set smi = WorkspaceProfile.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; - } + if (keyPart[3] != null && keyPart[3].length() > 0 && !keyPart[3].equals("null")){ + if(!pi.getVersion().equals(keyPart[3])){ + continue; } - - return mi; } + return mi; } } + return null; } @@ -499,10 +139,4 @@ public class WorkspaceProfile { } -final class KeyComparator implements Comparator { - public int compare(String x, String y) { - return x.compareToIgnoreCase(y); - } - -} diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/FpdModuleIdentification.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/FpdModuleIdentification.java deleted file mode 100644 index b30c322648..0000000000 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/FpdModuleIdentification.java +++ /dev/null @@ -1,104 +0,0 @@ -/** @file - Java class FpdModuleIdentification is used to present a module identification - from BaseName, GUID, Version, PackageName, and ARCH. - -Copyright (c) 2006, Intel Corporation -All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -**/ -package org.tianocore.frameworkwizard.platform.ui.id; - - -/** - This class is used to identify a module with BaseName, GUID, Version, PackageName - and ARCH. - - @since GenBuild 1.0 - **/ -public class FpdModuleIdentification { - - private String arch; - - private String fvBinding = "NULL"; // Optional - - private String sequence = "0"; // Optional - - private ModuleIdentification module; - - public FpdModuleIdentification(String arch, String fvBinding, String sequence, ModuleIdentification module){ - this.arch = arch; - this.fvBinding = fvBinding; - this.sequence = sequence; - this.module = module; - } - - public FpdModuleIdentification(ModuleIdentification module, String arch){ - this.arch = arch; - this.module = module; - } - /** - Override java.lang.Object#equals. - -

Currently, use BaseName and ARCH to identify a module. It will enhance - in the next version.

- - @see java.lang.Object#equals(java.lang.Object) - **/ - public boolean equals(Object obj) { - if (obj instanceof FpdModuleIdentification) { - FpdModuleIdentification moduleIdObj = (FpdModuleIdentification)obj; - if ( module.equals(moduleIdObj.module) && arch.equalsIgnoreCase(moduleIdObj.arch)) { - return true; - } - return false; - } - else { - return super.equals(obj); - } - } - - public void setFvBinding(String fvBinding) { - this.fvBinding = fvBinding; - } - - public void setSequence(String sequence) { - this.sequence = sequence; - } - - public String toString(){ - return arch + ":" + module; - } - - public String getFvBinding() { - return fvBinding; - } - - public String getSequence() { - return sequence; - } - - public ModuleIdentification getModule() { - return module; - } - - public void setModule(ModuleIdentification module) { - this.module = module; - } - - public String getArch() { - return arch; - } - - public void setArch(String arch) { - this.arch = arch; - } - - public int hashCode(){ - return module.hashCode(); - } -} diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/Identification.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/Identification.java deleted file mode 100644 index f22c1241d4..0000000000 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/Identification.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.tianocore.frameworkwizard.platform.ui.id; - -public class Identification { - - String name; - - String guid; - - String version; - - String type; // Optional - - Identification(String name, String guid, String version){ - this.name = name; - this.guid = guid; - this.version = version; - } - - public boolean equals(Object obj) { - if (obj instanceof Identification) { - Identification id = (Identification)obj; - if ( guid.equalsIgnoreCase(id.guid)) { - if (version == null || id.version == null) { - updateName(name, id.name); - return true; - } - else if (version.trim().equalsIgnoreCase("") || id.version.trim().equalsIgnoreCase("")){ - return true; - } - else if (version.equalsIgnoreCase(id.version)) { - return true; - } - } - return false; - } - else { - return super.equals(obj); - } - } - - void updateName(String name1, String name2) { - if (name1 == null) { - name1 = name2; - } - if (name2 == null) { - name2 = name1; - } - } - - public void setName(String name) { - this.name = name; - } - - public void setGuid(String guid) { - this.guid = guid; - } - - public void setVersion(String version) { - this.version = version; - } - - public String getGuid() { - return guid; - } - - public String getName() { - return name; - } - - public String getVersion() { - return version; - } - - public int hashCode(){ - return guid.hashCode(); - } -} diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/ModuleIdentification.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/ModuleIdentification.java deleted file mode 100644 index 913a65a45e..0000000000 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/ModuleIdentification.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.tianocore.frameworkwizard.platform.ui.id; - -import java.io.File; - -import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile; - -public class ModuleIdentification extends Identification { - - private PackageIdentification packageId; - - private File msaFile; - - private String moduleType; - - private boolean isLibrary = false; - - public boolean isLibrary() { - return isLibrary; - } - - public void setLibrary(boolean isLibrary) { - this.isLibrary = isLibrary; - } - - public File getMsaFile() throws Exception{ - prepareMsaFile(); - return msaFile; - } - - public String getModuleRelativePath() throws Exception{ - prepareMsaFile(); - return msaFile.getParent().substring(packageId.getPackageDir().length() + 1); - } - - private void prepareMsaFile()throws Exception{ - if (msaFile == null) { - msaFile = WorkspaceProfile.getModuleFile(this); - } - } - public void setMsaFile(File msaFile) { - this.msaFile = msaFile; - } - - public ModuleIdentification(String name, String guid, String version){ - super(name, guid, version); - } - - public ModuleIdentification(String name, String guid, String version, PackageIdentification packageId){ - super(name, guid, version); - this.packageId = packageId; - } - - public boolean equals(Object obj) { - if (obj instanceof ModuleIdentification) { - ModuleIdentification id = (ModuleIdentification)obj; - if (guid.equals(id.getGuid()) && packageId.equals(id.getPackage())) { - if (version == null || id.version == null) { - updateName(name, id.name); - return true; - } - else if (version.trim().equalsIgnoreCase("") || id.version.trim().equalsIgnoreCase("")){ - updateName(name, id.name); - return true; - } - else if (version.equalsIgnoreCase(id.version)) { - updateName(name, id.name); - return true; - } - } - return false; - } - else { - return super.equals(obj); - } - } - - public String toString(){ - if (version == null || version.trim().equalsIgnoreCase("")) { - return "Module [" + name + "] in " + packageId; - } - else { - return "Module [" + name + " " + version + "] in " + packageId; - } - } - - public void setPackage(PackageIdentification packageId) { - this.packageId = packageId; - } - - public PackageIdentification getPackage() { - return packageId; - } - - public String getModuleType() { - return moduleType; - } - - public void setModuleType(String moduleType) { - this.moduleType = moduleType; - } -} diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/PackageIdentification.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/PackageIdentification.java deleted file mode 100644 index 2f42e6f836..0000000000 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/PackageIdentification.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.tianocore.frameworkwizard.platform.ui.id; -import java.io.File; - -import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile; - -public class PackageIdentification extends Identification{ - - // - // It is optional - // - private File spdFile; - - public PackageIdentification(String name, String guid, String version){ - super(name, guid, version); - } - - public PackageIdentification(String name, String guid, String version, String spdFilename){ - super(name, guid, version); - this.spdFile = new File(spdFilename); - } - - public PackageIdentification(String name, String guid, String version, File spdFile){ - super(name, guid, version); - this.spdFile = spdFile; - } - - public void setSpdFile(File spdFile) { - this.spdFile = spdFile; - } - - public File getSpdFile() { - return spdFile; - } - - public String toString(){ - if (version == null || version.trim().equalsIgnoreCase("")) { - return "package [" + name + "]"; - } - else { - return "package [" + name + " " + version + "]"; - } - } - - public String getPackageDir()throws Exception{ - prepareSpdFile(); - return spdFile.getParent(); - } - - public String getPackageRelativeDir()throws Exception{ - prepareSpdFile(); - return spdFile.getParent().substring(WorkspaceProfile.getWorkspacePath().length() + 1); - } - - private void prepareSpdFile() throws Exception{ - if (spdFile == null) { - spdFile = WorkspaceProfile.getPackageFile(this); - } - } -} diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/PlatformIdentification.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/PlatformIdentification.java deleted file mode 100644 index d01c475e76..0000000000 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/id/PlatformIdentification.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.tianocore.frameworkwizard.platform.ui.id; -import java.io.File; - -import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile; - -public class PlatformIdentification extends Identification{ - - private File fpdFile; - - public PlatformIdentification(String name, String guid, String version){ - super(name, guid, version); - } - - public PlatformIdentification(String name, String guid, String version, String fpdFilename){ - super(name, guid, version); - this.fpdFile = new File(fpdFilename); - } - - public PlatformIdentification(String name, String guid, String version, File fpdFile){ - super(name, guid, version); - this.fpdFile = fpdFile; - } - - public String toString(){ - return "Platform " + name + "["+guid+"]"; - } - - public void setFpdFile(File fpdFile) { - this.fpdFile = fpdFile; - } - - public File getFpdFile() { - return fpdFile; - } - - public String getPlatformRelativeDir(){ - return fpdFile.getParent().substring(WorkspaceProfile.getWorkspacePath().length()); - } -} \ No newline at end of file