List of usage examples for org.eclipse.jdt.core.dom PostfixExpression.Operator toString
@Override public final String toString()
From source file:org.eclipse.xtend.core.javaconverter.JavaASTFlattener.java
License:Open Source License
@Override public boolean visit(final PostfixExpression node) { final AST dummyAST = AST.newAST(node.getAST().apiLevel()); final PostfixExpression.Operator pfOperator = node.getOperator(); Expression _operand = node.getOperand(); if ((_operand instanceof ArrayAccess)) { Expression _operand_1 = node.getOperand(); final ArrayAccess pfOperand = ((ArrayAccess) _operand_1); if ((Objects.equal(pfOperator, PostfixExpression.Operator.INCREMENT) || Objects.equal(pfOperator, PostfixExpression.Operator.DECREMENT))) { final String arrayName = this.computeArrayName(pfOperand); StringConcatenation _builder = new StringConcatenation(); _builder.append("_postIndx_"); _builder.append(arrayName);/* w w w .ja v a2 s .c om*/ final String idxName = _builder.toString(); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("_postVal_"); _builder_1.append(arrayName); final String tempVarName = _builder_1.toString(); StringConcatenation _builder_2 = new StringConcatenation(); _builder_2.append("{ var "); _builder_2.append(idxName); _builder_2.append("="); this.appendToBuffer(_builder_2.toString()); pfOperand.getIndex().accept(this); StringConcatenation _builder_3 = new StringConcatenation(); _builder_3.append(" "); _builder_3.append("var "); this.appendToBuffer(_builder_3.toString()); final VariableDeclarationFragment varDeclaration = dummyAST.newVariableDeclarationFragment(); varDeclaration.setName(dummyAST.newSimpleName(tempVarName)); ASTNode _copySubtree = ASTNode.copySubtree(dummyAST, pfOperand); final ArrayAccess arrayAccess = ((ArrayAccess) _copySubtree); arrayAccess.setIndex(dummyAST.newSimpleName(idxName)); varDeclaration.setInitializer(arrayAccess); varDeclaration.accept(this); final InfixExpression infixOp = dummyAST.newInfixExpression(); infixOp.setLeftOperand(dummyAST.newSimpleName(tempVarName)); PostfixExpression.Operator _operator = node.getOperator(); boolean _equals = Objects.equal(_operator, PostfixExpression.Operator.DECREMENT); if (_equals) { infixOp.setOperator(InfixExpression.Operator.MINUS); } else { infixOp.setOperator(InfixExpression.Operator.PLUS); } infixOp.setRightOperand(dummyAST.newNumberLiteral("1")); final Assignment assigment = dummyAST.newAssignment(); ASTNode _copySubtree_1 = ASTNode.copySubtree(dummyAST, pfOperand); final ArrayAccess writeArray = ((ArrayAccess) _copySubtree_1); writeArray.setIndex(dummyAST.newSimpleName(idxName)); assigment.setLeftHandSide(writeArray); ASTNode _copySubtree_2 = ASTNode.copySubtree(dummyAST, infixOp); assigment.setRightHandSide(((Expression) _copySubtree_2)); assigment.accept(this); StringConcatenation _builder_4 = new StringConcatenation(); String _xifexpression = null; boolean _needsReturnValue = this._aSTFlattenerUtils.needsReturnValue(node); if (_needsReturnValue) { _xifexpression = tempVarName; } _builder_4.append(_xifexpression); _builder_4.append(" }"); this.appendToBuffer(_builder_4.toString()); return false; } } node.getOperand().accept(this); this.appendToBuffer(pfOperator.toString()); return false; }