001    // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
002    // for details. All rights reserved. Use of this source code is governed by a
003    // BSD-style license that can be found in the LICENSE file.
004    
005    package com.google.dart.compiler.backend.js.ast;
006    
007    /**
008     * Represents a javascript expression for array access.
009     */
010    public final class JsArrayAccess extends JsExpressionImpl {
011        private JsExpression arrayExpression;
012        private JsExpression indexExpression;
013    
014        public JsArrayAccess() {
015            super();
016        }
017    
018        public JsArrayAccess(JsExpression arrayExpression, JsExpression indexExpression) {
019            this.arrayExpression = arrayExpression;
020            this.indexExpression = indexExpression;
021        }
022    
023        public JsExpression getArrayExpression() {
024            return arrayExpression;
025        }
026    
027        public JsExpression getIndexExpression() {
028            return indexExpression;
029        }
030    
031        public void setArrayExpression(JsExpression arrayExpression) {
032            this.arrayExpression = arrayExpression;
033        }
034    
035        public void setIndexExpression(JsExpression indexExpression) {
036            this.indexExpression = indexExpression;
037        }
038    
039        @Override
040        public void accept(JsVisitor v) {
041            v.visitArrayAccess(this);
042        }
043    
044        @Override
045        public void acceptChildren(JsVisitor visitor) {
046            visitor.accept(arrayExpression);
047            visitor.accept(indexExpression);
048        }
049    }