1cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti/* 2cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * Copyright (C) 2007-2010 Júlio Vilmar Gesser. 3cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * Copyright (C) 2011, 2013-2016 The JavaParser Team. 4cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * 5cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * This file is part of JavaParser. 6cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * 7cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * JavaParser can be used either under the terms of 8cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * a) the GNU Lesser General Public License as published by 9cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * the Free Software Foundation, either version 3 of the License, or 10cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * (at your option) any later version. 11cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * b) the terms of the Apache License 12cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * 13cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * You should have received a copy of both licenses in LICENCE.LGPL and 14cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * LICENCE.APACHE. Please refer to those files for details. 15cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * 16cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * JavaParser is distributed in the hope that it will be useful, 17cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * but WITHOUT ANY WARRANTY; without even the implied warranty of 18cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * GNU Lesser General Public License for more details. 20cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti */ 21cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 22cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassettipackage com.github.javaparser.ast.expr; 23cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 24cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassettiimport com.github.javaparser.Range; 25cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassettiimport com.github.javaparser.ast.visitor.GenericVisitor; 26cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassettiimport com.github.javaparser.ast.visitor.VoidVisitor; 27cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 28cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti/** 29cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti * @author Julio Vilmar Gesser 30cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti */ 31cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassettipublic final class ArrayAccessExpr extends Expression { 32cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 33cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti private Expression name; 34cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 35cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti private Expression index; 36cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 37cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti public ArrayAccessExpr() { 38cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti } 39cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 40cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti public ArrayAccessExpr(Expression name, Expression index) { 41cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti setName(name); 42cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti setIndex(index); 43cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti } 44cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 45cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti public ArrayAccessExpr(Range range, Expression name, Expression index) { 46cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti super(range); 47cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti setName(name); 48cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti setIndex(index); 49cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti } 50cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 51cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti @Override 52cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti public <R, A> R accept(GenericVisitor<R, A> v, A arg) { 53cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti return v.visit(this, arg); 54cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti } 55cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 56cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti @Override 57cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti public <A> void accept(VoidVisitor<A> v, A arg) { 58cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti v.visit(this, arg); 59cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti } 60cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 61cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti public Expression getIndex() { 62cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti return index; 63cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti } 64cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 65cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti public Expression getName() { 66cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti return name; 67cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti } 68cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 69cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti public ArrayAccessExpr setIndex(Expression index) { 70cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti this.index = index; 71cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti setAsParentNodeOf(this.index); 72cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti return this; 73cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti } 74cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti 75cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti public ArrayAccessExpr setName(Expression name) { 76cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti this.name = name; 77cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti setAsParentNodeOf(this.name); 78cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti return this; 79cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti } 80cf23ae22c824b96a0f0255a749119ac0ca264550Federico Tomassetti} 81