Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: openjava/ptree/ArrayAccess.java


1   /*
2    * ArrayAccess.java 1.0
3    *
4    * Jun 20, 1997 by mich
5    * Sep 29, 1997 by bv
6    * Oct 10, 1997 by mich
7    *
8    * @see openjava.ptree.ParseTree
9    * @version 1.0 last updated:  Oct 10, 1997
10   * @author  Michiaki Tatsubori
11   */
12  package openjava.ptree;
13  
14  import openjava.mop.Environment;
15  import openjava.mop.OJClass;
16  import openjava.ptree.util.ParseTreeVisitor;
17  
18  /**
19   * The <code>ArrayAccess</code> represents
20   * an array access.
21   * <p>
22   * An array access is like :
23   * <br><blockquote><pre>
24   *     a.m[i + 1]
25   * </pre></blockquote><br>
26   * In this array access expression,
27   * you can get <code>a.m</code> by <code>getReferenceExpr()</code>
28   * and can get <code>i + 1</code> by <code>getIndexExpr()</code> .
29   *
30   * @see openjava.ptree.Expression
31   */
32  public class ArrayAccess extends NonLeaf implements Expression {
33    public ArrayAccess(Expression expr, Expression index_expr) {
34      super();
35      set(expr, index_expr);
36    }
37  
38    ArrayAccess() {
39      super();
40    }
41  
42    /**
43     * Gets the expression of array.
44     *
45     * @return  the experssion accessed as array.
46     */
47    public Expression getReferenceExpr() {
48      return (Expression) elementAt(0);
49    }
50  
51    /**
52     * Sets the expression accessed as array.
53     *
54     * @param  expr  the experssion of array.
55     */
56    public void setReferenceExpr(Expression expr) {
57      setElementAt(expr, 0);
58    }
59  
60    /**
61     * Gets the dimexpr list.
62     *
63     * @return  the dimexpr list.
64     */
65    public Expression getIndexExpr() {
66      return (Expression) elementAt(1);
67    }
68  
69    /**
70     * Sets the dimexpr list.
71     *
72     * @param  dimexprs  the dimexpr list.
73     */
74    public void setIndexExpr(Expression dimexprs) {
75      setElementAt(dimexprs, 1);
76    }
77  
78    public void accept(ParseTreeVisitor v) throws ParseTreeException {
79      v.visit(this);
80    }
81  
82    public OJClass getType(Environment env) throws Exception {
83      OJClass reftype = getReferenceExpr().getType(env);
84      return reftype.getComponentType();
85    }
86  
87  }