+++ /dev/null
-/** @file\r
-\r
- The file is used to show detailed information of one of find results\r
-\r
- Copyright (c) 2006, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- **/\r
-package org.tianocore.frameworkwizard.common.find;\r
-\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ComponentEvent;\r
-import java.awt.event.WindowEvent;\r
-import java.util.Vector;\r
-\r
-import javax.swing.JButton;\r
-import javax.swing.JFrame;\r
-import javax.swing.JPanel;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JTextArea;\r
-\r
-import org.tianocore.DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions;\r
-import org.tianocore.DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions.PcdBuildData.SkuInfo;\r
-import org.tianocore.DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions.PcdBuildData;\r
-import org.tianocore.FrameworkModulesDocument.FrameworkModules;\r
-import org.tianocore.LibrariesDocument.Libraries;\r
-import org.tianocore.LibrariesDocument.Libraries.Instance;\r
-import org.tianocore.LibraryClassDocument.LibraryClass;\r
-import org.tianocore.ModuleSADocument.ModuleSA;\r
-import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
-import org.tianocore.PackageSurfaceAreaDocument.PackageSurfaceArea;\r
-import org.tianocore.PcdBuildDefinitionDocument.PcdBuildDefinition;\r
-import org.tianocore.PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData;\r
-import org.tianocore.PcdCodedDocument.PcdCoded;\r
-import org.tianocore.PlatformSurfaceAreaDocument.PlatformSurfaceArea;\r
-import org.tianocore.frameworkwizard.common.DataType;\r
-import org.tianocore.frameworkwizard.common.GlobalData;\r
-import org.tianocore.frameworkwizard.common.Tools;\r
-import org.tianocore.frameworkwizard.common.ui.IFrame;\r
-import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
-import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
-import org.tianocore.frameworkwizard.workspace.Workspace;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
-\r
-public class FindResultDetailInfo extends IFrame {\r
-\r
- ///\r
- /// Define class Serial Version UID\r
- ///\r
- private static final long serialVersionUID = -4888295869041881282L;\r
-\r
- private JPanel jContentPane = null;\r
-\r
- private JScrollPane jScrollPane = null;\r
-\r
- private JTextArea jTextArea = null;\r
-\r
- private JButton jButtonClose = null;\r
-\r
- //\r
- // Not for UI\r
- //\r
- private static String TAB = " ";\r
-\r
- private String reportContent = "";\r
-\r
- private WorkspaceTools wt = new WorkspaceTools();\r
-\r
- /**\r
- * This method initializes jScrollPane \r
- * \r
- * @return javax.swing.JScrollPane \r
- */\r
- private JScrollPane getJScrollPane() {\r
- if (jScrollPane == null) {\r
- jScrollPane = new JScrollPane();\r
- jScrollPane.setBounds(new java.awt.Rectangle(5, 5, 535, 280));\r
- jScrollPane.setPreferredSize(new java.awt.Dimension(535, 280));\r
- jScrollPane.setViewportView(getJTextArea());\r
- }\r
- return jScrollPane;\r
- }\r
-\r
- /**\r
- * This method initializes jTextArea \r
- * \r
- * @return javax.swing.JTextArea \r
- */\r
- private JTextArea getJTextArea() {\r
- if (jTextArea == null) {\r
- jTextArea = new JTextArea();\r
- jTextArea.setEditable(false);\r
- }\r
- return jTextArea;\r
- }\r
-\r
- /**\r
- * This method initializes jButtonClose \r
- * \r
- * @return javax.swing.JButton \r
- */\r
- private JButton getJButtonClose() {\r
- if (jButtonClose == null) {\r
- jButtonClose = new JButton();\r
- jButtonClose.setBounds(new java.awt.Rectangle(240, 290, 80, 20));\r
- jButtonClose.setPreferredSize(new java.awt.Dimension(80, 20));\r
- jButtonClose.addActionListener(this);\r
- jButtonClose.setText("Close");\r
- }\r
- return jButtonClose;\r
- }\r
-\r
- /**\r
- \r
- @param lci\r
- \r
- **/\r
- public FindResultDetailInfo(FindResultId frid) {\r
- super();\r
- init();\r
- this.setTitle(frid.getName());\r
- this.jTextArea.setText(createReport(frid));\r
- this.jTextArea.setSelectionStart(0);\r
- this.jTextArea.setSelectionEnd(0);\r
- }\r
-\r
- /**\r
- \r
- @param lci\r
- \r
- **/\r
- public FindResultDetailInfo(PcdFindResultId frid) {\r
- super();\r
- init();\r
- this.setTitle(frid.getName());\r
- this.jTextArea.setText(createReport(frid));\r
- this.jTextArea.setSelectionStart(0);\r
- this.jTextArea.setSelectionEnd(0);\r
- }\r
-\r
- /**\r
- Create detailed information report for pcd\r
- \r
- @param frid\r
- @return\r
- \r
- **/\r
- private String createReport(PcdFindResultId frid) {\r
- String name = frid.getName();\r
-\r
- //\r
- // Write Pcd Name\r
- //\r
- writeReportLn("PCD C Name: " + name);\r
-\r
- //\r
- // Wrtie Declared package\r
- //\r
- writeReportLn("Declared in Package: " + frid.getDeclaredBy().getName() + " ("\r
- + Tools.getRelativePath(frid.getDeclaredBy().getPath(), Workspace.getCurrentWorkspace()) + ")");\r
-\r
- //\r
- // Write Token Space\r
- //\r
- writeReportLn("Token Space: " + frid.getTokenSpaceGuidCName());\r
-\r
- //\r
- // Write Token\r
- //\r
- writeReportLn("Token: " + frid.getToken());\r
-\r
- //\r
- // Write Datum Type\r
- //\r
- writeReportLn("Datum Type: " + frid.getDatumType());\r
-\r
- //\r
- // Write Default Value\r
- //\r
- writeReportLn("Default Value: " + frid.getValue());\r
-\r
- //\r
- // Write Usages\r
- //\r
- writeReportLn("Valid Usages: " + frid.getUsage());\r
-\r
- //\r
- // Write Help Text\r
- //\r
- writeReportLn("Help Text: ");\r
- writeReportLn(TAB + frid.getHelp());\r
-\r
- //\r
- // Write an Empty Line\r
- //\r
- writeReportLn("");\r
-\r
- //\r
- // Wriet all modules which use this PCD:\r
- //\r
- writeReportLn("Modules Coded to Use This PCD: ");\r
-\r
- Vector<ModuleIdentification> vModules = frid.getConsumedModules();\r
- if (vModules != null) {\r
- for (int index = 0; index < vModules.size(); index++) {\r
- //\r
- // Write Module Name and Path\r
- //\r
- writeReportLn(TAB + vModules.get(index).getName() + " ("\r
- + Tools.getRelativePath(vModules.get(index).getPath(), Workspace.getCurrentWorkspace())\r
- + ")");\r
-\r
- //\r
- // Write Module Pcd Info\r
- //\r
- ModuleSurfaceArea msa = GlobalData.openingModuleList.getModuleSurfaceAreaFromId(vModules.get(index));\r
- if (msa != null) {\r
- PcdCoded pcdCoded = msa.getPcdCoded();\r
- if (pcdCoded != null) {\r
- for (int indexOfPcd = 0; indexOfPcd < pcdCoded.getPcdEntryList().size(); indexOfPcd++) {\r
- if (pcdCoded.getPcdEntryList().get(indexOfPcd).getCName().equals(name)) {\r
- //\r
- // Write Pcd Item Type\r
- //\r
- writeReportLn(TAB + TAB + "PcdItemType: "\r
- + pcdCoded.getPcdEntryList().get(indexOfPcd).getPcdItemType().toString());\r
-\r
- //\r
- // Write Help Text\r
- //\r
- writeReportLn(TAB + TAB + "Help Text: ");\r
- writeReportLn(TAB + TAB + TAB\r
- + pcdCoded.getPcdEntryList().get(indexOfPcd).getHelpText());\r
- }\r
- }\r
- }\r
- }\r
-\r
- //\r
- // Write an Empty Line\r
- //\r
- writeReportLn("");\r
- }\r
- }\r
-\r
- //\r
- // Write an Empty Line\r
- //\r
- writeReportLn("");\r
-\r
- //\r
- // Write All Platforms Specifing this PCD\r
- //\r
- writeReportLn("Platforms Specifing this PCD: ");\r
-\r
- for (int index = 0; index < GlobalData.openingPlatformList.size(); index++) {\r
- PlatformSurfaceArea fpd = GlobalData.openingPlatformList.getOpeningPlatformByIndex(index).getXmlFpd();\r
- PlatformIdentification pid = GlobalData.openingPlatformList.getOpeningPlatformByIndex(index).getId();\r
-\r
- String tmp = "";\r
- //\r
- // Get Non-Dynamic Pcd\r
- //\r
- FrameworkModules fm = fpd.getFrameworkModules();\r
- if (fm != null) {\r
- for (int indexOfModuleSa = 0; indexOfModuleSa < fm.getModuleSAList().size(); indexOfModuleSa++) {\r
- ModuleSA msa = fm.getModuleSAList().get(indexOfModuleSa);\r
- if (msa != null) {\r
- PcdBuildDefinition p = msa.getPcdBuildDefinition();\r
- if (p != null) {\r
- if (p.getPcdDataList() != null) {\r
-\r
- for (int indexOfPcd = 0; indexOfPcd < p.getPcdDataList().size(); indexOfPcd++) {\r
- PcdData pd = p.getPcdDataList().get(indexOfPcd);\r
- //\r
- // Find this PCD\r
- //\r
- if (pd.getCName().equals(name)) {\r
- //\r
- // Write Module Sa Info\r
- //\r
- ModuleIdentification moduleSaId = GlobalData\r
- .findModuleId(\r
- msa.getModuleGuid(),\r
- msa\r
- .getModuleVersion(),\r
- msa.getPackageGuid(),\r
- msa\r
- .getPackageVersion());\r
- tmp = tmp\r
- + TAB\r
- + TAB\r
- + "Module: "\r
- + moduleSaId.getName()\r
- + " ("\r
- + Tools.getRelativePath(moduleSaId.getPath(),\r
- Workspace.getCurrentWorkspace()) + ")"\r
- + DataType.UNIX_LINE_SEPARATOR;\r
- tmp = tmp + TAB + TAB + TAB + "Implementation: " + pd.getItemType().toString()\r
- + DataType.UNIX_LINE_SEPARATOR;\r
- tmp = tmp + TAB + TAB + TAB + "Specified / Implementation Value: "\r
- + pd.getValue() + DataType.UNIX_LINE_SEPARATOR;\r
- tmp = tmp + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
- //\r
- // Get Dynamic Pcd\r
- //\r
- DynamicPcdBuildDefinitions dpbd = fpd.getDynamicPcdBuildDefinitions();\r
- if (dpbd != null) {\r
- for (int indexOfDpbd = 0; indexOfDpbd < dpbd.getPcdBuildDataList().size(); indexOfDpbd++) {\r
- PcdBuildData pbd = dpbd.getPcdBuildDataList().get(indexOfDpbd);\r
- if (pbd != null) {\r
- if (pbd.getCName().equals(name)) {\r
- //\r
- // Write Dynamic Pcd Build Definition\r
- //\r
- tmp = tmp + TAB + TAB + "Dynamic Pcd Build Definition: " + DataType.UNIX_LINE_SEPARATOR;\r
- if (pbd.getSkuInfoList() != null) {\r
- for (int indexOfPcd = 0; indexOfPcd < pbd.getSkuInfoList().size(); indexOfPcd++) {\r
- SkuInfo si = pbd.getSkuInfoList().get(indexOfPcd);\r
- if (si != null) {\r
- tmp = tmp + TAB + TAB + TAB + "Sku Id: " + si.getSkuId().toString()\r
- + DataType.UNIX_LINE_SEPARATOR;\r
- tmp = tmp + TAB + TAB + TAB + "Variable Name: " + si.getVariableName()\r
- + DataType.UNIX_LINE_SEPARATOR;\r
- tmp = tmp + TAB + TAB + TAB + "Variable GUID: " + si.getVariableGuid()\r
- + DataType.UNIX_LINE_SEPARATOR;\r
- tmp = tmp + TAB + TAB + TAB + "Variable Offset: " + si.getVariableOffset()\r
- + DataType.UNIX_LINE_SEPARATOR;\r
- tmp = tmp + TAB + TAB + TAB + "Hii Default Value: " + si.getHiiDefaultValue()\r
- + DataType.UNIX_LINE_SEPARATOR;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
- //\r
- // If not empty, write this platform info\r
- //\r
- if (!Tools.isEmpty(tmp)) {\r
- tmp = TAB + "Platform: " + pid.getName() + " ("\r
- + Tools.getRelativePath(pid.getPath(), Workspace.getCurrentWorkspace()) + ")"\r
- + DataType.UNIX_LINE_SEPARATOR + tmp;\r
- this.writeReportLn(tmp);\r
- }\r
- }\r
-\r
- return reportContent;\r
- }\r
-\r
- //\r
- // Create detailed information report for library\r
- // \r
- /**\r
- \r
- @param frid\r
- @return\r
- \r
- **/\r
- private String createReport(FindResultId frid) {\r
- String tmp = "";\r
- String name = frid.getName();\r
-\r
- //\r
- // Write Class Name\r
- //\r
- writeReportLn(name);\r
-\r
- //\r
- // Write Provided Package\r
- //\r
- writeReportLn(TAB + "Provided by: " + frid.getDeclaredBy().getName() + " ("\r
- + Tools.getRelativePath(frid.getDeclaredBy().getPath(), Workspace.getCurrentWorkspace()) + ")");\r
-\r
- //\r
- // Write Header File\r
- //\r
- PackageSurfaceArea spd = GlobalData.openingPackageList.getPackageSurfaceAreaFromId(frid.getDeclaredBy());\r
- tmp = Tools.getRelativePath(frid.getDeclaredBy().getPath(), Workspace.getCurrentWorkspace());\r
- writeReportLn(TAB + "Header File: " + Tools.getFilePathOnly(tmp)\r
- + wt.getHeaderFileFromPackageByLibraryClassName(spd, name));\r
-\r
- //\r
- // Write Supported Module Types\r
- //\r
- writeReportLn(TAB + "Supported Module Types: " + Tools.convertVectorToString(frid.getModuleType()));\r
-\r
- //\r
- // Write Supported Arch\r
- //\r
- writeReportLn(TAB + "Supported Architectures: " + Tools.convertVectorToString(frid.getArch()));\r
-\r
- //\r
- // Write Help Text\r
- //\r
- writeReportLn(TAB + "Help Text: ");\r
- writeReportLn(TAB + TAB + frid.getHelp());\r
-\r
- //\r
- // Write an empty line\r
- //\r
- writeReportLn("");\r
-\r
- //\r
- // Write Instances\r
- //\r
- writeReportLn("Library Instances:");\r
-\r
- //\r
- // Write Instances One by One\r
- //\r
- for (int index = 0; index < frid.getProducedModules().size(); index++) {\r
- ModuleIdentification mid = frid.getProducedModules().get(index);\r
- ModuleSurfaceArea msa = GlobalData.openingModuleList.getModuleSurfaceAreaFromId(mid);\r
- if (msa != null) {\r
- //\r
- // Write Instance Name\r
- //\r
- if (msa.getMsaHeader() != null) {\r
- writeReportLn(TAB + msa.getMsaHeader().getModuleName());\r
- }\r
-\r
- //\r
- // Write Msa File Name\r
- //\r
- writeReportLn(TAB + TAB + "Provided by: "\r
- + Tools.getRelativePath(mid.getPath(), Workspace.getCurrentWorkspace()));\r
-\r
- //\r
- // Find the produced library class\r
- //\r
- if (msa.getLibraryClassDefinitions() != null) {\r
- for (int indexL = 0; indexL < msa.getLibraryClassDefinitions().getLibraryClassList().size(); indexL++) {\r
- LibraryClass lc = msa.getLibraryClassDefinitions().getLibraryClassList().get(indexL);\r
- if (lc.getKeyword().equals(name)) {\r
- //\r
- // Write Supported Module Types\r
- //\r
- writeReportLn(TAB + TAB + "Supported Module Types: "\r
- + Tools.convertListToString(lc.getSupModuleList()));\r
-\r
- //\r
- // Write Supported Arch\r
- //\r
- writeReportLn(TAB + TAB + "Supported Architectures: "\r
- + Tools.convertListToString(lc.getSupArchList()));\r
-\r
- //\r
- // Write Help Text\r
- //\r
- writeReportLn(TAB + TAB + "Help Text: ");\r
- writeReportLn(TAB + TAB + (lc.getHelpText() == null ? "" : lc.getHelpText()));\r
- }\r
- }\r
- }\r
-\r
- }\r
- }\r
-\r
- //\r
- // Write an empty line\r
- //\r
- writeReportLn("");\r
-\r
- //\r
- // Write all modules which consumed this library\r
- //\r
- writeReportLn("Modules Requiring " + name + ":");\r
- for (int index = 0; index < frid.getConsumedModules().size(); index++) {\r
- //\r
- // Write\r
- //\r
- writeReportLn(TAB\r
- + frid.getConsumedModules().get(index).getName()\r
- + " ("\r
- + Tools.getRelativePath(frid.getConsumedModules().get(index).getPath(),\r
- Workspace.getCurrentWorkspace()) + ")");\r
- }\r
-\r
- //\r
- // Write an empty line\r
- //\r
- writeReportLn("");\r
-\r
- //\r
- // Write platforms using the library class instances\r
- //\r
- writeReportLn("Platforms Using " + name + ":");\r
-\r
- //\r
- // Write Instances One by One as Using Platforms\r
- //\r
- for (int index = 0; index < frid.getProducedModules().size(); index++) {\r
- ModuleIdentification mid = frid.getProducedModules().get(index);\r
-\r
- //\r
- // Write Instance Name \r
- //\r
- writeReportLn(TAB + mid.getName());\r
-\r
- //\r
- // Go through each platform one by one\r
- //\r
- for (int indexOfPlatform = 0; indexOfPlatform < GlobalData.openingPlatformList.size(); indexOfPlatform++) {\r
- PlatformSurfaceArea fpd = GlobalData.openingPlatformList.getOpeningPlatformByIndex(indexOfPlatform)\r
- .getXmlFpd();\r
- PlatformIdentification pid = GlobalData.openingPlatformList.getOpeningPlatformByIndex(indexOfPlatform)\r
- .getId();\r
- Vector<ModuleIdentification> vModuleSa = new Vector<ModuleIdentification>();\r
- if (fpd != null) {\r
- FrameworkModules fm = fpd.getFrameworkModules();\r
- if (fm != null) {\r
- for (int indexOfModule = 0; indexOfModule < fm.getModuleSAList().size(); indexOfModule++) {\r
- ModuleSA msa = fm.getModuleSAList().get(indexOfModule);\r
- if (msa != null) {\r
- Libraries l = msa.getLibraries();\r
- if (l != null) {\r
- if (l.getInstanceList() != null) {\r
- for (int indexOfInstance = 0; indexOfInstance < l.getInstanceList().size(); indexOfInstance++) {\r
- Instance i = l.getInstanceList().get(indexOfInstance);\r
- if (mid.equals(i.getModuleGuid(), i.getModuleVersion(), i.getPackageGuid(),\r
- i.getPackageVersion())) {\r
- ModuleIdentification moduleSaId = GlobalData\r
- .findModuleId(\r
- msa\r
- .getModuleGuid(),\r
- msa\r
- .getModuleVersion(),\r
- msa\r
- .getPackageGuid(),\r
- msa\r
- .getPackageVersion());\r
- if (moduleSaId != null) {\r
- vModuleSa.addElement(moduleSaId);\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
- //\r
- // Get finded moduleSa in this spd\r
- //\r
- if (vModuleSa.size() > 0) {\r
- writeReportLn(TAB + TAB + pid.getName() + " ("\r
- + Tools.getRelativePath(pid.getPath(), Workspace.getCurrentWorkspace()) + ")");\r
- for (int indexOfModuleSa = 0; indexOfModuleSa < vModuleSa.size(); indexOfModuleSa++) {\r
- writeReportLn(TAB\r
- + TAB\r
- + TAB\r
- + vModuleSa.elementAt(indexOfModuleSa).getName()\r
- + " ("\r
- + Tools.getRelativePath(vModuleSa.elementAt(indexOfModuleSa).getPath(),\r
- Workspace.getCurrentWorkspace()) + ")");\r
- }\r
- }\r
- }\r
- }\r
- }\r
- writeReportLn("");\r
- }\r
-\r
- return this.reportContent;\r
- }\r
-\r
- /**\r
- * This method initializes this\r
- * \r
- * @return void\r
- */\r
- private void init() {\r
- this.setSize(550, 380);\r
- this.setContentPane(getJContentPane());\r
- this.setTitle("JFrame");\r
- this.setResizable(true);\r
- this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);\r
- this.centerWindow();\r
-\r
- }\r
-\r
- /**\r
- * This method initializes jContentPane\r
- * \r
- * @return javax.swing.JPanel\r
- */\r
- private JPanel getJContentPane() {\r
- if (jContentPane == null) {\r
- jContentPane = new JPanel();\r
- jContentPane.setLayout(null);\r
- jContentPane.setSize(new java.awt.Dimension(550, 350));\r
- jContentPane.add(getJScrollPane(), null);\r
- jContentPane.add(getJButtonClose(), null);\r
-\r
- jContentPane.setPreferredSize(new java.awt.Dimension(550, 340));\r
- }\r
- return jContentPane;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)\r
- *\r
- * Override windowClosing to popup warning message to confirm quit\r
- * \r
- */\r
- public void windowClosing(WindowEvent arg0) {\r
- this.dispose();\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
- * \r
- * Override componentResized to resize all components when frame's size is changed\r
- */\r
- public void componentResized(ComponentEvent arg0) {\r
- int intCurrentWidth = this.getJContentPane().getWidth();\r
- int intCurrentHeight = this.getJContentPane().getHeight();\r
- int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
- int intPreferredHeight = this.getJContentPane().getPreferredSize().height;\r
-\r
- Tools.resizeComponent(this.jScrollPane, intCurrentWidth, intCurrentHeight, intPreferredWidth,\r
- intPreferredHeight);\r
- Tools.centerComponent(this.jButtonClose, intCurrentWidth, intCurrentHeight, intPreferredHeight,\r
- DataType.SPACE_TO_BOTTOM_FOR_CLOSE_BUTTON);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
- *\r
- */\r
- public void actionPerformed(ActionEvent arg0) {\r
- if (arg0.getSource() == this.jButtonClose) {\r
- this.dispose();\r
- }\r
- }\r
-\r
- private void writeReportLn(String line) {\r
- this.reportContent = this.reportContent + line + DataType.LINE_SEPARATOR;\r
- }\r
-}\r