List of usage examples for org.eclipse.jdt.core IJavaElement METHOD
int METHOD
To view the source code for org.eclipse.jdt.core IJavaElement METHOD.
Click Source Link
From source file:org.eclipse.objectteams.otdt.ui.tests.refactoring.pullup.PullUpTests.java
License:Open Source License
private static IMethod[] getMethods(IMember[] members) { List<IJavaElement> l = Arrays.asList(JavaElementUtil.getElementsOfType(members, IJavaElement.METHOD)); return l.toArray(new IMethod[l.size()]); }
From source file:org.eclipse.objectteams.otdt.ui.Util.java
License:Open Source License
/** * Is the given java element generated by the compiler (i.e., synthetic)? * This function operates on all kinds of java elements applying appropriate * heuristics (mostly name based). /* w w w . j a v a2s.c o m*/ * @param elem * @return */ @SuppressWarnings("nls") public static boolean isGenerated(IJavaElement elem) { // TODO (SH): check whether ViewerFilters can do the job better. // all kinds of generated features determined by name: String name = elem.getElementName(); final String[] patterns = new String[] { "_OT$", "TSuper__OT__", // general OT-prefix "class$", "access$", "val$", "this$" // std. java synthetics. }; for (int i = 0; i < patterns.length; i++) { if (name.indexOf(patterns[i]) >= 0) return true; } switch (elem.getElementType()) { case IJavaElement.TYPE: case IOTJavaElement.ROLE: // Predefined role types (non-overridable)? final String[] fullPatterns = new String[] { "IConfined", "Confined", "__OT__Confined", "ILowerable", // special OT types }; for (int i = 0; i < fullPatterns.length; i++) { if (name.equals(fullPatterns[i])) return true; } break; case IJavaElement.METHOD: // tsuper-method? IMethod method = (IMethod) elem; String[] paramTypes = method.getParameterTypes(); if (paramTypes.length > 0) { String lastType = Signature.getSimpleName(Signature.toString(paramTypes[paramTypes.length - 1])); if (lastType.startsWith("TSuper__OT__")) return true; } break; } // Synthetic role interface? if (elem.getElementType() == IOTJavaElement.ROLE) { IType type = (IType) elem; try { if (Flags.isSynthetic(type.getFlags())) return true; } catch (JavaModelException ex) { // nop } } return false; }
From source file:org.eclipse.pde.api.tools.internal.builder.AbstractProblemDetector.java
License:Open Source License
/** * Performs a quick look-up using the offset into the the * {@link ICompilationUnit}//from ww w . j av a2 s. com * * @param jtype * @param document * @param reference * @param offset * @return * @throws JavaModelException */ protected IMethod quickLookup(final IType jtype, IDocument document, IReference reference, int offset) throws JavaModelException { if (offset > -1) { IJavaElement element = jtype.getCompilationUnit().getElementAt(offset); if (element != null) { IJavaElement ancestor = element.getAncestor(IJavaElement.METHOD); if (ancestor != null) { return (IMethod) ancestor; } } } return null; }
From source file:org.eclipse.pde.api.tools.internal.builder.IllegalExtendsProblemDetector.java
License:Open Source License
private IMethod quickLookup(final IType jtype, IDocument document, IReference reference, int offset) throws JavaModelException { if (offset > -1) { IJavaElement element = jtype.getCompilationUnit().getElementAt(offset); if (element != null) { IJavaElement ancestor = element.getAncestor(IJavaElement.METHOD); if (ancestor != null) { return (IMethod) ancestor; }/*from w ww.j a v a 2 s . co m*/ } } return null; }
From source file:org.eclipse.pde.api.tools.ui.internal.completion.APIToolsJavadocCompletionProposalComputer.java
License:Open Source License
/** * Computes all of the Javadoc completion proposals * /* w w w . j a v a 2 s. co m*/ * @param jcontext * @param corecontext * @return the complete list of Javadoc completion proposals or an empty * list, never <code>null</code> * @since 1.0.500 */ List<ICompletionProposal> computeJavadocProposals(JavaContentAssistInvocationContext jcontext, CompletionContext corecontext) { ICompilationUnit cunit = jcontext.getCompilationUnit(); if (cunit != null) { try { int offset = jcontext.getInvocationOffset(); IJavaElement element = cunit.getElementAt(offset); if (!isVisible(element)) { return Collections.EMPTY_LIST; } ImageDescriptor imagedesc = jcontext.getLabelProvider() .createImageDescriptor(org.eclipse.jdt.core.CompletionProposal .create(org.eclipse.jdt.core.CompletionProposal.JAVADOC_BLOCK_TAG, offset)); fImageHandle = (imagedesc == null ? null : imagedesc.createImage()); int type = getType(element); int member = IApiJavadocTag.MEMBER_NONE; switch (element.getElementType()) { case IJavaElement.METHOD: { IMethod method = (IMethod) element; member = IApiJavadocTag.MEMBER_METHOD; if (method.isConstructor()) { member = IApiJavadocTag.MEMBER_CONSTRUCTOR; } break; } case IJavaElement.FIELD: { member = IApiJavadocTag.MEMBER_FIELD; break; } default: break; } IApiJavadocTag[] tags = ApiPlugin.getJavadocTagManager().getTagsForType(type, member); int tagcount = tags.length; if (tagcount > 0) { ArrayList<ICompletionProposal> list = null; collectExistingTags(element, jcontext); String completiontext = null; int tokenstart = corecontext.getTokenStart(); int length = offset - tokenstart; for (int i = 0; i < tagcount; i++) { if (!acceptTag(tags[i], element)) { continue; } completiontext = tags[i].getCompleteTag(type, member); if (appliesToContext(jcontext.getDocument(), completiontext, tokenstart, (length > 0 ? length : 1))) { if (list == null) { list = new ArrayList<ICompletionProposal>(tagcount - i); } list.add(new APIToolsJavadocCompletionProposal(corecontext, completiontext, tags[i].getTagName(), fImageHandle)); } } if (list != null) { return list; } } } catch (JavaModelException e) { fErrorMessage = e.getMessage(); } } return Collections.EMPTY_LIST; }
From source file:org.eclipse.pde.api.tools.ui.internal.completion.APIToolsJavadocCompletionProposalComputer.java
License:Open Source License
/** * Returns if the given {@link IJavaElement} is externally visible <br> * <br>/* www . j a v a2 s .c o m*/ * Changes to the logic here must also be made in the {@link TagValidator} * to ensure the visibility is computed equally. * * @see TagValidator * @param element * @return <code>true</code> if the given element is visible * <code>false</code> otherwise * @throws JavaModelException if a model lookup fails */ boolean isVisible(IJavaElement element) throws JavaModelException { if (element != null) { switch (element.getElementType()) { case IJavaElement.FIELD: case IJavaElement.METHOD: { IMember member = (IMember) element; int flags = member.getFlags(); IType type = member.getDeclaringType(); if (Flags.isPublic(flags) || Flags.isProtected(flags) || (type != null && type.isInterface())) { return isVisible(type); } break; } case IJavaElement.TYPE: { IType type = (IType) element; int flags = type.getFlags(); if (type.isLocal() && !type.isAnonymous() || Flags.isPrivate(flags)) { return false; } if (type.isMember()) { if ((Flags.isPublic(flags) && Flags.isStatic(flags)) || Flags.isPublic(flags) || Flags.isProtected(flags) || type.isInterface()) { return isVisible(type.getDeclaringType()); } } else { return Flags.isPublic(flags) || type.isInterface(); } break; } default: { break; } } } return false; }
From source file:org.eclipse.pde.api.tools.ui.internal.completion.APIToolsJavadocCompletionProposalComputer.java
License:Open Source License
/** * Method to post process returned flags from the * {@link org.eclipse.pde.api.tools.internal.JavadocTagManager} * //from ww w .j av a 2s . co m * @param tag the tag to process * @param element the {@link IJavaElement} the tag will appear on * @return true if the tag should be included in completion proposals, false * otherwise */ private boolean acceptTag(IApiJavadocTag tag, IJavaElement element) throws JavaModelException { if (fExistingTags != null) { Boolean fragments = fExistingTags.get(tag.getTagName()); // if the tag has a fragment don't overwrite / propose again if (fragments != null && Boolean.FALSE.equals(fragments)) { return false; } } switch (element.getElementType()) { case IJavaElement.TYPE: { IType type = (IType) element; int flags = type.getFlags(); String tagname = tag.getTagName(); if (Flags.isAbstract(flags)) { return !tagname.equals(JavadocTagManager.TAG_NOINSTANTIATE); } if (Flags.isFinal(flags)) { return !tagname.equals(JavadocTagManager.TAG_NOEXTEND); } break; } case IJavaElement.METHOD: { IMethod method = (IMethod) element; if (Flags.isFinal(method.getFlags()) || Flags.isStatic(method.getFlags())) { return !tag.getTagName().equals(JavadocTagManager.TAG_NOOVERRIDE); } IType type = method.getDeclaringType(); if (type != null && Flags.isFinal(type.getFlags())) { return !tag.getTagName().equals(JavadocTagManager.TAG_NOOVERRIDE); } break; } default: break; } return true; }
From source file:org.eclipse.pde.api.tools.ui.internal.JavaElementActionFilter.java
License:Open Source License
/** * @see org.eclipse.ui.IActionFilter#testAttribute(Object, String, String) *///w w w . j a va 2s. co m @Override public boolean testAttribute(Object target, String name, String value) { if (name.equals("JavaElementActionFilter")) { //$NON-NLS-1$ if (target instanceof IJavaElement) { IJavaElement javaElement = (IJavaElement) target; if (value.equals("isEnabled")) { //$NON-NLS-1$ while (javaElement != null) { switch (javaElement.getElementType()) { case IJavaElement.PACKAGE_FRAGMENT_ROOT: IPackageFragmentRoot root = (IPackageFragmentRoot) javaElement; return !root.isArchive(); case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.COMPILATION_UNIT: case IJavaElement.CLASS_FILE: case IJavaElement.TYPE: javaElement = javaElement.getParent(); break; case IJavaElement.ANNOTATION: case IJavaElement.FIELD: case IJavaElement.IMPORT_CONTAINER: case IJavaElement.IMPORT_DECLARATION: case IJavaElement.INITIALIZER: case IJavaElement.JAVA_MODEL: case IJavaElement.LOCAL_VARIABLE: case IJavaElement.METHOD: case IJavaElement.PACKAGE_DECLARATION: case IJavaElement.TYPE_PARAMETER: return false; case IJavaElement.JAVA_PROJECT: return true; default: break; } } return true; } } } return false; }
From source file:org.eclipse.recommenders.codesearch.rcp.index.extdoc.ContentProvider.java
License:Open Source License
@Override public void updateElement(final int index) { try {/* www. jav a 2 s. c o m*/ s.submit(new Runnable() { private IMethod jdtMethod; private MethodDeclaration astMethod; private IJavaElement element; @Override public void run() { try { final Document doc = searchResults.scoreDoc(index); if (!findHandle(doc)) { final IllegalStateException e = new IllegalStateException( "Could not find handle " + doc.get(Fields.JAVA_ELEMENT_HANDLE)); updateIndex(new Selection(e), index); return; } if (!findJdtMethod()) { updateIndex(new Selection(EMPTY, "", doc), index); return; } if (!findAstMethod()) { updateIndex(new Selection(EMPTY, "", doc), index); return; } updateIndex(new Selection(astMethod, doc.get(Fields.VARIABLE_NAME), doc), index); } catch (final Exception e) { updateIndex(new Selection(e), index); } } private boolean findHandle(final Document doc) { final String handle = doc.get(Fields.JAVA_ELEMENT_HANDLE); element = JavaCore.create(handle); return element != null; } private boolean findJdtMethod() { jdtMethod = (IMethod) element.getAncestor(IJavaElement.METHOD); return jdtMethod != null; } private boolean findAstMethod() { try { final ITypeRoot cu = jdtMethod.getTypeRoot(); if (cu == null) { return false; } final CompilationUnit ast = SharedASTProvider.getAST(cu, SharedASTProvider.WAIT_YES, null); if (ast == null) { return false; } // caused NPEs: // ASTNodeSearchUtil.getMethodDeclarationNode(jdtMethod, // ast); astMethod = ASTNodeUtils.find(ast, jdtMethod).orNull(); } catch (final Exception e) { RecommendersPlugin.logError(e, "failed to find declaring method %s", jdtMethod); } return astMethod != null; } }); } catch (final RejectedExecutionException e) { updateIndex(new Selection(new RuntimeException( "Too many rendering requests at once. Select this item again to refresh.")), index); // the user was just scrolling to fast... // to prevent ui freezes we ignore too many requests... } }
From source file:org.eclipse.recommenders.internal.rcp.JavaElementSelections.java
License:Open Source License
public static JavaElementSelectionLocation resolveSelectionLocationFromJavaElement(final IJavaElement element) { ensureIsNotNull(element);/*from w ww.j av a 2 s . c om*/ switch (element.getElementType()) { case IJavaElement.CLASS_FILE: case IJavaElement.COMPILATION_UNIT: case IJavaElement.PACKAGE_DECLARATION: case IJavaElement.IMPORT_DECLARATION: case IJavaElement.IMPORT_CONTAINER: case IJavaElement.TYPE: return TYPE_DECLARATION; case IJavaElement.METHOD: case IJavaElement.INITIALIZER: return METHOD_DECLARATION; case IJavaElement.FIELD: return FIELD_DECLARATION; case IJavaElement.LOCAL_VARIABLE: // shouldn't happen in a viewer selection, right? return METHOD_BODY; case IJavaElement.JAVA_MODEL: case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.ANNOTATION: default: return JavaElementSelectionLocation.UNKNOWN; } }