List of usage examples for org.eclipse.jdt.core IJavaElement JAVA_MODEL
int JAVA_MODEL
To view the source code for org.eclipse.jdt.core IJavaElement JAVA_MODEL.
Click Source Link
From source file:com.liferay.ide.service.ui.editor.ServiceMethodHyperlinkDetector.java
License:Open Source License
private IJavaElement[] selectOpenableElements(IJavaElement[] elements) { final List<IJavaElement> result = new ArrayList<IJavaElement>(elements.length); for (int i = 0; i < elements.length; i++) { final IJavaElement element = elements[i]; switch (element.getElementType()) { case IJavaElement.PACKAGE_DECLARATION: case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.JAVA_PROJECT: case IJavaElement.JAVA_MODEL: break; default:/* ww w . j ava 2 s .co m*/ result.add(element); break; } } return result.toArray(new IJavaElement[result.size()]); }
From source file:com.microsoft.javapkgsrv.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the label for a Java element with the flags as defined by this class. * * @param element the element to render/* ww w .j a v a2 s .co m*/ * @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 = (IPackageFragmentRoot) element.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); if (root != null && getFlag(flags, PREPEND_ROOT_PATH)) { appendPackageFragmentRootLabel(root, ROOT_QUALIFIED); fBuffer.append(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, APPEND_ROOT_PATH)) { int offset = fBuffer.length(); fBuffer.append(CONCAT_STRING); appendPackageFragmentRootLabel(root, ROOT_QUALIFIED); } }
From source file:com.redhat.ceylon.eclipse.code.explorer.JavaElementImageProvider.java
License:Open Source License
/** * Returns an image descriptor for a java element. This is the base image, no overlays. * @param element the element// w w w .ja va2s . c om * @param renderFlags the image flags * @return returns the image descriptor */ public ImageDescriptor getBaseImageDescriptor(IJavaElement element, int renderFlags) { try { switch (element.getElementType()) { case IJavaElement.INITIALIZER: return JavaPluginImages.DESC_MISC_PRIVATE; // 23479 case IJavaElement.METHOD: { IMethod method = (IMethod) element; IType declType = method.getDeclaringType(); int flags = method.getFlags(); if (declType.isEnum() && isDefaultFlag(flags) && method.isConstructor()) return JavaPluginImages.DESC_MISC_PRIVATE; return getMethodImageDescriptor(JavaModelUtil.isInterfaceOrAnnotation(declType), flags); } case IJavaElement.FIELD: { IMember member = (IMember) element; IType declType = member.getDeclaringType(); return getFieldImageDescriptor(JavaModelUtil.isInterfaceOrAnnotation(declType), member.getFlags()); } case IJavaElement.LOCAL_VARIABLE: return JavaPluginImages.DESC_OBJS_LOCAL_VARIABLE; case IJavaElement.PACKAGE_DECLARATION: return JavaPluginImages.DESC_OBJS_PACKDECL; case IJavaElement.IMPORT_DECLARATION: return JavaPluginImages.DESC_OBJS_IMPDECL; case IJavaElement.IMPORT_CONTAINER: return JavaPluginImages.DESC_OBJS_IMPCONT; case IJavaElement.TYPE: { IType type = (IType) element; IType declType = type.getDeclaringType(); boolean isInner = declType != null; boolean isInInterfaceOrAnnotation = isInner && JavaModelUtil.isInterfaceOrAnnotation(declType); return getTypeImageDescriptor(isInner, isInInterfaceOrAnnotation, type.getFlags(), useLightIcons(renderFlags)); } case IJavaElement.PACKAGE_FRAGMENT_ROOT: { IPackageFragmentRoot root = (IPackageFragmentRoot) element; IPath attach = root.getSourceAttachmentPath(); if (root.getKind() == IPackageFragmentRoot.K_BINARY) { if (root.isArchive()) { if (root.isExternal()) { if (attach == null) { return JavaPluginImages.DESC_OBJS_EXTJAR; } else { return JavaPluginImages.DESC_OBJS_EXTJAR_WSRC; } } else { if (attach == null) { return JavaPluginImages.DESC_OBJS_JAR; } else { return JavaPluginImages.DESC_OBJS_JAR_WSRC; } } } else { if (attach == null) { return JavaPluginImages.DESC_OBJS_CLASSFOLDER; } else { return JavaPluginImages.DESC_OBJS_CLASSFOLDER_WSRC; } } } else { return JavaPluginImages.DESC_OBJS_PACKFRAG_ROOT; } } case IJavaElement.PACKAGE_FRAGMENT: return getPackageFragmentIcon(element); case IJavaElement.COMPILATION_UNIT: return JavaPluginImages.DESC_OBJS_CUNIT; case IJavaElement.CLASS_FILE: /* this is too expensive for large packages try { IClassFile cfile= (IClassFile)element; if (cfile.isClass()) return JavaPluginImages.IMG_OBJS_CFILECLASS; return JavaPluginImages.IMG_OBJS_CFILEINT; } catch(JavaModelException e) { // fall through; }*/ return JavaPluginImages.DESC_OBJS_CFILE; case IJavaElement.JAVA_PROJECT: IJavaProject jp = (IJavaProject) element; if (jp.getProject().isOpen()) { IProject project = jp.getProject(); IWorkbenchAdapter adapter = (IWorkbenchAdapter) project.getAdapter(IWorkbenchAdapter.class); if (adapter != null) { ImageDescriptor result = adapter.getImageDescriptor(project); if (result != null) return result; } return DESC_OBJ_PROJECT; } return DESC_OBJ_PROJECT_CLOSED; case IJavaElement.JAVA_MODEL: return JavaPluginImages.DESC_OBJS_JAVA_MODEL; case IJavaElement.TYPE_PARAMETER: return JavaPluginImages.DESC_OBJS_TYPEVARIABLE; case IJavaElement.ANNOTATION: return JavaPluginImages.DESC_OBJS_ANNOTATION; default: // ignore. Must be a new, yet unknown Java element // give an advanced IWorkbenchAdapter the chance IWorkbenchAdapter wbAdapter = (IWorkbenchAdapter) element.getAdapter(IWorkbenchAdapter.class); if (wbAdapter != null && !(wbAdapter instanceof JavaWorkbenchAdapter)) { // avoid recursion ImageDescriptor imageDescriptor = wbAdapter.getImageDescriptor(element); if (imageDescriptor != null) { return imageDescriptor; } } return JavaPluginImages.DESC_OBJS_GHOST; } } catch (JavaModelException e) { if (e.isDoesNotExist()) return JavaPluginImages.DESC_OBJS_UNKNOWN; JavaPlugin.log(e); return JavaPluginImages.DESC_OBJS_GHOST; } }
From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerContentProvider.java
License:Open Source License
/** * Processes a delta recursively. When more than two children are affected the * tree is fully refreshed starting at this node. * * @param delta the delta to process// w w w .j a v a2s . co m * @param runnables the resulting view changes as runnables (type {@link Runnable}) * @return true is returned if the conclusion is to refresh a parent of an element. In that case no siblings need * to be processed * @throws JavaModelException thrown when the access to an element failed */ private boolean processDelta(IJavaElementDelta delta, Collection<Runnable> runnables) throws JavaModelException { int kind = delta.getKind(); int flags = delta.getFlags(); IJavaElement element = delta.getElement(); int elementType = element.getElementType(); if (elementType != IJavaElement.JAVA_MODEL && elementType != IJavaElement.JAVA_PROJECT) { IJavaProject proj = element.getJavaProject(); if (proj == null || !proj.getProject().isOpen()) // TODO: Not needed if parent already did the 'open' check! return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT) { if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) if (!fIsFlatLayout) { Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (!(parent instanceof IPackageFragmentRoot)) { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } if (!fIsFlatLayout) { if (kind == IJavaElementDelta.REMOVED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { postRemove(element, runnables); return false; } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } else if (kind == IJavaElementDelta.ADDED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { if (fFoldPackages) { postRefresh(parent, PARENT, element, runnables); return true; } else { postAdd(parent, element, runnables); return false; } } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; } } if (elementType == IJavaElement.COMPILATION_UNIT) { ICompilationUnit cu = (ICompilationUnit) element; if (!JavaModelUtil.isPrimary(cu)) { return false; } if (!getProvideMembers() && cu.isWorkingCopy() && kind == IJavaElementDelta.CHANGED) { return false; } if (kind == IJavaElementDelta.CHANGED && !isStructuralCUChange(flags)) { return false; // test moved ahead } if (!isOnClassPath(cu)) { // TODO: isOnClassPath expensive! Should be put after all cheap tests return false; } } if (elementType == IJavaElement.JAVA_PROJECT) { // handle open and closing of a project if ((flags & (IJavaElementDelta.F_CLOSED | IJavaElementDelta.F_OPENED)) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if the class path has changed we refresh the entire project if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if added it could be that the corresponding IProject is already shown. Remove it first. // bug 184296 if (kind == IJavaElementDelta.ADDED) { postRemove(element.getResource(), runnables); postAdd(element.getParent(), element, runnables); return false; } } if (kind == IJavaElementDelta.REMOVED) { Object parent = internalGetParent(element); if (element instanceof IPackageFragment) { // refresh package fragment root to allow filtering empty (parent) packages: bug 72923 if (fViewer.testFindItem(parent) != null) postRefresh(parent, PARENT, element, runnables); return true; } else if (element instanceof IPackageFragmentRoot) { // libs and class folders can show up twice (in library container and as resource at original location) IResource resource = element.getResource(); if (resource != null && !resource.exists()) postRemove(resource, runnables); } postRemove(element, runnables); if (parent instanceof IPackageFragment) postUpdateIcon((IPackageFragment) parent, runnables); // we are filtering out empty subpackages, so we // a package becomes empty we remove it from the viewer. if (isPackageFragmentEmpty(element.getParent())) { if (fViewer.testFindItem(parent) != null) postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } return false; } if (kind == IJavaElementDelta.ADDED) { Object parent = internalGetParent(element); // we are filtering out empty subpackages, so we // have to handle additions to them specially. if (parent instanceof IPackageFragment) { Object grandparent = internalGetParent(parent); // 1GE8SI6: ITPJUI:WIN98 - Rename is not shown in Packages View // avoid posting a refresh to an invisible parent if (parent.equals(fInput)) { postRefresh(parent, PARENT, element, runnables); } else { // refresh from grandparent if parent isn't visible yet if (fViewer.testFindItem(parent) == null) postRefresh(grandparent, GRANT_PARENT, element, runnables); else { postRefresh(parent, PARENT, element, runnables); } } return true; } else { if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) element).getKind() != IPackageFragmentRoot.K_SOURCE) { // libs and class folders can show up twice (in library container or under project, and as resource at original location) IResource resource = element.getResource(); if (resource != null) { Object resourceParent = super.internalGetParent(resource); if (resourceParent != null) { IJavaProject proj = element.getJavaProject(); if (fShowLibrariesNode || !resourceParent.equals(proj)) { postAdd(resourceParent, resource, runnables); } } } } postAdd(parent, element, runnables); } } if (elementType == IJavaElement.COMPILATION_UNIT || elementType == IJavaElement.CLASS_FILE) { if (kind == IJavaElementDelta.CHANGED) { // isStructuralCUChange already performed above postRefresh(element, ORIGINAL, element, runnables); } return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT_ROOT) { // the contents of an external JAR has changed if ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } // the source attachment of a JAR has changed if ((flags & (IJavaElementDelta.F_SOURCEATTACHED | IJavaElementDelta.F_SOURCEDETACHED)) != 0) postUpdateIcon(element, runnables); if (isClassPathChange(delta)) { // throw the towel and do a full refresh of the affected java project. postRefresh(element.getJavaProject(), PROJECT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; }
From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerPart.java
License:Open Source License
private Object getVisibleParent(Object object) { // Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=19104 if (object == null) return null; if (!(object instanceof IJavaElement)) return object; IJavaElement element2 = (IJavaElement) object; switch (element2.getElementType()) { case IJavaElement.IMPORT_DECLARATION: case IJavaElement.PACKAGE_DECLARATION: case IJavaElement.IMPORT_CONTAINER: case IJavaElement.TYPE: case IJavaElement.METHOD: case IJavaElement.FIELD: case IJavaElement.INITIALIZER: // select parent cu/classfile element2 = (IJavaElement) element2.getOpenable(); break;// w w w . j ava 2 s. c om case IJavaElement.JAVA_MODEL: element2 = null; break; } return element2; }
From source file:de.fu_berlin.inf.jtourbus.view.TourChangeListener.java
License:Open Source License
void visitInternal(IProgressMonitor pm, IJavaElementDelta delta) { IJavaElement elem = delta.getElement(); IJavaElementDelta[] children = delta.getAffectedChildren(); if (pm != null) pm.beginTask("", children.length + 2); if ((delta.getFlags() & IJavaElementDelta.F_CHILDREN) != 0) { if (delta.getKind() != IJavaElementDelta.CHANGED) { throw new RuntimeException("ASSERT: CHILDREN should always be CHANGE"); }//from ww w . j a v a 2 s.c om for (int i = 0; i < children.length; i++) { visit(pm, children[i]); } return; } switch (delta.getKind()) { case IJavaElementDelta.ADDED: { if (!((delta.getFlags() & IJavaElementDelta.F_CHILDREN) == 0)) throw new RuntimeException("ASSERT: ADDED has no children"); switch (elem.getElementType()) { case IJavaElement.JAVA_MODEL: throw new RuntimeException("ASSERT: Adding Java Model not possible"); case IJavaElement.JAVA_PROJECT: throw new RuntimeException("ASSERT: Adding Java Project not possible"); case IJavaElement.PACKAGE_FRAGMENT_ROOT: // The user added a source folder for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getResource())) fContentProvider.fTourPlan.add(bs); return; case IJavaElement.PACKAGE_FRAGMENT: // The user inserted a packaged for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getResource())) fContentProvider.fTourPlan.add(bs); return; case IJavaElement.COMPILATION_UNIT: { ICompilationUnit cu = (ICompilationUnit) elem; if (cu.getPrimary().equals(cu)) { for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getResource())) fContentProvider.fTourPlan.add(bs); } return; } default: ICompilationUnit cu = (ICompilationUnit) delta.getElement() .getAncestor(IJavaElement.COMPILATION_UNIT); redoCU(cu, pm); return; } } case IJavaElementDelta.REMOVED: if (!((delta.getFlags() & IJavaElementDelta.F_CHILDREN) == 0)) throw new RuntimeException("REMOVED has children"); switch (elem.getElementType()) { case IJavaElement.JAVA_MODEL: throw new RuntimeException("ASSERT: Java Model not possible"); case IJavaElement.JAVA_PROJECT: fContentProvider.fTourPlan.removeAll(); return; case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.PACKAGE_FRAGMENT: fContentProvider.fTourPlan.removeAll(); for (BusStop bs : Utilities.findJTourBusStops(pm, elem.getJavaProject().getResource())) fContentProvider.fTourPlan.add(bs); return; case IJavaElement.COMPILATION_UNIT: { ICompilationUnit cu = (ICompilationUnit) elem; if (cu.getPrimary().equals(cu)) { fContentProvider.fTourPlan.removeCU(cu); } return; } default: { ICompilationUnit cu = (ICompilationUnit) delta.getElement() .getAncestor(IJavaElement.COMPILATION_UNIT); redoCU(cu, pm); return; } } case IJavaElementDelta.CHANGED: // F_CONTENT && F_FINE_GRAINED if ((delta.getFlags() & IJavaElementDelta.F_CONTENT) != 0 && (delta.getFlags() & IJavaElementDelta.F_FINE_GRAINED) != 0) { ICompilationUnit cu = (ICompilationUnit) delta.getElement() .getAncestor(IJavaElement.COMPILATION_UNIT); redoCU(cu, pm); } // Closing without saving will trigger this event. We thus re-read // the file. if ((delta.getFlags() & IJavaElementDelta.F_PRIMARY_WORKING_COPY) != 0) { ICompilationUnit cu = (ICompilationUnit) delta.getElement(); /* FIXME */ redoCU(cu, pm); } break; } }
From source file:de.fu_berlin.inf.jtourbus.view.TourChangeListener.java
License:Open Source License
public void elementChanged(final ElementChangedEvent event) { try {// w w w . jav a 2 s .com try { // If we don't have a project, we don't need updating if (fContentProvider.fProject == null) return; IJavaElementDelta delta = event.getDelta(); // As a first step filter out all deltas that don't correspond // to the project we are monitoring if (delta.getElement().getElementType() == IJavaElement.JAVA_MODEL) { // ASSERT - There are no elementChanged events on the java // model itself if ((delta.getFlags() & IJavaElementDelta.F_CHILDREN) == 0 || (delta.getKind() != IJavaElementDelta.CHANGED)) { throw new RuntimeException("JavaModel assertion failed - 1"); } IJavaElementDelta[] children = delta.getAffectedChildren(); for (int i = 0; i < children.length; i++) { // ASSERT - The model contains projects if (children[i].getElement().getElementType() != IJavaElement.JAVA_PROJECT) { throw new RuntimeException("JavaModel assertion failed - 2"); } if (JTourBusPlugin.ALL_PROJECTS || fContentProvider.fProject.equals(children[i].getElement())) { visit(null, children[i]); } } } else { // ASSERT - Everything else but the model has a project if (delta.getElement().getJavaProject() == null) { throw new RuntimeException("JavaModel assertion failed - 3"); } if (JTourBusPlugin.ALL_PROJECTS || fContentProvider.fProject.equals(delta.getElement().getJavaProject())) visit(null, delta); } if (!fContentProvider.fViewer.getControl().isDisposed()) { Display display = fContentProvider.fViewer.getControl().getDisplay(); if (!display.isDisposed()) { display.asyncExec(new Runnable() { public void run() { // make sure the tree still exists if (fContentProvider.fViewer != null && fContentProvider.fViewer.getControl().isDisposed()) return; fContentProvider.fViewer.refresh(); if (newBusStop != null) { fContentProvider.fViewer.setSelection(new StructuredSelection(newBusStop)); } newBusStop = null; } }); } } } catch (RuntimeException e) { e.printStackTrace(); throw e; } } finally { notifyView = false; } }
From source file:de.loskutov.bco.ui.JdtUtils.java
License:Open Source License
/** * Selects the openable elements out of the given ones. * * @param elements the elements to filter * @return the openable elements/* www. j a v a 2 s . c o m*/ */ public static IJavaElement[] selectOpenableElements(IJavaElement[] elements) { List<IJavaElement> result = new ArrayList<IJavaElement>(elements.length); for (int i = 0; i < elements.length; i++) { IJavaElement element = elements[i]; if (element == null) { continue; } switch (element.getElementType()) { case IJavaElement.PACKAGE_DECLARATION: case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.JAVA_PROJECT: case IJavaElement.JAVA_MODEL: break; default: result.add(element); break; } } return result.toArray(new IJavaElement[result.size()]); }
From source file:edu.brown.cs.bubbles.bedrock.BedrockEditor.java
License:Open Source License
/********************************************************************************/ void rename(String proj, String bid, String file, int start, int end, String name, String handle, String newname, boolean keeporig, boolean getters, boolean setters, boolean dohier, boolean qual, boolean refs, boolean dosimilar, boolean textocc, boolean doedit, String filespat, IvyXmlWriter xw) throws BedrockException { FileData fd = file_map.get(file);//from w w w. j av a 2 s . com ICompilationUnit icu; if (doedit) { // icu = fd.getDefaultUnit(); icu = fd.getEditableUnit(bid); } else icu = fd.getEditableUnit(bid); IJavaElement[] elts; try { elts = icu.codeSelect(start, end - start); } catch (JavaModelException e) { throw new BedrockException("Bad location: " + e, e); } IJavaElement relt = null; for (IJavaElement ije : elts) { if (handle != null && !handle.equals(ije.getHandleIdentifier())) continue; if (name != null && !name.equals(ije.getElementName())) continue; relt = ije; break; } if (relt == null) throw new BedrockException("Item to rename not found"); String id = null; switch (relt.getElementType()) { case IJavaElement.COMPILATION_UNIT: id = IJavaRefactorings.RENAME_COMPILATION_UNIT; break; case IJavaElement.FIELD: IField ifld = (IField) relt; try { if (ifld.isEnumConstant()) id = IJavaRefactorings.RENAME_ENUM_CONSTANT; else id = IJavaRefactorings.RENAME_FIELD; } catch (JavaModelException e) { } break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.PACKAGE_FRAGMENT: id = IJavaRefactorings.RENAME_PACKAGE; break; case IJavaElement.LOCAL_VARIABLE: id = IJavaRefactorings.RENAME_LOCAL_VARIABLE; break; case IJavaElement.TYPE: id = IJavaRefactorings.RENAME_TYPE; break; case IJavaElement.TYPE_PARAMETER: id = IJavaRefactorings.RENAME_TYPE_PARAMETER; break; case IJavaElement.METHOD: id = IJavaRefactorings.RENAME_METHOD; break; case IJavaElement.ANNOTATION: case IJavaElement.CLASS_FILE: case IJavaElement.IMPORT_CONTAINER: case IJavaElement.IMPORT_DECLARATION: case IJavaElement.INITIALIZER: case IJavaElement.JAVA_MODEL: case IJavaElement.JAVA_PROJECT: case IJavaElement.PACKAGE_DECLARATION: break; } if (id == null) throw new BedrockException("Invalid element type to rename"); RenameJavaElementDescriptor renamer; RefactoringContribution rfc = RefactoringCore.getRefactoringContribution(id); if (rfc == null) { xw.begin("FAILURE"); xw.field("TYPE", "SETUP"); xw.textElement("ID", id); xw.end("FAILURE"); renamer = new RenameJavaElementDescriptor(id); } else { renamer = (RenameJavaElementDescriptor) rfc.createDescriptor(); } renamer.setJavaElement(relt); renamer.setKeepOriginal(keeporig); renamer.setNewName(newname); if (proj != null) renamer.setProject(proj); renamer.setRenameGetters(getters); renamer.setRenameSetters(setters); renamer.setUpdateHierarchy(dohier); renamer.setUpdateQualifiedNames(qual); renamer.setUpdateReferences(refs); renamer.setUpdateSimilarDeclarations(dosimilar); renamer.setUpdateTextualOccurrences(textocc); if (filespat != null) renamer.setFileNamePatterns(filespat); RefactoringStatus sts = renamer.validateDescriptor(); if (!sts.isOK()) { xw.begin("FAILURE"); xw.field("TYPE", "VALIDATE"); BedrockUtil.outputStatus(sts, xw); xw.end("FAILURE"); return; } try { Refactoring refactor = renamer.createRefactoring(sts); if (refactor == null) { xw.begin("FAILURE"); xw.field("TYPE", "CREATE"); xw.textElement("RENAMER", renamer.toString()); xw.textElement("REFACTOR", renamer.toString()); xw.textElement("STATUS", sts.toString()); xw.end("FAILURE"); return; } refactor.setValidationContext(null); // this seems to reset files from disk (mutliple times) sts = refactor.checkAllConditions(new NullProgressMonitor()); if (!sts.isOK()) { xw.begin("FAILURE"); xw.field("TYPE", "CHECK"); BedrockUtil.outputStatus(sts, xw); xw.end("FAILURE"); if (sts.hasFatalError()) return; } BedrockPlugin.logD("RENAME: Refactoring checked"); Change chng = refactor.createChange(new NullProgressMonitor()); BedrockPlugin.logD("RENAME: Refactoring change created"); if (doedit && chng != null) { chng.perform(new NullProgressMonitor()); } else if (chng != null) { xw.begin("EDITS"); BedrockUtil.outputChange(chng, xw); xw.end("EDITS"); } } catch (CoreException e) { throw new BedrockException("Problem creating refactoring: " + e, e); } BedrockPlugin.logD("RENAME RESULT = " + xw.toString()); }
From source file:edu.brown.cs.bubbles.bedrock.BedrockEditor.java
License:Open Source License
/********************************************************************************/ // This shouldn't be needed since edits in a window should also be made in the default // buffer and hence in the actual compilation unit that would be reported void getActiveElements(IJavaElement root, List<IJavaElement> rslt) { switch (root.getElementType()) { case IJavaElement.ANNOTATION: case IJavaElement.CLASS_FILE: 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: case IJavaElement.TYPE_PARAMETER: default:/*from w w w . ja v a 2s.c o m*/ break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: IPackageFragmentRoot pfr = (IPackageFragmentRoot) root; try { if (pfr.getKind() == IPackageFragmentRoot.K_SOURCE && pfr.hasChildren()) { IJavaElement[] chld = pfr.getChildren(); for (IJavaElement c : chld) getActiveElements(c, rslt); } } catch (JavaModelException e) { } break; case IJavaElement.JAVA_PROJECT: case IJavaElement.PACKAGE_FRAGMENT: IParent par = (IParent) root; try { if (par.hasChildren()) { IJavaElement[] chld = par.getChildren(); for (IJavaElement c : chld) getActiveElements(c, rslt); } } catch (JavaModelException e) { } break; case IJavaElement.COMPILATION_UNIT: ICompilationUnit cu = (ICompilationUnit) root; IProject ip = cu.getJavaProject().getProject(); File f = BedrockUtil.getFileForPath(cu.getPath(), ip); String fnm = f.getPath(); FileData fd = file_map.get(fnm); if (fd == null) rslt.add(cu); else { rslt.add(fd.getSearchUnit()); } break; } }