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 AssignExpr extends Expression { 3137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 3237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public static enum Operator { 3337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti assign, // = 3437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti plus, // += 3537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti minus, // -= 3637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti star, // *= 3737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti slash, // /= 3837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti and, // &= 3937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti or, // |= 4037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti xor, // ^= 4137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti rem, // %= 4237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti lShift, // <<= 4337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti rSignedShift, // >>= 4437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti rUnsignedShift, // >>>= 4537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 4637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 4737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti private Expression target; 4837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 4937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti private Expression value; 5037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 5137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti private Operator op; 5237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 5337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public AssignExpr() { 5437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 5537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 5637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public AssignExpr(Expression target, Expression value, Operator op) { 5737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti setTarget(target); 5837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti setValue(value); 5937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti setOperator(op); 6037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 6137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 6237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public AssignExpr(int beginLine, int beginColumn, int endLine, int endColumn, Expression target, Expression value, Operator op) { 6337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti super(beginLine, beginColumn, endLine, endColumn); 6437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti setTarget(target); 6537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti setValue(value); 6637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti setOperator(op); 6737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 6837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 6937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti @Override 7037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public <R, A> R accept(GenericVisitor<R, A> v, A arg) { 7137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti return v.visit(this, arg); 7237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 7337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 7437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti @Override 7537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public <A> void accept(VoidVisitor<A> v, A arg) { 7637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti v.visit(this, arg); 7737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 7837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 7937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public Operator getOperator() { 8037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti return op; 8137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 8237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 8337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public Expression getTarget() { 8437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti return target; 8537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 8637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 8737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public Expression getValue() { 8837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti return value; 8937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 9037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 9137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public void setOperator(Operator op) { 9237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti this.op = op; 9337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 9437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 9537f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public void setTarget(Expression target) { 9637f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti this.target = target; 9737f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti setAsParentNodeOf(this.target); 9837f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 9937f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti 10037f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti public void setValue(Expression value) { 10137f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti this.value = value; 10237f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti setAsParentNodeOf(this.value); 10337f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti } 10437f93be6476b00be051173d0cde614fc8a3677e5Federico Tomassetti} 105