org.eclipse.jdt.core.dom.FieldAccess Java Examples
The following examples show how to use
org.eclipse.jdt.core.dom.FieldAccess.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ParameterObjectFactory.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
private Expression generateQualifier(String paramName, AST ast, boolean useSuper, Expression qualifier) { SimpleName paramSimpleName= ast.newSimpleName(paramName); if (useSuper) { SuperFieldAccess sf= ast.newSuperFieldAccess(); sf.setName(paramSimpleName); if (qualifier instanceof Name) { sf.setQualifier((Name) qualifier); } return sf; } if (qualifier != null) { FieldAccess parameterAccess= ast.newFieldAccess(); parameterAccess.setExpression(qualifier); parameterAccess.setName(paramSimpleName); return parameterAccess; } return paramSimpleName; }
Example #2
Source File: MoveStaticMemberAnalyzer.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
protected void rewrite(FieldAccess node, ITypeBinding type) { Expression exp= node.getExpression(); if (exp == null) { ImportRewriteContext context= new ContextSensitiveImportRewriteContext(node, fCuRewrite.getImportRewrite()); Type result= fCuRewrite.getImportRewrite().addImport(type, fCuRewrite.getAST(), context); fCuRewrite.getImportRemover().registerAddedImport(type.getQualifiedName()); exp= ASTNodeFactory.newName(fCuRewrite.getAST(), ASTFlattener.asString(result)); fCuRewrite.getASTRewrite().set(node, FieldAccess.EXPRESSION_PROPERTY, exp, fCuRewrite.createGroupDescription(REFERENCE_UPDATE)); fNeedsImport= true; } else if (exp instanceof Name) { rewriteName((Name)exp, type); } else { rewriteExpression(node, exp, type); } fProcessed.add(node.getName()); }
Example #3
Source File: CastCorrectionProposal.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 6 votes |
private static boolean needsOuterParantheses(ASTNode nodeToCast) { ASTNode parent= nodeToCast.getParent(); if (parent instanceof MethodInvocation) { if (((MethodInvocation)parent).getExpression() == nodeToCast) { return true; } } else if (parent instanceof QualifiedName) { if (((QualifiedName)parent).getQualifier() == nodeToCast) { return true; } } else if (parent instanceof FieldAccess) { if (((FieldAccess)parent).getExpression() == nodeToCast) { return true; } } return false; }
Example #4
Source File: IntroduceParameterObjectProcessor.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
private void updateSimpleName(ASTRewrite rewriter, ParameterInfo pi, SimpleName node, List<SingleVariableDeclaration> enclosingParameters, IJavaProject project) { AST ast= rewriter.getAST(); IBinding binding= node.resolveBinding(); Expression replacementNode= fParameterObjectFactory.createFieldReadAccess(pi, getParameterName(), ast, project, false, null); if (binding instanceof IVariableBinding) { IVariableBinding variable= (IVariableBinding) binding; if (variable.isParameter() && variable.getName().equals(getNameInScope(pi, enclosingParameters))) { rewriter.replace(node, replacementNode, null); } } else { ASTNode parent= node.getParent(); if (!(parent instanceof QualifiedName || parent instanceof FieldAccess || parent instanceof SuperFieldAccess)) { if (node.getIdentifier().equals(getNameInScope(pi, enclosingParameters))) { rewriter.replace(node, replacementNode, null); } } } }
Example #5
Source File: ExtractFieldRefactoring.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 6 votes |
private FieldAccess wrapAsFieldAccess(SimpleName fieldName, AST ast) { Name qualifierName = null; try { if (isDeclaredInLambdaExpression()) { String enclosingTypeName = getEnclosingTypeName(); qualifierName = ast.newSimpleName(enclosingTypeName); } } catch (JavaModelException e) { // do nothing. } FieldAccess fieldAccess = ast.newFieldAccess(); ThisExpression thisExpression = ast.newThisExpression(); if (qualifierName != null) { thisExpression.setQualifier(qualifierName); } fieldAccess.setExpression(thisExpression); fieldAccess.setName(fieldName); return fieldAccess; }
Example #6
Source File: MethodObject.java From JDeodorant with MIT License | 6 votes |
public FieldInstructionObject isGetter() { if(getMethodBody() != null) { List<AbstractStatement> abstractStatements = getMethodBody().getCompositeStatement().getStatements(); if(abstractStatements.size() == 1 && abstractStatements.get(0) instanceof StatementObject) { StatementObject statementObject = (StatementObject)abstractStatements.get(0); Statement statement = statementObject.getStatement(); if(statement instanceof ReturnStatement) { ReturnStatement returnStatement = (ReturnStatement) statement; if((returnStatement.getExpression() instanceof SimpleName || returnStatement.getExpression() instanceof FieldAccess) && statementObject.getFieldInstructions().size() == 1 && statementObject.getMethodInvocations().size() == 0 && statementObject.getLocalVariableDeclarations().size() == 0 && statementObject.getLocalVariableInstructions().size() == 0 && this.constructorObject.parameterList.size() == 0) { return statementObject.getFieldInstructions().get(0); } } } } return null; }
Example #7
Source File: MovedMemberAnalyzer.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
@Override public boolean visit(FieldAccess node) { IBinding binding= node.resolveFieldBinding(); if (isSourceAccess(binding)) { if (isMovedMember(binding)) { if (node.getExpression() != null) rewrite(node, fTarget); } else rewrite(node, fSource); } else if (isTargetAccess(binding)) { fCuRewrite.getASTRewrite().remove(node.getExpression(), null); fCuRewrite.getImportRemover().registerRemovedNode(node.getExpression()); } return super.visit(node); }
Example #8
Source File: LocalCorrectionsSubProcessor.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
private static ASTRewriteCorrectionProposal createNoSideEffectProposal(IInvocationContext context, SimpleName nodeToQualify, IVariableBinding fieldBinding, String label, int relevance) { AST ast= nodeToQualify.getAST(); Expression qualifier; if (Modifier.isStatic(fieldBinding.getModifiers())) { ITypeBinding declaringClass= fieldBinding.getDeclaringClass(); qualifier= ast.newSimpleName(declaringClass.getTypeDeclaration().getName()); } else { qualifier= ast.newThisExpression(); } ASTRewrite rewrite= ASTRewrite.create(ast); FieldAccess access= ast.newFieldAccess(); access.setName((SimpleName) rewrite.createCopyTarget(nodeToQualify)); access.setExpression(qualifier); rewrite.replace(nodeToQualify, access, null); Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE); return new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, relevance, image); }
Example #9
Source File: MethodDeclarationUtility.java From JDeodorant with MIT License | 6 votes |
public static SimpleName isGetter(MethodDeclaration methodDeclaration) { Block methodBody = methodDeclaration.getBody(); List<SingleVariableDeclaration> parameters = methodDeclaration.parameters(); if(methodBody != null) { List<Statement> statements = methodBody.statements(); if(statements.size() == 1 && parameters.size() == 0) { Statement statement = statements.get(0); if(statement instanceof ReturnStatement) { ReturnStatement returnStatement = (ReturnStatement)statement; Expression returnStatementExpression = returnStatement.getExpression(); if(returnStatementExpression instanceof SimpleName) { return (SimpleName)returnStatementExpression; } else if(returnStatementExpression instanceof FieldAccess) { FieldAccess fieldAccess = (FieldAccess)returnStatementExpression; return fieldAccess.getName(); } } } } return null; }
Example #10
Source File: GenerateForLoopAssistProposal.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
/** * Helper to generate an index based <code>for</code> loop to iterate over an array. * * @param ast the current {@link AST} instance to generate the {@link ASTRewrite} for * @return an applicable {@link ASTRewrite} instance */ private ASTRewrite generateForRewrite(AST ast) { ASTRewrite rewrite= ASTRewrite.create(ast); ForStatement loopStatement= ast.newForStatement(); SimpleName loopVariableName= resolveLinkedVariableNameWithProposals(rewrite, "int", null, true); //$NON-NLS-1$ loopStatement.initializers().add(getForInitializer(ast, loopVariableName)); FieldAccess getArrayLengthExpression= ast.newFieldAccess(); getArrayLengthExpression.setExpression((Expression) rewrite.createCopyTarget(fCurrentExpression)); getArrayLengthExpression.setName(ast.newSimpleName("length")); //$NON-NLS-1$ loopStatement.setExpression(getLinkedInfixExpression(rewrite, loopVariableName.getIdentifier(), getArrayLengthExpression, InfixExpression.Operator.LESS)); loopStatement.updaters().add(getLinkedIncrementExpression(rewrite, loopVariableName.getIdentifier())); Block forLoopBody= ast.newBlock(); forLoopBody.statements().add(ast.newExpressionStatement(getForBodyAssignment(rewrite, loopVariableName))); forLoopBody.statements().add(createBlankLineStatementWithCursorPosition(rewrite)); loopStatement.setBody(forLoopBody); rewrite.replace(fCurrentNode, loopStatement, null); return rewrite; }
Example #11
Source File: StagedBuilderWithMethodAdderFragment.java From SparkBuilderGenerator with MIT License | 6 votes |
private Block createWithMethodBody(AST ast, BuilderField builderField) { String originalFieldName = builderField.getOriginalFieldName(); String builderFieldName = builderField.getBuilderFieldName(); Block newBlock = ast.newBlock(); ReturnStatement builderReturnStatement = ast.newReturnStatement(); builderReturnStatement.setExpression(ast.newThisExpression()); Assignment newAssignment = ast.newAssignment(); FieldAccess fieldAccess = ast.newFieldAccess(); fieldAccess.setExpression(ast.newThisExpression()); fieldAccess.setName(ast.newSimpleName(originalFieldName)); newAssignment.setLeftHandSide(fieldAccess); newAssignment.setRightHandSide(ast.newSimpleName(builderFieldName)); newBlock.statements().add(ast.newExpressionStatement(newAssignment)); newBlock.statements().add(builderReturnStatement); return newBlock; }
Example #12
Source File: CastCorrectionProposal.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
private static boolean needsOuterParantheses(ASTNode nodeToCast) { ASTNode parent= nodeToCast.getParent(); if (parent instanceof MethodInvocation) { if (((MethodInvocation)parent).getExpression() == nodeToCast) { return true; } } else if (parent instanceof QualifiedName) { if (((QualifiedName)parent).getQualifier() == nodeToCast) { return true; } } else if (parent instanceof FieldAccess) { if (((FieldAccess)parent).getExpression() == nodeToCast) { return true; } } return false; }
Example #13
Source File: InlineConstantRefactoring.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
private Name findConstantNameNode() { ASTNode node= NodeFinder.perform(fSelectionCuRewrite.getRoot(), fSelectionStart, fSelectionLength); if (node == null) return null; if (node instanceof FieldAccess) node= ((FieldAccess) node).getName(); if (!(node instanceof Name)) return null; Name name= (Name) node; IBinding binding= name.resolveBinding(); if (!(binding instanceof IVariableBinding)) return null; IVariableBinding variableBinding= (IVariableBinding) binding; if (!variableBinding.isField() || variableBinding.isEnumConstant()) return null; int modifiers= binding.getModifiers(); if (! (Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers))) return null; return name; }
Example #14
Source File: Bindings.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
/** * Returns the binding of the variable written in an Assignment. * @param assignment The assignment * @return The binding or <code>null</code> if no bindings are available. */ public static IVariableBinding getAssignedVariable(Assignment assignment) { Expression leftHand = assignment.getLeftHandSide(); switch (leftHand.getNodeType()) { case ASTNode.SIMPLE_NAME: return (IVariableBinding) ((SimpleName) leftHand).resolveBinding(); case ASTNode.QUALIFIED_NAME: return (IVariableBinding) ((QualifiedName) leftHand).getName().resolveBinding(); case ASTNode.FIELD_ACCESS: return ((FieldAccess) leftHand).resolveFieldBinding(); case ASTNode.SUPER_FIELD_ACCESS: return ((SuperFieldAccess) leftHand).resolveFieldBinding(); default: return null; } }
Example #15
Source File: ExpressionVariable.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
public static IBinding resolveBinding(Expression expression){ if (expression instanceof Name) return ((Name)expression).resolveBinding(); if (expression instanceof ParenthesizedExpression) return resolveBinding(((ParenthesizedExpression)expression).getExpression()); else if (expression instanceof Assignment) return resolveBinding(((Assignment)expression).getLeftHandSide());//TODO ??? else if (expression instanceof MethodInvocation) return ((MethodInvocation)expression).resolveMethodBinding(); else if (expression instanceof SuperMethodInvocation) return ((SuperMethodInvocation)expression).resolveMethodBinding(); else if (expression instanceof FieldAccess) return ((FieldAccess)expression).resolveFieldBinding(); else if (expression instanceof SuperFieldAccess) return ((SuperFieldAccess)expression).resolveFieldBinding(); else if (expression instanceof ConditionalExpression) return resolveBinding(((ConditionalExpression)expression).getThenExpression()); return null; }
Example #16
Source File: MoveInnerToTopRefactoring.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
@Override public boolean visit(final ClassInstanceCreation node) { Assert.isNotNull(node); if (fCreateInstanceField) { final AST ast= node.getAST(); final Type type= node.getType(); final ITypeBinding binding= type.resolveBinding(); if (binding != null && binding.getDeclaringClass() != null && !Bindings.equals(binding, fTypeBinding) && fSourceRewrite.getRoot().findDeclaringNode(binding) != null) { if (!Modifier.isStatic(binding.getModifiers())) { Expression expression= null; if (fCodeGenerationSettings.useKeywordThis || fEnclosingInstanceFieldName.equals(fNameForEnclosingInstanceConstructorParameter)) { final FieldAccess access= ast.newFieldAccess(); access.setExpression(ast.newThisExpression()); access.setName(ast.newSimpleName(fEnclosingInstanceFieldName)); expression= access; } else expression= ast.newSimpleName(fEnclosingInstanceFieldName); if (node.getExpression() != null) fSourceRewrite.getImportRemover().registerRemovedNode(node.getExpression()); fSourceRewrite.getASTRewrite().set(node, ClassInstanceCreation.EXPRESSION_PROPERTY, expression, fGroup); } else addTypeQualification(type, fSourceRewrite, fGroup); } } return true; }
Example #17
Source File: MoveInnerToTopRefactoring.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
@Override public boolean visit(final ThisExpression node) { Assert.isNotNull(node); Name name= node.getQualifier(); if (fCreateInstanceField && name != null) { ITypeBinding binding= node.resolveTypeBinding(); if (binding != null && Bindings.equals(binding, fTypeBinding.getDeclaringClass())) { AST ast= node.getAST(); Expression expression= null; if (fCodeGenerationSettings.useKeywordThis || fEnclosingInstanceFieldName.equals(fNameForEnclosingInstanceConstructorParameter)) { FieldAccess access= ast.newFieldAccess(); access.setExpression(ast.newThisExpression()); access.setName(ast.newSimpleName(fEnclosingInstanceFieldName)); expression= access; } else { expression= ast.newSimpleName(fEnclosingInstanceFieldName); } fSourceRewrite.getASTRewrite().replace(node, expression, null); } } return super.visit(node); }
Example #18
Source File: OccurrencesFinder.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private SimpleName getSimpleName(Expression expression) { if (expression instanceof SimpleName) return ((SimpleName)expression); else if (expression instanceof QualifiedName) return (((QualifiedName) expression).getName()); else if (expression instanceof FieldAccess) return ((FieldAccess)expression).getName(); return null; }
Example #19
Source File: MoveInstanceMethodProcessor.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private ASTNode getFieldReference(SimpleName oldNameNode, ASTRewrite rewrite) { String name= oldNameNode.getIdentifier(); AST ast= rewrite.getAST(); if (isParameterName(name) || StubUtility.useThisForFieldAccess(fTargetRewrite.getCu().getJavaProject())) { FieldAccess fieldAccess= ast.newFieldAccess(); fieldAccess.setExpression(ast.newThisExpression()); fieldAccess.setName((SimpleName) rewrite.createMoveTarget(oldNameNode)); return fieldAccess; } return rewrite.createMoveTarget(oldNameNode); }
Example #20
Source File: MoveInstanceMethodProcessor.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
@Override public final boolean visit(final FieldAccess node) { Assert.isNotNull(node); final Expression expression= node.getExpression(); final IVariableBinding variable= node.resolveFieldBinding(); final AST ast= fRewrite.getAST(); if (expression instanceof ThisExpression) { if (Bindings.equals(fTarget, variable)) { if (fAnonymousClass > 0) { final ThisExpression target= ast.newThisExpression(); target.setQualifier(ast.newSimpleName(fTargetType.getElementName())); fRewrite.replace(node, target, null); } else fRewrite.replace(node, ast.newThisExpression(), null); return false; } else { expression.accept(this); return false; } } else if (expression instanceof FieldAccess) { final FieldAccess access= (FieldAccess) expression; final IBinding binding= access.getName().resolveBinding(); if (access.getExpression() instanceof ThisExpression && Bindings.equals(fTarget, binding)) { ASTNode newFieldAccess= getFieldReference(node.getName(), fRewrite); fRewrite.replace(node, newFieldAccess, null); return false; } } else if (expression != null) { expression.accept(this); return false; } return true; }
Example #21
Source File: MoveInnerToTopRefactoring.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private void createConstructor(final AbstractTypeDeclaration declaration, final ASTRewrite rewrite) throws CoreException { Assert.isNotNull(declaration); Assert.isNotNull(rewrite); final AST ast= declaration.getAST(); final MethodDeclaration constructor= ast.newMethodDeclaration(); constructor.setConstructor(true); constructor.setName(ast.newSimpleName(declaration.getName().getIdentifier())); final String comment= CodeGeneration.getMethodComment(fType.getCompilationUnit(), fType.getElementName(), fType.getElementName(), getNewConstructorParameterNames(), new String[0], null, null, StubUtility.getLineDelimiterUsed(fType.getJavaProject())); if (comment != null && comment.length() > 0) { final Javadoc doc= (Javadoc) rewrite.createStringPlaceholder(comment, ASTNode.JAVADOC); constructor.setJavadoc(doc); } if (fCreateInstanceField) { final SingleVariableDeclaration variable= ast.newSingleVariableDeclaration(); final String name= getNameForEnclosingInstanceConstructorParameter(); variable.setName(ast.newSimpleName(name)); variable.setType(createEnclosingType(ast)); constructor.parameters().add(variable); final Block body= ast.newBlock(); final Assignment assignment= ast.newAssignment(); if (fCodeGenerationSettings.useKeywordThis || fEnclosingInstanceFieldName.equals(fNameForEnclosingInstanceConstructorParameter)) { final FieldAccess access= ast.newFieldAccess(); access.setExpression(ast.newThisExpression()); access.setName(ast.newSimpleName(fEnclosingInstanceFieldName)); assignment.setLeftHandSide(access); } else assignment.setLeftHandSide(ast.newSimpleName(fEnclosingInstanceFieldName)); assignment.setRightHandSide(ast.newSimpleName(name)); final Statement statement= ast.newExpressionStatement(assignment); body.statements().add(statement); constructor.setBody(body); } else constructor.setBody(ast.newBlock()); rewrite.getListRewrite(declaration, declaration.getBodyDeclarationsProperty()).insertFirst(constructor, null); }
Example #22
Source File: OperatorPrecedence.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
/** * Returns the precedence of the expression. Expression * with higher precedence are executed before expressions * with lower precedence. * i.e. in: * <br><code> int a= ++3--;</code></br> * * the precedence order is * <ul> * <li>3</li> * <li>++</li> * <li>--</li> * <li>=</li> * </ul> * 1. 3 -(++)-> 4<br> * 2. 4 -(--)-> 3<br> * 3. 3 -(=)-> a<br> * * @param expression the expression to determine the precedence for * @return the precedence the higher to stronger the binding to its operand(s) */ public static int getExpressionPrecedence(Expression expression) { if (expression instanceof InfixExpression) { return getOperatorPrecedence(((InfixExpression)expression).getOperator()); } else if (expression instanceof Assignment) { return ASSIGNMENT; } else if (expression instanceof ConditionalExpression) { return CONDITIONAL; } else if (expression instanceof InstanceofExpression) { return RELATIONAL; } else if (expression instanceof CastExpression) { return TYPEGENERATION; } else if (expression instanceof ClassInstanceCreation) { return POSTFIX; } else if (expression instanceof PrefixExpression) { return PREFIX; } else if (expression instanceof FieldAccess) { return POSTFIX; } else if (expression instanceof MethodInvocation) { return POSTFIX; } else if (expression instanceof ArrayAccess) { return POSTFIX; } else if (expression instanceof PostfixExpression) { return POSTFIX; } return Integer.MAX_VALUE; }
Example #23
Source File: ASTNodes.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
/** * Returns whether an expression at the given location needs explicit boxing. * * @param expression the expression * @return <code>true</code> iff an expression at the given location needs explicit boxing * @since 3.6 */ private static boolean needsExplicitBoxing(Expression expression) { StructuralPropertyDescriptor locationInParent= expression.getLocationInParent(); if (locationInParent == ParenthesizedExpression.EXPRESSION_PROPERTY) return needsExplicitBoxing((ParenthesizedExpression) expression.getParent()); if (locationInParent == ClassInstanceCreation.EXPRESSION_PROPERTY || locationInParent == FieldAccess.EXPRESSION_PROPERTY || locationInParent == MethodInvocation.EXPRESSION_PROPERTY) return true; return false; }
Example #24
Source File: JavaASTFlattener.java From xtext-xtend with Eclipse Public License 2.0 | 5 votes |
@Override public boolean visit(final FieldAccess it) { it.getExpression().accept(this); if ((this.fallBackStrategy && this._aSTFlattenerUtils.isStaticMemberCall(it))) { this.appendToBuffer("::"); } else { this.appendToBuffer("."); } it.getName().accept(this); return false; }
Example #25
Source File: ASTNodeDifference.java From JDeodorant with MIT License | 5 votes |
private boolean isExpressionOfFieldAccess() { Expression exp1 = expression1.getExpression(); Expression exp2 = expression2.getExpression(); ASTNode node1 = exp1.getParent(); ASTNode node2 = exp2.getParent(); if(node1 instanceof FieldAccess && node2 instanceof FieldAccess) { FieldAccess fieldAccess1 = (FieldAccess)node1; FieldAccess fieldAccess2 = (FieldAccess)node2; if(fieldAccess1.getExpression().equals(exp1) && fieldAccess2.getExpression().equals(exp2)) return true; } return false; }
Example #26
Source File: UnusedCodeFix.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private static boolean hasSideEffect(SimpleName reference) { ASTNode parent= reference.getParent(); while (parent instanceof QualifiedName) { parent= parent.getParent(); } if (parent instanceof FieldAccess) { parent= parent.getParent(); } ASTNode node= null; int nameParentType= parent.getNodeType(); if (nameParentType == ASTNode.ASSIGNMENT) { Assignment assignment= (Assignment) parent; node= assignment.getRightHandSide(); } else if (nameParentType == ASTNode.SINGLE_VARIABLE_DECLARATION) { SingleVariableDeclaration decl= (SingleVariableDeclaration)parent; node= decl.getInitializer(); if (node == null) return false; } else if (nameParentType == ASTNode.VARIABLE_DECLARATION_FRAGMENT) { node= parent; } else { return false; } ArrayList<Expression> sideEffects= new ArrayList<Expression>(); node.accept(new SideEffectFinder(sideEffects)); return sideEffects.size() > 0; }
Example #27
Source File: Visitor.java From RefactoringMiner with MIT License | 5 votes |
private void processArgument(Expression argument) { if(argument instanceof SuperMethodInvocation || argument instanceof Name || argument instanceof StringLiteral || argument instanceof BooleanLiteral || (argument instanceof FieldAccess && ((FieldAccess)argument).getExpression() instanceof ThisExpression) || (argument instanceof ArrayAccess && invalidArrayAccess((ArrayAccess)argument)) || (argument instanceof InfixExpression && invalidInfix((InfixExpression)argument))) return; this.arguments.add(argument.toString()); if(current.getUserObject() != null) { AnonymousClassDeclarationObject anonymous = (AnonymousClassDeclarationObject)current.getUserObject(); anonymous.getArguments().add(argument.toString()); } }
Example #28
Source File: ElementTypeTeller.java From txtUML with Eclipse Public License 1.0 | 5 votes |
public static boolean isFieldAccess(Expression expr) { if (expr instanceof FieldAccess) { return true; } if (!(expr instanceof Name)) { return false; } IBinding binding = ((Name) expr).resolveBinding(); if (!(binding instanceof IVariableBinding)) { return false; } IVariableBinding varBinding = (IVariableBinding) binding; return varBinding.isField(); }
Example #29
Source File: MoveInstanceMethodProcessor.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
/** * Is the specified name a qualified entity, e.g. preceded by 'this', * 'super' or part of a method invocation? * * @param name * the name to check * @return <code>true</code> if this entity is qualified, * <code>false</code> otherwise */ protected static boolean isQualifiedEntity(final Name name) { Assert.isNotNull(name); final ASTNode parent= name.getParent(); if (parent instanceof QualifiedName && ((QualifiedName) parent).getName().equals(name) || parent instanceof FieldAccess && ((FieldAccess) parent).getName().equals(name) || parent instanceof SuperFieldAccess) return true; else if (parent instanceof MethodInvocation) { final MethodInvocation invocation= (MethodInvocation) parent; return invocation.getExpression() != null && invocation.getName().equals(name); } return false; }
Example #30
Source File: MoveInstanceMethodProcessor.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
/** * Returns the field binding associated with this expression. * * @param expression * the expression to get the field binding for * @return the field binding, if the expression denotes a field access * or a field name, <code>null</code> otherwise */ protected static IVariableBinding getFieldBinding(final Expression expression) { Assert.isNotNull(expression); if (expression instanceof FieldAccess) return (IVariableBinding) ((FieldAccess) expression).getName().resolveBinding(); if (expression instanceof Name) { final IBinding binding= ((Name) expression).resolveBinding(); if (binding instanceof IVariableBinding) { final IVariableBinding variable= (IVariableBinding) binding; if (variable.isField()) return variable; } } return null; }