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 16 package javassist.compiler.ast; 17 18 import javassist.compiler.TokenId; 19 import javassist.compiler.CompileError; 20 21 /** 22 * Cast expression. 23 */ 24 public class CastExpr extends ASTList implements TokenId { 25 protected int castType; 26 protected int arrayDim; 27 CastExpr(ASTList className, int dim, ASTree expr)28 public CastExpr(ASTList className, int dim, ASTree expr) { 29 super(className, new ASTList(expr)); 30 castType = CLASS; 31 arrayDim = dim; 32 } 33 CastExpr(int type, int dim, ASTree expr)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 */ getType()42 public int getType() { return castType; } 43 getArrayDim()44 public int getArrayDim() { return arrayDim; } 45 getClassName()46 public ASTList getClassName() { return (ASTList)getLeft(); } 47 getOprand()48 public ASTree getOprand() { return getRight().getLeft(); } 49 setOprand(ASTree t)50 public void setOprand(ASTree t) { getRight().setLeft(t); } 51 getTag()52 public String getTag() { return "cast:" + castType + ":" + arrayDim; } 53 accept(Visitor v)54 public void accept(Visitor v) throws CompileError { v.atCastExpr(this); } 55 } 56