From a6e765959595e75fc9b58494cbbd51bce9f9454b Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Wed, 20 Jun 2012 16:11:27 +0800 Subject: [PATCH] IDEMPIERE-146 Performance: Report Engine always read all data into memory. Make print element serializable to prepare for future virtualization of report data. --- .../src/org/compiere/print/PrintData.java | 10 +++++----- .../src/org/compiere/print/PrintDataElement.java | 15 +++++++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/org.adempiere.base/src/org/compiere/print/PrintData.java b/org.adempiere.base/src/org/compiere/print/PrintData.java index 2de4199e21..6375e4b945 100644 --- a/org.adempiere.base/src/org/compiere/print/PrintData.java +++ b/org.adempiere.base/src/org/compiere/print/PrintData.java @@ -75,7 +75,7 @@ public class PrintData implements Serializable * @param name data element name * @param nodes ArrayList with nodes (content not checked) */ - public PrintData (Properties ctx, String name, ArrayList nodes) + public PrintData (Properties ctx, String name, ArrayList nodes) { if (name == null) throw new IllegalArgumentException("Name cannot be null"); @@ -90,9 +90,9 @@ public class PrintData implements Serializable /** Data Structure Name */ private String m_name; /** Data Structure rows */ - private ArrayList> m_rows = new ArrayList>(); + private ArrayList> m_rows = new ArrayList>(); /** Current Row Data Structure elements */ - private ArrayList m_nodes = null; + private ArrayList m_nodes = null; /** Current Row */ private int m_row = -1; /** List of Function Rows */ @@ -246,7 +246,7 @@ public class PrintData implements Serializable */ public void addRow (boolean functionRow, int levelNo) { - m_nodes = new ArrayList(); + m_nodes = new ArrayList(); m_row = m_rows.size(); m_rows.add (m_nodes); if (functionRow) @@ -265,7 +265,7 @@ public class PrintData implements Serializable if (row < 0 || row >= m_rows.size()) return false; m_row = row; - m_nodes = (ArrayList)m_rows.get(m_row); + m_nodes = m_rows.get(m_row); return true; } diff --git a/org.adempiere.base/src/org/compiere/print/PrintDataElement.java b/org.adempiere.base/src/org/compiere/print/PrintDataElement.java index ae2bf5d13b..8b641c0e16 100644 --- a/org.adempiere.base/src/org/compiere/print/PrintDataElement.java +++ b/org.adempiere.base/src/org/compiere/print/PrintDataElement.java @@ -16,6 +16,7 @@ *****************************************************************************/ package org.compiere.print; +import java.io.Serializable; import java.math.BigDecimal; import java.sql.Timestamp; @@ -32,8 +33,14 @@ import org.compiere.util.NamePair; * @author Jorg Janke * @version $Id: PrintDataElement.java,v 1.2 2006/07/30 00:53:02 jjanke Exp $ */ -public class PrintDataElement +public class PrintDataElement implements Serializable { + /** + * generated serialize id + */ + private static final long serialVersionUID = -4823568539698752659L; + + /** * Print Data Element Constructor * @param columnName name @@ -42,7 +49,7 @@ public class PrintDataElement * @param isPKey is primary key * @param isPageBreak if true force page break */ - public PrintDataElement (String columnName, Object value, int displayType, boolean isPKey, boolean isPageBreak, String format) + public PrintDataElement (String columnName, Serializable value, int displayType, boolean isPKey, boolean isPageBreak, String format) { if (columnName == null) throw new IllegalArgumentException("PrintDataElement - Name cannot be null"); @@ -61,7 +68,7 @@ public class PrintDataElement * @param pattern Number/date format pattern * @param displayType optional displayType */ - public PrintDataElement(String columnName, Object value, int displayType, String pattern) + public PrintDataElement(String columnName, Serializable value, int displayType, String pattern) { this (columnName, value, displayType, false, false, pattern); } // PrintDataElement @@ -69,7 +76,7 @@ public class PrintDataElement /** Data Name */ private String m_columnName; /** Data Value */ - private Object m_value; + private Serializable m_value; /** Display Type */ private int m_displayType; /** Is Primary Key */