137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti/*
237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * Copyright (C) 2007-2010 Júlio Vilmar Gesser.
337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * Copyright (C) 2011, 2013-2015 The JavaParser Team.
437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti *
537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * This file is part of JavaParser.
637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti *
737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * JavaParser can be used either under the terms of
837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * a) the GNU Lesser General Public License as published by
937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti *     the Free Software Foundation, either version 3 of the License, or
1037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti *     (at your option) any later version.
1137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * b) the terms of the Apache License
1237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti *
1337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * You should have received a copy of both licenses in LICENCE.LGPL and
1437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * LICENCE.APACHE. Please refer to those files for details.
1537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti *
1637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * JavaParser is distributed in the hope that it will be useful,
1737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * but WITHOUT ANY WARRANTY; without even the implied warranty of
1837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * GNU Lesser General Public License for more details.
2037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti */
2137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
2237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassettipackage com.github.javaparser.ast.expr;
2337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
2437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassettiimport com.github.javaparser.ast.visitor.GenericVisitor;
2537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassettiimport com.github.javaparser.ast.visitor.VoidVisitor;
2637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
2737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti/**
2837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti * @author Julio Vilmar Gesser
2937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti */
3037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassettipublic final class ArrayAccessExpr extends Expression {
3137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
3237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    private Expression name;
3337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
3437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    private Expression index;
3537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
3637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    public ArrayAccessExpr() {
3737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    }
3837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
3937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    public ArrayAccessExpr(Expression name, Expression index) {
4037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        setName(name);
4137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        setIndex(index);
4237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    }
4337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
4437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    public ArrayAccessExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression name, Expression index) {
4537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        super(beginLine, beginColumn, endLine, endColumn);
4637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        setName(name);
4737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        setIndex(index);
4837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    }
4937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
5037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    @Override
5137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    public <R, A> R accept(GenericVisitor<R, A> v, A arg) {
5237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        return v.visit(this, arg);
5337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    }
5437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
5537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    @Override
5637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    public <A> void accept(VoidVisitor<A> v, A arg) {
5737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        v.visit(this, arg);
5837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    }
5937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
6037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    public Expression getIndex() {
6137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        return index;
6237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    }
6337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
6437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    public Expression getName() {
6537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        return name;
6637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    }
6737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
6837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    public void setIndex(Expression index) {
6937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        this.index = index;
7037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti		setAsParentNodeOf(this.index);
7137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    }
7237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti
7337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    public void setName(Expression name) {
7437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti        this.name = name;
7537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti		setAsParentNodeOf(this.name);
7637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti    }
7737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti}
78