class GCastExpr extends AbstractCastExpr implements Precedence {

  public GCastExpr(Value op, Type type) {
    super(Grimp.v().newExprBox(op), type);
  }

  @Override
  public int getPrecedence() {
    return 850;
  }

  @Override
  public String toString() {<FILL_FUNCTION_BODY>}

  @Override
  public Object clone() {
    return new GCastExpr(Grimp.cloneIfNecessary(getOp()), getCastType());
  }
}

    final Value op = getOp();
    String opString = op.toString();
    if (op instanceof Precedence && ((Precedence) op).getPrecedence() < getPrecedence()) {
      opString = "(" + opString + ")";
    }
    return "(" + getCastType().toString() + ") " + opString;
  
<methods>public void apply(soot.util.Switch) ,public abstract java.lang.Object clone() ,public void convertToBaf(soot.jimple.JimpleToBafContext, List<soot.Unit>) ,public int equivHashCode() ,public boolean equivTo(java.lang.Object) ,public soot.Type getCastType() ,public soot.Value getOp() ,public soot.ValueBox getOpBox() ,public soot.Type getType() ,public final List<soot.ValueBox> getUseBoxes() ,public void setCastType(soot.Type) ,public void setOp(soot.Value) ,public java.lang.String toString() ,public void toString(soot.UnitPrinter) <variables>protected final non-sealed soot.ValueBox opBox,protected soot.Type type