package net.sf.jasperreports.crosstabs;

import net.sf.jasperreports.engine.JRElement;
import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.JRVariable;

public interface JRCrosstab extends JRElement {
  public static final int DEFAULT_COLUMN_BREAK_OFFSET = 10;
  
  public static final String VARIABLE_ROW_COUNT = "ROW_COUNT";
  
  public static final String VARIABLE_COLUMN_COUNT = "COLUMN_COUNT";
  
  public static final byte RUN_DIRECTION_LTR = 0;
  
  public static final byte RUN_DIRECTION_RTL = 1;
  
  int getId();
  
  JRCrosstabDataset getDataset();
  
  JRCrosstabRowGroup[] getRowGroups();
  
  JRCrosstabColumnGroup[] getColumnGroups();
  
  JRCrosstabMeasure[] getMeasures();
  
  int getColumnBreakOffset();
  
  boolean isRepeatColumnHeaders();
  
  boolean isRepeatRowHeaders();
  
  JRCrosstabCell[][] getCells();
  
  JRCrosstabParameter[] getParameters();
  
  JRExpression getParametersMapExpression();
  
  JRCellContents getWhenNoDataCell();
  
  JRElement getElementByKey(String paramString);
  
  JRCellContents getHeaderCell();
  
  JRVariable[] getVariables();
  
  byte getRunDirection();
  
  void setRunDirection(byte paramByte);
}
