Example usage for org.eclipse.jdt.core IJavaElement METHOD

List of usage examples for org.eclipse.jdt.core IJavaElement METHOD

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement METHOD.

Prototype

int METHOD

To view the source code for org.eclipse.jdt.core IJavaElement METHOD.

Click Source Link

Document

Constant representing a method or constructor.

Usage

From source file:org.eclipse.wb.internal.core.utils.jdt.core.JavadocContentAccess.java

License:Open Source License

/**
 * @return the {@link Reader} for an {@link IMember}'s Javadoc comment content from the source
 *         attachment./*from  www.j a  va2 s . c o  m*/
 */
public static Reader getContentReader(IMember member, boolean allowInherited) throws Exception {
    // check current type
    {
        IBuffer buffer = member.isBinary() ? member.getClassFile().getBuffer()
                : member.getCompilationUnit().getBuffer();
        // no source attachment found
        if (buffer == null) {
            return null;
        }
        //
        ISourceRange range = member.getSourceRange();
        int start = range.getOffset();
        int length = range.getLength();
        if (length > 0 && buffer.getChar(start) == '/') {
            // prepare scanner
            IScanner scanner;
            {
                scanner = ToolFactory.createScanner(true, false, false, false);
                scanner.setSource(buffer.getCharacters());
                scanner.resetTo(start, start + length - 1);
            }
            // find last JavaDoc comment
            {
                int docOffset = -1;
                int docEnd = -1;
                {
                    int terminal = scanner.getNextToken();
                    while (org.eclipse.jdt.internal.corext.dom.TokenScanner.isComment(terminal)) {
                        if (terminal == ITerminalSymbols.TokenNameCOMMENT_JAVADOC) {
                            docOffset = scanner.getCurrentTokenStartPosition();
                            docEnd = scanner.getCurrentTokenEndPosition() + 1;
                        }
                        terminal = scanner.getNextToken();
                    }
                }
                // if comment found, return it
                if (docOffset != -1) {
                    return new JavaDocCommentReader(buffer, docOffset, docEnd);
                }
            }
        }
    }
    // check inherited
    if (allowInherited && member.getElementType() == IJavaElement.METHOD) {
        IMethod method = (IMethod) member;
        IMethod superMethod = CodeUtils.findSuperMethod(method);
        if (superMethod != null) {
            return getContentReader(superMethod, allowInherited);
        }
    }
    // not found
    return null;
}

From source file:org.eclipse.wst.xml.search.editor.internal.jdt.search.XMLReferenceJavaSearchParticipant.java

License:Open Source License

public void search(final ISearchRequestor requestor, final QuerySpecification query, IProgressMonitor monitor)
        throws CoreException {
    if (!isValid(query)) {
        return;//from  ww w .  jav a  2 s  .c  o m
    }
    if (monitor == null) {
        monitor = new NullProgressMonitor();
    }
    monitor.beginTask("", 11); //$NON-NLS-1$
    try {
        // Get Java project, class name and method name to search
        IJavaProject javaProject = null;
        String className = null;
        String methodName = null;
        if (query instanceof ElementQuerySpecification) {
            // Java Search launched with Java Editor with Ctrl+Shift+G
            ElementQuerySpecification elementQuery = (ElementQuerySpecification) query;
            IJavaElement element = elementQuery.getElement();
            if (element instanceof IMember) {
                IMember member = (IMember) element;
                javaProject = member.getJavaProject();
                if (member.getElementType() == IJavaElement.TYPE) {
                    // Java class
                    IType type = (IType) member;
                    className = type.getFullyQualifiedName('.');
                } else if (member.getElementType() == IJavaElement.METHOD) {
                    IMethod method = (IMethod) member;
                    methodName = method.getElementName();
                    className = method.getDeclaringType().getFullyQualifiedName('.');
                }
            } else {
                return;
            }
        } else if (query instanceof PatternQuerySpecification) {
            // Java Search launched with Java UI Dialog Search
            PatternQuerySpecification patternQuery = (PatternQuerySpecification) query;
            if (patternQuery.getSearchFor() == IJavaSearchConstants.METHOD) {
                methodName = patternQuery.getPattern();
            } else {
                className = patternQuery.getPattern();
            }
        }
        if (monitor.isCanceled()) {
            return;
        }
        monitor.worked(1);
        if (className == null && methodName == null) {
            return;
        }
        ToType toType = (!StringUtils.isEmpty(methodName) ? ToType.JAVA_METHOD : ToType.JAVA);
        Collection<IXMLReference> references = XMLReferencesManager.getInstance()
                .getXMLReferencesForToType(toType);
        if (references.size() < 1) {
            return;
        }
        XMLReferencesIndexManager.getDefault().flushIndexedFiles(javaProject);
        searchXMLReferences(query.getScope(), requestor, className, methodName, javaProject, references, toType,
                new SubProgressMonitor(monitor, 7));
    } finally {
        monitor.done();
    }
}

