1/* 2 * Javassist, a Java-bytecode translator toolkit. 3 * Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved. 4 * 5 * The contents of this file are subject to the Mozilla Public License Version 6 * 1.1 (the "License"); you may not use this file except in compliance with 7 * the License. Alternatively, the contents of this file may be used under 8 * the terms of the GNU Lesser General Public License Version 2.1 or later. 9 * 10 * Software distributed under the License is distributed on an "AS IS" basis, 11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 12 * for the specific language governing rights and limitations under the 13 * License. 14 */ 15 16package javassist.compiler.ast; 17 18import javassist.compiler.TokenId; 19import javassist.compiler.CompileError; 20 21/** 22 * Cast expression. 23 */ 24public class CastExpr extends ASTList implements TokenId { 25 protected int castType; 26 protected int arrayDim; 27 28 public CastExpr(ASTList className, int dim, ASTree expr) { 29 super(className, new ASTList(expr)); 30 castType = CLASS; 31 arrayDim = dim; 32 } 33 34 public CastExpr(int type, int dim, ASTree expr) { 35 super(null, new ASTList(expr)); 36 castType = type; 37 arrayDim = dim; 38 } 39 40 /* Returns CLASS, BOOLEAN, INT, or ... 41 */ 42 public int getType() { return castType; } 43 44 public int getArrayDim() { return arrayDim; } 45 46 public ASTList getClassName() { return (ASTList)getLeft(); } 47 48 public ASTree getOprand() { return getRight().getLeft(); } 49 50 public void setOprand(ASTree t) { getRight().setLeft(t); } 51 52 public String getTag() { return "cast:" + castType + ":" + arrayDim; } 53 54 public void accept(Visitor v) throws CompileError { v.atCastExpr(this); } 55} 56