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

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

Introduction

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

Prototype

String getElementName();

Source Link

Document

Returns the name of this element.

Usage

From source file:org.eclipse.che.jdt.refactoring.RefactoringManager.java

License:Open Source License

/**
 * Create rename refactoring. It can create two rename refactoring types.
 * First is linked mode rename refactoring, second is classic rename refactoring with wizard.
 * @param element element to rename//  w  ww .j  av  a 2s . co m
 * @param cu compilation unit which element belongs. null if element is IPackageFragment.
 * @param offset cursor position inside editor, used only for linked mode
 * @param lightweight if true try to create linked mode refactoring
 * @return rename refactoring session
 * @throws CoreException when impossible to create RenameSupport
 * @throws RefactoringException when we don't support renaming provided element
 */
public RenameRefactoringSession createRenameRefactoring(IJavaElement element, ICompilationUnit cu, int offset,
        boolean lightweight) throws CoreException, RefactoringException {

    //package fragments are always renamed with wizard
    RenameRefactoringSession session = DtoFactory.newDto(RenameRefactoringSession.class);
    String id = String.format("rename-%s", sessionId.getAndIncrement());
    session.setSessionId(id);
    session.setOldName(element.getElementName());
    session.setWizardType(getWizardType(element));
    if (lightweight && !(element instanceof IPackageFragment)) {
        RenameLinkedModeRefactoringSession refactoringSession = new RenameLinkedModeRefactoringSession(element,
                cu, offset);
        LinkedModeModel model = refactoringSession.getModel();
        if (model == null) {
            //we don't find edits for this element, so show wizard
            session.setMastShowWizard(true);
        } else {
            session.setMastShowWizard(false);
            session.setLinkedModeModel(model);
        }
        sessions.put(id, refactoringSession);
        return session;
    } else {
        RenameSupport renameSupport = createRenameSupport(element, null, RenameSupport.UPDATE_REFERENCES);
        if (renameSupport != null && renameSupport.preCheck().isOK()) {
            RenameRefactoring refactoring = renameSupport.getfRefactoring();
            RenameSession renameSession = new RenameSession(refactoring);
            session.setMastShowWizard(true);
            sessions.put(id, renameSession);
            return session;

        }
        throw new RefactoringException(
                "Can't create refactoring session for element: " + element.getElementName());
    }
}

From source file:org.eclipse.che.jdt.refactoring.RenameTypeTest.java

License:Open Source License

private void checkMappers(Refactoring refactoring, IType type, String newCUName,
        IJavaElement[] someClassMembers) {
    RenameTypeProcessor rtp = (RenameTypeProcessor) ((RenameRefactoring) refactoring).getProcessor();

    ICompilationUnit newUnit = (ICompilationUnit) rtp.getRefactoredJavaElement(type.getCompilationUnit());
    assertTrue(newUnit.exists());/*from   w ww .  ja  v  a 2s .  c o m*/
    assertTrue(newUnit.getElementName().equals(newCUName));

    IFile newFile = (IFile) rtp.getRefactoredResource(type.getResource());
    assertTrue(newFile.exists());
    assertTrue(newFile.getName().equals(newCUName));

    if ((type.getParent().getElementType() == IJavaElement.COMPILATION_UNIT)
            && type.getCompilationUnit().getElementName().equals(type.getElementName() + ".java")) {
        assertFalse(type.getCompilationUnit().exists());
        assertFalse(type.getResource().exists());
    }

    IPackageFragment oldPackage = (IPackageFragment) type.getCompilationUnit().getParent();
    IPackageFragment newPackage = (IPackageFragment) rtp.getRefactoredJavaElement(oldPackage);
    assertEquals(oldPackage, newPackage);

    for (int i = 0; i < someClassMembers.length; i++) {
        IMember member = (IMember) someClassMembers[i];
        IJavaElement refactoredMember = rtp.getRefactoredJavaElement(member);
        if (member instanceof IMethod && member.getElementName().equals(type.getElementName()))
            continue; // constructor
        assertTrue(refactoredMember.exists());
        assertEquals(member.getElementName(), refactoredMember.getElementName());
        assertFalse(refactoredMember.equals(member));
    }
}

From source file:org.eclipse.che.jdt.search.SearchManager.java

