Java Code Examples for org.eclipse.jdt.core.IMethod#getCompilationUnit()
The following examples show how to use
org.eclipse.jdt.core.IMethod#getCompilationUnit() .
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: SuperTypeRefactoringProcessor.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 6 votes |
/** * Computes the compilation units of methods referencing the specified type * occurrences. * * @param units * the compilation unit map (element type: * <code><IJavaProject, Set<ICompilationUnit>></code>) * @param nodes * the ast nodes representing the type occurrences * @throws JavaModelException * if an error occurs */ protected final void getMethodReferencingCompilationUnits(final Map<IJavaProject, Set<ICompilationUnit>> units, final ASTNode[] nodes) throws JavaModelException { ASTNode node= null; IMethod method= null; IJavaProject project= null; for (int index= 0; index < nodes.length; index++) { node= nodes[index]; project= RefactoringASTParser.getCompilationUnit(node).getJavaProject(); if (project != null) { method= getReferencingMethod(node); if (method != null) { Set<ICompilationUnit> set= units.get(project); if (set == null) { set= new HashSet<ICompilationUnit>(); units.put(project, set); } final ICompilationUnit unit= method.getCompilationUnit(); if (unit != null) set.add(unit); } } } }
Example 2
Source File: MemberVisibilityAdjustor.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
/** * Returns the visibility threshold from a type to a method. * * @param referencing the referencing type * @param referenced the referenced method * @param monitor the progress monitor to use * @return the visibility keyword corresponding to the threshold, or <code>null</code> for default visibility * @throws JavaModelException if the java elements could not be accessed */ private ModifierKeyword thresholdTypeToMethod(final IType referencing, final IMethod referenced, final IProgressMonitor monitor) throws JavaModelException { final ICompilationUnit referencedUnit= referenced.getCompilationUnit(); ModifierKeyword keyword= ModifierKeyword.PUBLIC_KEYWORD; if (referenced.getDeclaringType().equals(referencing)) keyword= ModifierKeyword.PRIVATE_KEYWORD; else { final ITypeHierarchy hierarchy= getTypeHierarchy(referencing, new SubProgressMonitor(monitor, 1)); final IType[] types= hierarchy.getSupertypes(referencing); IType superType= null; for (int index= 0; index < types.length; index++) { superType= types[index]; if (superType.equals(referenced.getDeclaringType())) { keyword= ModifierKeyword.PROTECTED_KEYWORD; return keyword; } } } final ICompilationUnit typeUnit= referencing.getCompilationUnit(); if (referencedUnit != null && referencedUnit.equals(typeUnit)) { if (referenced.getDeclaringType().getDeclaringType() != null) keyword= null; else keyword= ModifierKeyword.PRIVATE_KEYWORD; } else if (referencedUnit != null && referencedUnit.getParent().equals(typeUnit.getParent())) keyword= null; return keyword; }
Example 3
Source File: InlineMethodRefactoring.java From Eclipse-Postfix-Code-Completion with Eclipse Public License 1.0 | 5 votes |
private static SourceProvider resolveSourceProvider(RefactoringStatus status, ITypeRoot typeRoot, ASTNode invocation) { CompilationUnit root= (CompilationUnit)invocation.getRoot(); IMethodBinding methodBinding= Invocations.resolveBinding(invocation); if (methodBinding == null) { status.addFatalError(RefactoringCoreMessages.InlineMethodRefactoring_error_noMethodDeclaration); return null; } MethodDeclaration declaration= (MethodDeclaration)root.findDeclaringNode(methodBinding); if (declaration != null) { return new SourceProvider(typeRoot, declaration); } IMethod method= (IMethod)methodBinding.getJavaElement(); if (method != null) { CompilationUnit methodDeclarationAstRoot; ICompilationUnit methodCu= method.getCompilationUnit(); if (methodCu != null) { methodDeclarationAstRoot= new RefactoringASTParser(ASTProvider.SHARED_AST_LEVEL).parse(methodCu, true); } else { IClassFile classFile= method.getClassFile(); if (! JavaElementUtil.isSourceAvailable(classFile)) { String methodLabel= JavaElementLabels.getTextLabel(method, JavaElementLabels.M_FULLY_QUALIFIED | JavaElementLabels.M_PARAMETER_TYPES); status.addFatalError(Messages.format(RefactoringCoreMessages.InlineMethodRefactoring_error_classFile, methodLabel)); return null; } methodDeclarationAstRoot= new RefactoringASTParser(ASTProvider.SHARED_AST_LEVEL).parse(classFile, true); } ASTNode node= methodDeclarationAstRoot.findDeclaringNode(methodBinding.getMethodDeclaration().getKey()); if (node instanceof MethodDeclaration) { return new SourceProvider(methodDeclarationAstRoot.getTypeRoot(), (MethodDeclaration) node); } } status.addFatalError(RefactoringCoreMessages.InlineMethodRefactoring_error_noMethodDeclaration); return null; }
Example 4
Source File: Jdt2Ecore.java From sarl with Apache License 2.0 | 5 votes |
private String resolve(IMethod operation, String typename) throws JavaModelException { if (Signature.C_UNRESOLVED == Signature.getElementType(typename).charAt(0)) { final ICompilationUnit unit = operation.getCompilationUnit(); if (unit != null) { final String post = "." + Signature.toString(typename); //$NON-NLS-1$ for (final IImportDeclaration decl : unit.getImports()) { if (decl.getElementName().endsWith(post)) { return decl.getElementName(); } } } } return Signature.toString(typename); }
Example 5
Source File: MethodEvolution.java From JDeodorant with MIT License | 5 votes |
private List<String> getStringRepresentation(IMethod method, ProjectVersion version) { List<String> stringRepresentation = null; if(method != null) { ICompilationUnit iCompilationUnit = method.getCompilationUnit(); ASTParser parser = ASTParser.newParser(ASTReader.JLS); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setSource(iCompilationUnit); parser.setResolveBindings(true); CompilationUnit compilationUnit = (CompilationUnit)parser.createAST(null); IType declaringType = method.getDeclaringType(); TypeDeclaration typeDeclaration = (TypeDeclaration)compilationUnit.findDeclaringNode(declaringType.getKey()); MethodDeclaration matchingMethodDeclaration = null; for(MethodDeclaration methodDeclaration : typeDeclaration.getMethods()) { IMethod resolvedMethod = (IMethod)methodDeclaration.resolveBinding().getJavaElement(); if(resolvedMethod.isSimilar(method)) { matchingMethodDeclaration = methodDeclaration; break; } } if(matchingMethodDeclaration != null && matchingMethodDeclaration.getBody() != null) { methodCodeMap.put(version, matchingMethodDeclaration.toString()); ASTInformationGenerator.setCurrentITypeRoot(iCompilationUnit); MethodBodyObject methodBody = new MethodBodyObject(matchingMethodDeclaration.getBody()); stringRepresentation = methodBody.stringRepresentation(); } } return stringRepresentation; }