From source file:org.eclipse.wst.xml.search.editor.internal.jdt.search.XMLReferenceJavaSearchParticipant.java

License:Open Source License

/**
 * Determines if the current query should be considered or not
 * //from   ww w .j  a  v a 2  s  . c om
 * @param query
 *            the current query
 * @return true if the query should be considered, false otherwise
 */
private boolean isValid(QuerySpecification query) {
    switch (query.getLimitTo()) {
    case IJavaSearchConstants.REFERENCES:
    case IJavaSearchConstants.ALL_OCCURRENCES: {
        break;
    }
    default: {
        return false;
    }
    }
    if (query instanceof ElementQuerySpecification) {
        IJavaElement element = ((ElementQuerySpecification) query).getElement();
        return element.getElementType() == IJavaElement.TYPE || element.getElementType() == IJavaElement.METHOD;
    }
    if (query instanceof PatternQuerySpecification) {
        PatternQuerySpecification patternQuery = (PatternQuerySpecification) query;
        switch (patternQuery.getSearchFor()) {
        case IJavaSearchConstants.UNKNOWN:
        case IJavaSearchConstants.TYPE:
        case IJavaSearchConstants.CLASS:
        case IJavaSearchConstants.CLASS_AND_INTERFACE:
        case IJavaSearchConstants.METHOD: {
            return true;
        }
        }
    }
    return false;
}

From source file:org.eclipse.xtend.ide.hyperlinking.XtendHyperlinkHelper.java

License:Open Source License

@Override
public void createHyperlinksByOffset(XtextResource resource, int offset, IHyperlinkAcceptor acceptor) {
    super.createHyperlinksByOffset(resource, offset, acceptor);
    if (canShowMany(acceptor)) {
        final EObject element = getEObjectAtOffsetHelper().resolveElementAt(resource, offset);
        if (element instanceof XtendField) {
            XtendField member = (XtendField) element;
            ILeafNode node = NodeModelUtils.findLeafNodeAtOffset(resource.getParseResult().getRootNode(),
                    offset);//from ww  w .j  av  a 2  s. c o m
            if (isNameNode(member, XtendPackage.Literals.XTEND_FIELD__NAME, node) && member.getType() == null) {
                EObject jvmElement = associations.getPrimaryJvmElement(member);
                if (jvmElement instanceof JvmIdentifiableElement) {
                    addOpenInferredTypeHyperlink(resource, (JvmIdentifiableElement) jvmElement, node, acceptor);
                }
            }
        }
        if (element instanceof XtendFunction) {
            XtendFunction member = (XtendFunction) element;
            ILeafNode node = NodeModelUtils.findLeafNodeAtOffset(resource.getParseResult().getRootNode(),
                    offset);
            if (isNameNode(member, XtendPackage.Literals.XTEND_FUNCTION__NAME, node)) {
                EObject jvmElement = associations.getPrimaryJvmElement(member);
                if (jvmElement instanceof JvmIdentifiableElement) {
                    JvmIdentifiableElement identifiableElement = (JvmIdentifiableElement) jvmElement;
                    if (member.getReturnType() == null) {
                        addOpenInferredTypeHyperlink(resource, identifiableElement, node, acceptor);
                    }
                    IJavaElement javaElement = javaElementFinder.findExactElementFor(identifiableElement);
                    if (sourceViewer != null && javaElement != null
                            && (javaElement.getElementType() == IJavaElement.METHOD
                                    && canBeOverridden((IMethod) javaElement))) {
                        Region region = new Region(node.getOffset(), node.getLength());
                        acceptor.accept(new XbaseImplementatorsHyperlink(javaElement, region, sourceViewer,
                                implOpener));
                    }
                }
            }
        }
    }
}

From source file:org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderTest.java

License:Open Source License

@Override
protected JvmOperation getMethodFromParameterizedMethods(String method) {
    JvmOperation result = super.getMethodFromParameterizedMethods(method);
    if (result != null) {
        IJavaElement found = elementFinder.findElementFor(result);
        assertEquals(IJavaElement.METHOD, found.getElementType());
        assertEquals(result.getSimpleName(), found.getElementName());
        IMethod foundMethod = (IMethod) found;
        assertEquals(result.getParameters().size(), foundMethod.getNumberOfParameters());
    }/*from  w ww  . j  av a 2 s  . c  o m*/
    return result;
}

From source file:org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderTest.java

License:Open Source License