License:Open Source License

public FindUsagesResponse findUsage(IJavaProject javaProject, String fqn, int offset) throws SearchException {
    try {//from w  w w.  j av a 2s .co m
        ICompilationUnit compilationUnit;
        IType type = javaProject.findType(fqn);
        if (type == null) {
            throw new SearchException("Can't find type: " + fqn);
        }
        if (type.isBinary()) {
            compilationUnit = type.getClassFile().getWorkingCopy(DefaultWorkingCopyOwner.PRIMARY, null);
            if (compilationUnit == null) {
                throw new SearchException("Can't find sources for: " + fqn + " type");
            }
        } else {
            compilationUnit = type.getCompilationUnit();
        }
        IJavaElement[] elements = compilationUnit.codeSelect(offset, 0);
        if (elements != null && elements.length == 1) {
            IJavaElement element = elements[0];
            if (isTypeValid(element, TYPES_FOR_FIND_USAGE)) {
                return performFindUsageSearch(element);
            } else {
                throw new SearchException("Find usage can't search for element: " + element.getElementName());
            }

        } else {
            throw new SearchException(
                    "Can't find element to search, try to move cursor to another place and invoke search again");
        }

    } catch (JavaModelException e) {
        LOG.error(e.getMessage(), e);
        throw new SearchException(String.format("Can't find project: %s or file for FQN: %s",
                javaProject.getPath().toOSString(), fqn), e);
    } catch (BadLocationException e) {
        LOG.error(e.getMessage(), e);
        throw new SearchException("Some error happened when formatting search result", e);
    }
}

From source file:org.eclipse.che.plugin.java.server.che.JavadocFromSourceTest.java

License:Open Source License

@Test
public void testResolveMethodsParam() throws Exception {
    IJavaElement element = project
            .findElement("Lorg/eclipse/che/test/MyClass;.isValidName(Ljava.lang.String;)Z", null);
    assertThat(element).isNotNull().isInstanceOf(IMethod.class);
    assertThat(element.getElementName()).isEqualTo("isValidName");
}

From source file:org.eclipse.che.plugin.java.server.jdt.refactoring.RenameTypeTest.java

License:Open Source License

private void checkMappers(Refactoring refactoring, IType type, String newCUName,
        IJavaElement[] someClassMembers) {
    RenameTypeProcessor rtp = (RenameTypeProcessor) ((RenameRefactoring) refactoring).getProcessor();

    ICompilationUnit newUnit = (ICompilationUnit) rtp.getRefactoredJavaElement(type.getCompilationUnit());
    TestCase.assertTrue(newUnit.exists());
    TestCase.assertTrue(newUnit.getElementName().equals(newCUName));

    IFile newFile = (IFile) rtp.getRefactoredResource(type.getResource());
    TestCase.assertTrue(newFile.exists());
    TestCase.assertTrue(newFile.getName().equals(newCUName));

    if ((type.getParent().getElementType() == IJavaElement.COMPILATION_UNIT)
            && type.getCompilationUnit().getElementName().equals(type.getElementName() + ".java")) {
        Assert.assertFalse(type.getCompilationUnit().exists());
        Assert.assertFalse(type.getResource().exists());
    }//from   ww w.j  a v a  2 s  .c  om

    IPackageFragment oldPackage = (IPackageFragment) type.getCompilationUnit().getParent();
    IPackageFragment newPackage = (IPackageFragment) rtp.getRefactoredJavaElement(oldPackage);
    Assert.assertEquals(oldPackage, newPackage);

    for (int i = 0; i < someClassMembers.length; i++) {
        IMember member = (IMember) someClassMembers[i];
        IJavaElement refactoredMember = rtp.getRefactoredJavaElement(member);
        if (member instanceof IMethod && member.getElementName().equals(type.getElementName()))
            continue; // constructor
        TestCase.assertTrue(refactoredMember.exists());
        Assert.assertEquals(member.getElementName(), refactoredMember.getElementName());
        Assert.assertFalse(refactoredMember.equals(member));
    }
}

From source file:org.eclipse.che.plugin.java.server.refactoring.RefactoringManager.java

License:Open Source License

