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