package jxl.biff.formula;

abstract class ParseItem {
  private ParseItem parent;
  
  private boolean volatileFunction = false;
  
  private boolean alternateCode = false;
  
  protected void setParent(ParseItem p) {
    this.parent = p;
  }
  
  protected void setVolatile() {
    this.volatileFunction = true;
    if (this.parent != null && !this.parent.isVolatile())
      this.parent.setVolatile(); 
  }
  
  final boolean isVolatile() {
    return this.volatileFunction;
  }
  
  abstract void getString(StringBuffer paramStringBuffer);
  
  abstract byte[] getBytes();
  
  abstract void adjustRelativeCellReferences(int paramInt1, int paramInt2);
  
  abstract void columnInserted(int paramInt1, int paramInt2, boolean paramBoolean);
  
  abstract void columnRemoved(int paramInt1, int paramInt2, boolean paramBoolean);
  
  abstract void rowInserted(int paramInt1, int paramInt2, boolean paramBoolean);
  
  abstract void rowRemoved(int paramInt1, int paramInt2, boolean paramBoolean);
  
  protected void setAlternateCode() {
    this.alternateCode = true;
  }
  
  protected final boolean useAlternateCode() {
    return this.alternateCode;
  }
}