/**
 * Create rename refactoring. It can create two rename refactoring types.
 * First is linked mode rename refactoring, second is classic rename refactoring with wizard.
 *
 * @param element//  w w  w . jav  a 2  s  .  c o  m
 *         element to rename
 * @param cu
 *         compilation unit which element belongs. null if element is IPackageFragment.
 * @param offset
 *         cursor position inside editor, used only for linked mode
 * @param lightweight
 *         if true try to create linked mode refactoring
 * @return rename refactoring session
 * @throws CoreException
 *         when impossible to create RenameSupport
 * @throws RefactoringException
 *         when we don't support renaming provided element
 */
public RenameRefactoringSession createRenameRefactoring(IJavaElement element, ICompilationUnit cu, int offset,
        boolean lightweight) throws CoreException, RefactoringException {

    //package fragments are always renamed with wizard
    RenameRefactoringSession session = DtoFactory.newDto(RenameRefactoringSession.class);
    String id = String.format("rename-%s", sessionId.getAndIncrement());
    session.setSessionId(id);
    session.setOldName(element.getElementName());
    session.setWizardType(getWizardType(element));
    if (lightweight && !(element instanceof IPackageFragment)) {
        RenameLinkedModeRefactoringSession refactoringSession = new RenameLinkedModeRefactoringSession(element,
                cu, offset);
        LinkedModeModel model = refactoringSession.getModel();
        if (model != null) {
            session.setLinkedModeModel(model);
        }
        sessions.put(id, refactoringSession);
        return session;
    } else {
        RenameSupport renameSupport = createRenameSupport(element, null, RenameSupport.UPDATE_REFERENCES);
        if (renameSupport != null && renameSupport.preCheck().isOK()) {
            RenameRefactoring refactoring = renameSupport.getfRefactoring();
            RenameSession renameSession = new RenameSession(refactoring);
            sessions.put(id, renameSession);
            return session;

        }
        throw new RefactoringException(
                "Can't create refactoring session for element: " + element.getElementName());
    }
}

From source file:org.eclipse.dltk.mod.javascript.jdt.integration.JavaElementReference.java

License:Open Source License

public JavaElementReference(IJavaElement element, IModelElement owner) {
    super(element.getElementName(), true);
    this.element = element;
    this.owner = owner;
}

From source file:org.eclipse.dltk.mod.javascript.jdt.integration.JavaProposalReference.java

License:Open Source License

public void addModelElements(Collection toAdd) {
    try {//from   w w  w  .ja  va  2s  .  c  om

        IType r = findType(parentName);
        if (isGlobal) {
            if (r == null)
                return;
            ISourceRange sourceRange = r.getSourceRange();
            FakeField fakeField = new JavaReferenceFakeField((ModelElement) owner.getModule(),
                    r.getElementName(), sourceRange.getOffset(), sourceRange.getLength(), r);
            toAdd.add(fakeField);
            return;
        }
        while (r != null) {
            IJavaElement[] children = r.getChildren();
            boolean added = false;
            for (int a = 0; a < children.length; a++) {
                IJavaElement javaElement = children[a];
                IMember m = (IMember) javaElement;
                if (m.getElementName().equals(this.getName())) {

                    ISourceRange sourceRange = m.getSourceRange();
                    FakeField fakeField = new JavaReferenceFakeField((ModelElement) owner.getModule(),
                            javaElement.getElementName(), sourceRange.getOffset(), sourceRange.getLength(),
                            javaElement);
                    int flags = m.getFlags();
                    if (Flags.isPublic(flags) || Flags.isProtected(flags)) {
                        toAdd.add(fakeField);
                        added = true;
                        break;
                    }

                }

            }
            if (added)
                break;
            String sm = r.getSuperclassTypeSignature();

            if (sm != null) {
                sm = sm.substring(1, sm.length() - 1);
                r = project.findType(sm);
            } else
                r = null;
        }
    } catch (JavaModelException e) {
    }
}

From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java

License:Open Source License

/**
 * Appends the label for a Java element with the flags as defined by this
 * class.// w ww.  j  a va  2 s  . c om
 * 
 * @param element
 *            the element to render
 * @param flags
 *            the rendering flags.
 */