@Override
protected JvmOperation getMethodFromType(EObject context, Class<?> type, String method) {
    JvmOperation result = super.getMethodFromType(context, type, method);
    if (result != null) {
        IJavaElement found = elementFinder.findElementFor(result);
        assertEquals(IJavaElement.METHOD, found.getElementType());
        assertEquals(result.getSimpleName(), found.getElementName());
        IMethod foundMethod = (IMethod) found;
        assertEquals(result.getParameters().size(), foundMethod.getNumberOfParameters());
    }/*from  w  w  w  .  j  av a 2  s  .c om*/
    return result;
}

From source file:org.eclipse.xtext.common.types.access.jdt.JdtTypeProviderTest.java

License:Open Source License

@Override
protected JvmConstructor getConstructorFromType(EObject context, Class<?> type, String constructor) {
    JvmConstructor result = super.getConstructorFromType(context, type, constructor);
    if (result != null) {
        IJavaElement found = elementFinder.findElementFor(result);
        assertEquals(IJavaElement.METHOD, found.getElementType());
        assertEquals(result.getSimpleName(), found.getElementName());
        IMethod foundMethod = (IMethod) found;
        assertEquals(result.getParameters().size(), foundMethod.getNumberOfParameters());
    }/*  w  w  w.  ja v  a2 s.c o m*/
    return result;
}

From source file:org.eclipse.xtext.common.types.ui.query.QueryParticipant.java

License:Open Source License

private boolean isHandled(QuerySpecification query) {
    switch (query.getLimitTo()) {
    case IJavaSearchConstants.REFERENCES:
    case IJavaSearchConstants.ALL_OCCURRENCES: {
        break;/*from   w w w .  java 2s.  com*/
    }
    default: {
        return false;
    }
    }
    if (query instanceof ElementQuerySpecification) {
        IJavaElement element = ((ElementQuerySpecification) query).getElement();
        return element.getElementType() == IJavaElement.TYPE || element.getElementType() == IJavaElement.FIELD
                || element.getElementType() == IJavaElement.METHOD;
    }
    //      if (query instanceof PatternQuerySpecification) {
    //         PatternQuerySpecification patternQuery = (PatternQuerySpecification) query;
    //         switch (patternQuery.getSearchFor()) {
    //            case IJavaSearchConstants.UNKNOWN:
    //            case IJavaSearchConstants.TYPE:
    //            case IJavaSearchConstants.CLASS:
    //            case IJavaSearchConstants.CLASS_AND_INTERFACE:
    //            case IJavaSearchConstants.CLASS_AND_ENUM: {
    //               return true;
    //            }
    //         }
    //      }
    return false;
}

From source file:org.eclipse.xtext.common.types.ui.refactoring.JdtRenameRefactoringProcessorFactory.java

License:Open Source License

public JavaRenameProcessor createRenameProcessor(IJavaElement element) {
    try {/*from  w w  w.j  a  v  a  2s  .  co m*/
        switch (element.getElementType()) {
        case IJavaElement.TYPE:
            return new RenameTypeProcessor((IType) element);
        case IJavaElement.FIELD:
            if (((IField) element).getDeclaringType().isEnum())
                return new RenameEnumConstProcessor((IField) element);
            else
                return new RenameFieldProcessor((IField) element);
        case IJavaElement.METHOD:
            if (((IMethod) element).isConstructor())
                break;
            if (Flags.isStatic(((IMethod) element).getFlags())
                    || Flags.isPrivate(((IMethod) element).getFlags()))
                return new RenameNonVirtualMethodProcessor((IMethod) element);
            else
                return new RenameVirtualMethodProcessor((IMethod) element);
        case IJavaElement.TYPE_PARAMETER:
            return new RenameTypeParameterProcessor((ITypeParameter) element);
        case IJavaElement.LOCAL_VARIABLE:
            return new RenameLocalVariableProcessor((ILocalVariable) element);

        }
    } catch (JavaModelException exc) {
        LOG.error("Error creating refactoring processor for " + element.getElementName(), exc);
    }
    return null;
}

From source file:org.eclipse.xtext.common.types.ui.refactoring.JvmRenameRefactoringProvider.java

License:Open Source License

/**
 * Copied from {@link org.eclipse.jdt.internal.ui.refactoring.reorg.RenameLinkedMode}. There does not seem to be a
 * clean way to initialize a JDT refactoring from the outside.
 *//* www  .  j  a  va  2 s .c o m*/
