package net.sf.jasperreports.crosstabs.fill;

import net.sf.jasperreports.crosstabs.JRCellContents;
import net.sf.jasperreports.crosstabs.JRCrosstabBucket;
import net.sf.jasperreports.crosstabs.JRCrosstabGroup;
import net.sf.jasperreports.engine.JRVariable;
import net.sf.jasperreports.engine.fill.JRFillCellContents;
import net.sf.jasperreports.engine.fill.JRFillObjectFactory;
import net.sf.jasperreports.engine.fill.JRFillVariable;

public abstract class JRFillCrosstabGroup implements JRCrosstabGroup {
  protected JRCrosstabGroup parentGroup;
  
  protected JRFillCellContents header;
  
  protected JRFillCellContents totalHeader;
  
  protected JRFillVariable variable;
  
  public JRFillCrosstabGroup(JRCrosstabGroup group, JRFillObjectFactory factory) {
    factory.put(group, this);
    this.parentGroup = group;
    this.header = factory.getCell(group.getHeader());
    this.totalHeader = factory.getCell(group.getTotalHeader());
    this.variable = factory.getVariable(group.getVariable());
  }
  
  public String getName() {
    return this.parentGroup.getName();
  }
  
  public byte getTotalPosition() {
    return this.parentGroup.getTotalPosition();
  }
  
  public boolean hasTotal() {
    return this.parentGroup.hasTotal();
  }
  
  public JRCrosstabBucket getBucket() {
    return this.parentGroup.getBucket();
  }
  
  public JRCellContents getHeader() {
    return (JRCellContents)this.header;
  }
  
  public JRCellContents getTotalHeader() {
    return (JRCellContents)this.totalHeader;
  }
  
  public JRFillCellContents getFillHeader() {
    return this.header;
  }
  
  public JRFillCellContents getFillTotalHeader() {
    return this.totalHeader;
  }
  
  public JRVariable getVariable() {
    return (JRVariable)this.variable;
  }
  
  public JRFillVariable getFillVariable() {
    return this.variable;
  }
  
  public Object clone() {
    return null;
  }
}