public void appendElementLabel(IJavaElement element, long flags) {
    int type = element.getElementType();
    IPackageFragmentRoot root = null;

    if (type != IJavaElement.JAVA_MODEL && type != IJavaElement.JAVA_PROJECT
            && type != IJavaElement.PACKAGE_FRAGMENT_ROOT)
        root = JavaModelUtil.getPackageFragmentRoot(element);
    if (root != null && getFlag(flags, JavaElementLabels.PREPEND_ROOT_PATH)) {
        appendPackageFragmentRootLabel(root, JavaElementLabels.ROOT_QUALIFIED);
        fBuffer.append(JavaElementLabels.CONCAT_STRING);
    }

    switch (type) {
    case IJavaElement.METHOD:
        appendMethodLabel((IMethod) element, flags);
        break;
    case IJavaElement.FIELD:
        appendFieldLabel((IField) element, flags);
        break;
    case IJavaElement.LOCAL_VARIABLE:
        appendLocalVariableLabel((ILocalVariable) element, flags);
        break;
    case IJavaElement.TYPE_PARAMETER:
        appendTypeParameterLabel((ITypeParameter) element, flags);
        break;
    case IJavaElement.INITIALIZER:
        appendInitializerLabel((IInitializer) element, flags);
        break;
    case IJavaElement.TYPE:
        appendTypeLabel((IType) element, flags);
        break;
    case IJavaElement.CLASS_FILE:
        appendClassFileLabel((IClassFile) element, flags);
        break;
    case IJavaElement.COMPILATION_UNIT:
        appendCompilationUnitLabel((ICompilationUnit) element, flags);
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        appendPackageFragmentLabel((IPackageFragment) element, flags);
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        appendPackageFragmentRootLabel((IPackageFragmentRoot) element, flags);
        break;
    case IJavaElement.IMPORT_CONTAINER:
    case IJavaElement.IMPORT_DECLARATION:
    case IJavaElement.PACKAGE_DECLARATION:
        appendDeclarationLabel(element, flags);
        break;
    case IJavaElement.JAVA_PROJECT:
    case IJavaElement.JAVA_MODEL:
        fBuffer.append(element.getElementName());
        break;
    default:
        fBuffer.append(element.getElementName());
    }

    if (root != null && getFlag(flags, JavaElementLabels.APPEND_ROOT_PATH)) {
        int offset = fBuffer.length();
        fBuffer.append(JavaElementLabels.CONCAT_STRING);
        appendPackageFragmentRootLabel(root, JavaElementLabels.ROOT_QUALIFIED);

        if (getFlag(flags, JavaElementLabels.COLORIZE)) {
            fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE);
        }

    }
}

From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java

License:Open Source License

/**
 * Appends the label for a import container, import or package declaration.
 * Considers the D_* flags.//from   w  w  w .  j ava  2s  .co  m
 * 
 * @param declaration
 *            the element to render
 * @param flags
 *            the rendering flags. Flags with names starting with 'D_' are
 *            considered.
 */
public void appendDeclarationLabel(IJavaElement declaration, long flags) {
    if (getFlag(flags, JavaElementLabels.D_QUALIFIED)) {
        IJavaElement openable = (IJavaElement) declaration.getOpenable();
        if (openable != null) {
            appendElementLabel(openable, JavaElementLabels.CF_QUALIFIED | JavaElementLabels.CU_QUALIFIED
                    | (flags & QUALIFIER_FLAGS));
            fBuffer.append('/');
        }
    }
    if (declaration.getElementType() == IJavaElement.IMPORT_CONTAINER) {
        fBuffer.append(messages.JavaElementLabels_import_container());
    } else {
        fBuffer.append(declaration.getElementName());
    }
    // post qualification
    if (getFlag(flags, JavaElementLabels.D_POST_QUALIFIED)) {
        int offset = fBuffer.length();
        IJavaElement openable = (IJavaElement) declaration.getOpenable();
        if (openable != null) {
            fBuffer.append(JavaElementLabels.CONCAT_STRING);
            appendElementLabel(openable, JavaElementLabels.CF_QUALIFIED | JavaElementLabels.CU_QUALIFIED
                    | (flags & QUALIFIER_FLAGS));
        }
        if (getFlag(flags, JavaElementLabels.COLORIZE)) {
            fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE);
        }
    }
}