public RenameJavaElementDescriptor createRenameDescriptor(IJavaElement javaElement, String newName)
        throws JavaModelException {
    String contributionId;
    // see RefactoringExecutionStarter#createRenameSupport(..):
    int elementType = javaElement.getElementType();
    switch (elementType) {
    case IJavaElement.JAVA_PROJECT:
        contributionId = IJavaRefactorings.RENAME_JAVA_PROJECT;
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        contributionId = IJavaRefactorings.RENAME_SOURCE_FOLDER;
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        contributionId = IJavaRefactorings.RENAME_PACKAGE;
        break;
    case IJavaElement.COMPILATION_UNIT:
        contributionId = IJavaRefactorings.RENAME_COMPILATION_UNIT;
        break;
    case IJavaElement.TYPE:
        contributionId = IJavaRefactorings.RENAME_TYPE;
        break;
    case IJavaElement.METHOD:
        final IMethod method = (IMethod) javaElement;
        if (method.isConstructor())
            return createRenameDescriptor(method.getDeclaringType(), newName);
        else
            contributionId = IJavaRefactorings.RENAME_METHOD;
        break;
    case IJavaElement.FIELD:
        IField field = (IField) javaElement;
        if (field.isEnumConstant())
            contributionId = IJavaRefactorings.RENAME_ENUM_CONSTANT;
        else
            contributionId = IJavaRefactorings.RENAME_FIELD;
        break;
    case IJavaElement.TYPE_PARAMETER:
        contributionId = IJavaRefactorings.RENAME_TYPE_PARAMETER;
        break;
    case IJavaElement.LOCAL_VARIABLE:
        contributionId = IJavaRefactorings.RENAME_LOCAL_VARIABLE;
        break;
    default:
        return null;
    }

    RenameJavaElementDescriptor descriptor = (RenameJavaElementDescriptor) RefactoringCore
            .getRefactoringContribution(contributionId).createDescriptor();
    descriptor.setJavaElement(javaElement);
    descriptor.setNewName(newName);
    if (elementType != IJavaElement.PACKAGE_FRAGMENT_ROOT)
        descriptor.setUpdateReferences(true);

    IDialogSettings javaSettings = JavaPlugin.getDefault().getDialogSettings();
    IDialogSettings refactoringSettings = javaSettings.getSection(RefactoringWizardPage.REFACTORING_SETTINGS); //TODO: undocumented API
    if (refactoringSettings == null) {
        refactoringSettings = javaSettings.addNewSection(RefactoringWizardPage.REFACTORING_SETTINGS);
    }

    switch (elementType) {
    case IJavaElement.METHOD:
    case IJavaElement.FIELD:
        descriptor.setDeprecateDelegate(refactoringSettings.getBoolean(DelegateUIHelper.DELEGATE_DEPRECATION));
        descriptor.setKeepOriginal(refactoringSettings.getBoolean(DelegateUIHelper.DELEGATE_UPDATING));
    }
    switch (elementType) {
    case IJavaElement.TYPE:
        //         case IJavaElement.COMPILATION_UNIT: // TODO
        descriptor.setUpdateSimilarDeclarations(
                refactoringSettings.getBoolean(RenameRefactoringWizard.TYPE_UPDATE_SIMILAR_ELEMENTS));
        int strategy;
        try {
            strategy = refactoringSettings.getInt(RenameRefactoringWizard.TYPE_SIMILAR_MATCH_STRATEGY);
        } catch (NumberFormatException e) {
            strategy = RenamingNameSuggestor.STRATEGY_EXACT;
        }
        descriptor.setMatchStrategy(strategy);
    }
    switch (elementType) {
    case IJavaElement.PACKAGE_FRAGMENT:
        descriptor.setUpdateHierarchy(
                refactoringSettings.getBoolean(RenameRefactoringWizard.PACKAGE_RENAME_SUBPACKAGES));
    }
    switch (elementType) {
    case IJavaElement.PACKAGE_FRAGMENT:
    case IJavaElement.TYPE:
        String fileNamePatterns = refactoringSettings.get(RenameRefactoringWizard.QUALIFIED_NAMES_PATTERNS);
        if (fileNamePatterns != null && fileNamePatterns.length() != 0) {
            descriptor.setFileNamePatterns(fileNamePatterns);
            boolean updateQualifiedNames = refactoringSettings
                    .getBoolean(RenameRefactoringWizard.UPDATE_QUALIFIED_NAMES);
            descriptor.setUpdateQualifiedNames(updateQualifiedNames);
            //               fShowPreview|= updateQualifiedNames;
        }
    }
    switch (elementType) {
    case IJavaElement.PACKAGE_FRAGMENT:
    case IJavaElement.TYPE:
    case IJavaElement.FIELD:
        boolean updateTextualOccurrences = refactoringSettings
                .getBoolean(RenameRefactoringWizard.UPDATE_TEXTUAL_MATCHES);
        descriptor.setUpdateTextualOccurrences(updateTextualOccurrences);
        //            fShowPreview|= updateTextualOccurrences;
    }
    switch (elementType) {
    case IJavaElement.FIELD:
        descriptor
                .setRenameGetters(refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_GETTER));
        descriptor
                .setRenameSetters(refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_SETTER));
    }
    return descriptor;
}