package net.sf.jasperreports.engine;

public interface JRVariable extends JRCloneable {
  public static final String REPORT_COUNT = "REPORT_COUNT";
  
  public static final String PAGE_COUNT = "PAGE_COUNT";
  
  public static final String COLUMN_COUNT = "COLUMN_COUNT";
  
  public static final String PAGE_NUMBER = "PAGE_NUMBER";
  
  public static final String COLUMN_NUMBER = "COLUMN_NUMBER";
  
  public static final byte RESET_TYPE_REPORT = 1;
  
  public static final byte RESET_TYPE_PAGE = 2;
  
  public static final byte RESET_TYPE_COLUMN = 3;
  
  public static final byte RESET_TYPE_GROUP = 4;
  
  public static final byte RESET_TYPE_NONE = 5;
  
  public static final byte CALCULATION_NOTHING = 0;
  
  public static final byte CALCULATION_COUNT = 1;
  
  public static final byte CALCULATION_SUM = 2;
  
  public static final byte CALCULATION_AVERAGE = 3;
  
  public static final byte CALCULATION_LOWEST = 4;
  
  public static final byte CALCULATION_HIGHEST = 5;
  
  public static final byte CALCULATION_STANDARD_DEVIATION = 6;
  
  public static final byte CALCULATION_VARIANCE = 7;
  
  public static final byte CALCULATION_SYSTEM = 8;
  
  public static final byte CALCULATION_FIRST = 9;
  
  public static final byte CALCULATION_DISTINCT_COUNT = 10;
  
  String getName();
  
  Class getValueClass();
  
  String getValueClassName();
  
  Class getIncrementerFactoryClass();
  
  String getIncrementerFactoryClassName();
  
  byte getResetType();
  
  byte getIncrementType();
  
  byte getCalculation();
  
  boolean isSystemDefined();
  
  JRExpression getExpression();
  
  JRExpression getInitialValueExpression();
  
  JRGroup getResetGroup();
  
  JRGroup getIncrementGroup();
}
