List of usage examples for org.eclipse.jdt.core IJavaElement getElementName
String getElementName();
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); } } }