IDEMPIERE-146 Performance: Report Engine always read all data into memory. Make print element serializable to prepare for future virtualization of report data.
This commit is contained in:
parent
f16c6291db
commit
a6e7659595
|
@ -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<Object> nodes)
|
||||
public PrintData (Properties ctx, String name, ArrayList<Serializable> 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<ArrayList<Object>> m_rows = new ArrayList<ArrayList<Object>>();
|
||||
private ArrayList<ArrayList<Serializable>> m_rows = new ArrayList<ArrayList<Serializable>>();
|
||||
/** Current Row Data Structure elements */
|
||||
private ArrayList<Object> m_nodes = null;
|
||||
private ArrayList<Serializable> 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<Object>();
|
||||
m_nodes = new ArrayList<Serializable>();
|
||||
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<Object>)m_rows.get(m_row);
|
||||
m_nodes = m_rows.get(m_row);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue