/** * Determines if the given {@link MethodDeclaration} is present in a top * level type * * @param method the given method * @return true if the given {@link MethodDeclaration} is present in a top * level type, false otherwise */ static boolean isInTopLevelType(final MethodDeclaration method) { AbstractTypeDeclaration type = (AbstractTypeDeclaration) method.getParent(); return type != null && type.isPackageMemberTypeDeclaration(); }
private FieldDeclaration[] getFieldDeclarations() { List<BodyDeclaration> bodyDeclarations= ASTNodes.getBodyDeclarations(getMethodDeclaration().getParent()); List<FieldDeclaration> fields= new ArrayList<>(1); for (Iterator<BodyDeclaration> iter= bodyDeclarations.iterator(); iter.hasNext();) { Object each= iter.next(); if (each instanceof FieldDeclaration) fields.add((FieldDeclaration) each); } return fields.toArray(new FieldDeclaration[fields.size()]); }
private FieldDeclaration[] getFieldDeclarations() { List<BodyDeclaration> bodyDeclarations= ASTNodes.getBodyDeclarations(getMethodDeclaration().getParent()); List<FieldDeclaration> fields= new ArrayList<>(1); for (Iterator<BodyDeclaration> iter= bodyDeclarations.iterator(); iter.hasNext();) { Object each= iter.next(); if (each instanceof FieldDeclaration) fields.add((FieldDeclaration) each); } return fields.toArray(new FieldDeclaration[fields.size()]); }
private FieldDeclaration[] getFieldDeclarations(ChildListPropertyDescriptor descriptor) { final List bodyDeclarations= (List) getMethodDeclaration().getParent().getStructuralProperty(descriptor); List fields= new ArrayList(1); for (Iterator iter= bodyDeclarations.iterator(); iter.hasNext();) { Object each= iter.next(); if (each instanceof FieldDeclaration) fields.add(each); } return (FieldDeclaration[]) fields.toArray(new FieldDeclaration[fields.size()]); }
@Override public boolean visit(MethodDeclaration node) { TypeDeclaration typeDecl= ASTNodes.getParent(node, TypeDeclaration.class); if (typeDecl != null && typeDecl.isInterface()) { rewriteOperations.add(new RemoveModifiersOperation(node, Modifier.ABSTRACT)); if (!AnonymousClassDeclaration.class.isInstance(node.getParent()) && !EnumDeclaration.class.isInstance(node.getParent())) { rewriteOperations.add(new RemoveModifiersOperation(node, Modifier.PUBLIC)); } } else if (typeDecl != null && Modifier.isFinal(typeDecl.getModifiers()) && Modifier.isFinal(node.getModifiers())) { rewriteOperations.add(new RemoveModifiersOperation(node, Modifier.FINAL)); } return true; }
public boolean visit(MethodDeclaration node) { if (node.isConstructor() && fBinding.getKind() == IBinding.TYPE) { ASTNode typeNode= node.getParent(); if (typeNode instanceof AbstractTypeDeclaration) { if (fBinding == ((AbstractTypeDeclaration) typeNode).resolveBinding()) { fResult.add(node.getName()); } } } return true; }
private ChildListPropertyDescriptor getBodyDeclarationListOfDeclaringType(){ ASTNode methodParent= getMethodDeclaration().getParent(); if (methodParent instanceof AbstractTypeDeclaration) return ((AbstractTypeDeclaration) methodParent).getBodyDeclarationsProperty(); if (methodParent instanceof AnonymousClassDeclaration) return AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY; Assert.isTrue(false); return null; }
public static void addSiblingMethodNames( final MethodDeclaration declaration, final Set<String> features) { if (!(declaration.getParent() instanceof TypeDeclaration)) { return; } final TypeDeclaration td = (TypeDeclaration) declaration.getParent(); for (final MethodDeclaration md : td.getMethods()) { if (md.getName().getIdentifier() .equals(declaration.getName().getIdentifier())) { continue; } final List<String> nameparts = getNameParts(md.getName() .getIdentifier()); nameparts.forEach(p -> features.add("sibling:" + p)); } }
@Override public boolean visit(MethodDeclaration node) { if (isInterface(node.getParent())) { // Remove modifiers implied by the context return removePublicAbstractModifiers(node); } int modifiers = node.getModifiers(); if (isFinal(modifiers) && (isFinalClass(node.getParent()) || isPrivate(modifiers))) { return removeFinalModifier(modifiers(node)); } if (isProtected(node.getModifiers()) && (node.isConstructor() ? isFinalClass(node.getParent()) : isFinalClassWithoutInheritance(node.getParent()))) { return removeProtectedModifier(node); } return ensureModifiersOrder(node); }
@Override public boolean visit(MethodDeclaration node) { if (isNotVisible(node.getModifiers())) { ASTNode parent = node.getParent(); if (parent instanceof TypeDeclaration) { TypeDeclaration type = (TypeDeclaration) parent; if (!type.isInterface()) { return false; } } else { return false; } } scanMethodJavaDoc(node); return true; }
static boolean hasReference(MethodDeclaration node) { try { SuperThisReferenceFinder finder = new SuperThisReferenceFinder(); ClassInstanceCreation cic = (ClassInstanceCreation) node.getParent().getParent(); finder.fFunctionalInterface = cic.getType().resolveBinding(); finder.fMethodDeclaration = node; node.accept(finder); } catch (AbortSearchException e) { return true; } return false; }
private void addFieldDeclaration(ASTRewrite rewrite) { FieldDeclaration[] fields= getFieldDeclarations(); ASTNode parent= getMethodDeclaration().getParent(); ChildListPropertyDescriptor descriptor= ASTNodes.getBodyDeclarationsProperty(parent); int insertIndex; if (fields.length == 0) insertIndex= 0; else insertIndex= ASTNodes.getBodyDeclarations(parent).indexOf(fields[fields.length - 1]) + 1; final FieldDeclaration declaration= createNewFieldDeclaration(rewrite); rewrite.getListRewrite(parent, descriptor).insertAt(declaration, insertIndex, null); }
static boolean hasReference(MethodDeclaration node) { try { SuperThisReferenceFinder finder= new SuperThisReferenceFinder(); ClassInstanceCreation cic= (ClassInstanceCreation) node.getParent().getParent(); finder.fFunctionalInterface= cic.getType().resolveBinding(); finder.fMethodDeclaration= node; node.accept(finder); } catch (AbortSearchException e) { return true; } return false; }
private void addFieldDeclaration(ASTRewrite rewrite) { FieldDeclaration[] fields= getFieldDeclarations(); ASTNode parent= getMethodDeclaration().getParent(); ChildListPropertyDescriptor descriptor= ASTNodes.getBodyDeclarationsProperty(parent); int insertIndex; if (fields.length == 0) insertIndex= 0; else insertIndex= ASTNodes.getBodyDeclarations(parent).indexOf(fields[fields.length - 1]) + 1; final FieldDeclaration declaration= createNewFieldDeclaration(rewrite); rewrite.getListRewrite(parent, descriptor).insertAt(declaration, insertIndex, null); }
static boolean hasReference(MethodDeclaration node) { try { SuperThisReferenceFinder finder= new SuperThisReferenceFinder(); ClassInstanceCreation cic= (ClassInstanceCreation) node.getParent().getParent(); finder.fFunctionalInterface= cic.getType().resolveBinding(); finder.fMethodDeclaration= node; node.accept(finder); } catch (AbortSearchException e) { return true; } return false; }
private void addFieldDeclaration(ASTRewrite rewrite) { final ChildListPropertyDescriptor descriptor= getBodyDeclarationListOfDeclaringType(); FieldDeclaration[] fields= getFieldDeclarations(getBodyDeclarationListOfDeclaringType()); final ASTNode parent= getMethodDeclaration().getParent(); int insertIndex; if (fields.length == 0) insertIndex= 0; else insertIndex= ((List) parent.getStructuralProperty(descriptor)).indexOf(fields[fields.length - 1]) + 1; final FieldDeclaration declaration= createNewFieldDeclaration(rewrite); rewrite.getListRewrite(parent, descriptor).insertAt(declaration, insertIndex, null); }
public static MethodSig toMethodSig(MethodDeclaration method) { TypeDeclaration type = (TypeDeclaration) method.getParent(); CompilationUnit cu = (CompilationUnit) type.getParent(); String methodName = method.getName().getIdentifier(); String packageName = cu.getPackage().getName().getFullyQualifiedName(); String className = type.getName().getIdentifier(); List<SingleVariableDeclaration> pars = method.parameters(); List<String> emParameters = new ArrayList<>(); for (SingleVariableDeclaration par : pars) { String typename = par.getType().toString().trim(); emParameters.add(typename); } return new MethodSig( packageName, className, methodName, emParameters); }
public void endVisit(MethodDeclaration node) { ownValue = scopeManager.pop(); ASTNode parent = node.getParent(); if (parent instanceof TypeDeclaration) { // TODO: why can this node.resolveBinding sometimes be null? fillOverrides(node.resolveBinding(), ((TypeDeclaration)parent).resolveBinding()); } else if (parent instanceof AnonymousClassDeclaration) { fillOverrides(node.resolveBinding(), ((AnonymousClassDeclaration)parent).resolveBinding()); } IConstructor type = bindingsResolver.resolveType(node.resolveBinding(), true); insert(types, ownValue, type); }
private void createParameterClass(MethodDeclaration methodDeclaration, CompilationUnitRewrite cuRewrite) throws CoreException { if (fCreateAsTopLevel) { IPackageFragmentRoot root= (IPackageFragmentRoot) cuRewrite.getCu().getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); fOtherChanges.addAll(fParameterObjectFactory.createTopLevelParameterObject(root)); } else { ASTRewrite rewriter= cuRewrite.getASTRewrite(); TypeDeclaration enclosingType= (TypeDeclaration) methodDeclaration.getParent(); ListRewrite bodyRewrite= rewriter.getListRewrite(enclosingType, TypeDeclaration.BODY_DECLARATIONS_PROPERTY); String fqn= enclosingType.getName().getFullyQualifiedName(); TypeDeclaration classDeclaration= fParameterObjectFactory.createClassDeclaration(fqn, cuRewrite, null); classDeclaration.modifiers().add(rewriter.getAST().newModifier(ModifierKeyword.PUBLIC_KEYWORD)); classDeclaration.modifiers().add(rewriter.getAST().newModifier(ModifierKeyword.STATIC_KEYWORD)); bodyRewrite.insertBefore(classDeclaration, methodDeclaration, null); } }
private void createParameterClass(MethodDeclaration methodDeclaration, CompilationUnitRewrite cuRewrite) throws CoreException { if (fCreateAsTopLevel) { IPackageFragmentRoot root= (IPackageFragmentRoot) cuRewrite.getCu().getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); fOtherChanges.addAll(fParameterObjectFactory.createTopLevelParameterObject(root)); } else { ASTRewrite rewriter= cuRewrite.getASTRewrite(); TypeDeclaration enclosingType= (TypeDeclaration) methodDeclaration.getParent(); ContextSensitiveImportRewriteContext context=new ContextSensitiveImportRewriteContext(enclosingType, cuRewrite.getImportRewrite()); ListRewrite bodyRewrite= rewriter.getListRewrite(enclosingType, TypeDeclaration.BODY_DECLARATIONS_PROPERTY); String fqn= enclosingType.getName().getFullyQualifiedName(); TypeDeclaration classDeclaration= fParameterObjectFactory.createClassDeclaration(fqn, cuRewrite, null, context); classDeclaration.modifiers().add(rewriter.getAST().newModifier(ModifierKeyword.PUBLIC_KEYWORD)); classDeclaration.modifiers().add(rewriter.getAST().newModifier(ModifierKeyword.STATIC_KEYWORD)); bodyRewrite.insertBefore(classDeclaration, methodDeclaration, null); } }