List of usage examples for org.eclipse.jdt.core IJavaElement JAVA_PROJECT
int JAVA_PROJECT
To view the source code for org.eclipse.jdt.core IJavaElement JAVA_PROJECT.
Click Source Link
From source file:org.jboss.tools.servers.wildfly.swarm.core.internal.ClasspathChangeListener.java
License:Open Source License
private void visit(IJavaElementDelta delta) { IJavaElement el = delta.getElement(); switch (el.getElementType()) { case IJavaElement.JAVA_MODEL: for (IJavaElementDelta c : delta.getAffectedChildren()) { visit(c);// w w w .j av a 2 s . c o m } break; case IJavaElement.JAVA_PROJECT: IJavaProject javaProject = (IJavaProject) el; if (isClasspathChanged(delta)) { detectionJob.analyze(javaProject); } break; default: break; } }
From source file:org.jboss.tools.ws.creation.core.utils.JBossWSCreationUtils.java
License:Open Source License
public static ICompilationUnit findUnitByFileName(IJavaElement javaElem, String filePath) throws Exception { ICompilationUnit unit = null;/*from ww w . j av a2 s .co m*/ if (!javaElem.getOpenable().isOpen()) { javaElem.getOpenable().open(null); } IJavaElement[] elems = null; if (javaElem instanceof IParent) { IParent parent = (IParent) javaElem; elems = parent.getChildren(); } if (elems == null) { return null; } for (IJavaElement elem : elems) { if (elem.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT) { IPackageFragmentRoot root = (IPackageFragmentRoot) elem; if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { unit = findUnitByFileName(elem, filePath); if (unit != null) { return unit; } } } else if ((elem.getElementType() == IJavaElement.PACKAGE_FRAGMENT) || (elem.getElementType() == IJavaElement.JAVA_PROJECT)) { unit = findUnitByFileName(elem, filePath); if (unit != null) { return unit; } } else if (elem.getElementType() == IJavaElement.COMPILATION_UNIT) { ICompilationUnit compUnit = (ICompilationUnit) elem; if (compUnit.getPath().toString().equals(filePath)) { compUnit.open(null); return compUnit; } } } return null; }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementChangedBuildJob.java
License:Open Source License
protected IStatus run(final IProgressMonitor progressMonitor) { final long startTime = new Date().getTime(); IJavaElement element = null;//from w w w . j a v a 2 s. c om try { progressMonitor.beginTask("Building JAX-RS Metamodel", 3 * SCALE); progressMonitor.worked(SCALE); Logger.debug("Building JAX-RS Metamodel after: {}", event); if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } // scan and filter delta, retrieve a list of java changes final List<JavaElementChangedEvent> affectedJavaElements = new JavaElementDeltaScanner() .scanAndFilterEvent(event, new SubProgressMonitor(progressMonitor, SCALE)); if (affectedJavaElements.isEmpty()) { Logger.debug("* No relevant affected element to process *"); return Status.OK_STATUS; } if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } for (JavaElementChangedEvent delta : affectedJavaElements) { element = delta.getElement(); final IJavaProject javaProject = element.getJavaProject(); final JaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject, true); // prevent NPE when opening a closed project (ie, there's no metamodel yet). if (metamodel != null) { try { metamodel.processJavaElementChange(delta, progressMonitor); if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } } catch (Exception e) { final IStatus status = Logger.error("Failed to build or refresh the JAX-RS metamodel", e); metamodel.setBuildStatus(status); return status; } finally { if (Logger.isDebugEnabled()) { Logger.debug(metamodel.getStatus()); } } } } } catch (Exception e) { Logger.error("Failed to process Java element change", e); if (element != null) { return new Status(IStatus.ERROR, JBossJaxrsCorePlugin.PLUGIN_ID, "Failed to build or refresh the JAX-RS metamodel while processing " + element.getElementName() + " in project " + element.getAncestor(IJavaElement.JAVA_PROJECT).getElementName(), e); } else { return new Status(IStatus.ERROR, JBossJaxrsCorePlugin.PLUGIN_ID, "Failed to build or refresh the JAX-RS metamodel while processing a change in the Java Model", e); } } finally { progressMonitor.done(); long endTime = new Date().getTime(); if (Logger.isDebugEnabled()) { Logger.debug("Java element changes processed in {} ms.", (endTime - startTime)); } } return Status.OK_STATUS; }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementChangedBuildTask.java
License:Open Source License
public IStatus execute(final IProgressMonitor progressMonitor) { final long startTime = new Date().getTime(); IJavaElement element = null;/*from w w w. jav a 2s . c o m*/ try { progressMonitor.beginTask("Building JAX-RS Metamodel", 3 * SCALE); progressMonitor.worked(SCALE); Logger.debug("Building JAX-RS Metamodel after: {}", event); if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } // scan and filter delta, retrieve a list of java changes final List<JavaElementChangedEvent> affectedJavaElements = new JavaElementDeltaScanner() .scanAndFilterEvent(event, new SubProgressMonitor(progressMonitor, SCALE)); if (affectedJavaElements.isEmpty()) { Logger.debug("* No relevant affected element to process *"); return Status.OK_STATUS; } if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } for (JavaElementChangedEvent delta : affectedJavaElements) { element = delta.getElement(); final IJavaProject javaProject = element.getJavaProject(); final JaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject, true); // prevent NPE when opening a closed project (ie, there's no metamodel yet). if (metamodel != null) { try { metamodel.processJavaElementChange(delta, progressMonitor); if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } } catch (Throwable e) { final IStatus status = Logger.error("Failed to build or refresh the JAX-RS metamodel", e); metamodel.setBuildStatus(status); return status; } finally { if (Logger.isDebugEnabled()) { Logger.debug(metamodel.getStatus()); } } } } } catch (Exception e) { if (element != null) { return new Status(IStatus.ERROR, JBossJaxrsCorePlugin.PLUGIN_ID, "Failed to build or refresh the JAX-RS metamodel while processing " + element.getElementName() + " in project " + element.getAncestor(IJavaElement.JAVA_PROJECT).getElementName(), e); } else { return new Status(IStatus.ERROR, JBossJaxrsCorePlugin.PLUGIN_ID, "Failed to build or refresh the JAX-RS metamodel while processing a change in the Java Model", e); } } finally { progressMonitor.done(); long endTime = new Date().getTime(); if (Logger.isDebugEnabled()) { Logger.debug("Java element changes processed in {} ms.", (endTime - startTime)); } } return Status.OK_STATUS; }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaScanner.java
License:Open Source License
/** * Recursively analyse the given Java Element Delta. * /*w w w.j a v a2 s . c o m*/ * @param delta * @param eventType * @throws CoreException * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100267 */ private List<JavaElementChangedEvent> scanDelta(final IJavaElementDelta delta, final int eventType) throws CoreException { final List<JavaElementChangedEvent> events = new ArrayList<JavaElementChangedEvent>(); final IJavaElement element = delta.getElement(); // skip as the project is closed if (element == null) { Logger.debug("** skipping this build because the delta element is null **"); return Collections.emptyList(); } else if (element.getElementType() == IJavaElement.JAVA_PROJECT && !element.getJavaProject().getProject().isOpen() && delta.getFlags() != F_OPENED) { Logger.debug("** skipping this build because the java project is closed. **"); return Collections.emptyList(); } else if ((element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT)) { final IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) element; if (!packageFragmentRoot.isExternal() && (packageFragmentRoot.getResource() == null || !packageFragmentRoot.getResource().exists())) { return Collections.emptyList(); } } else if (element.getResource() == null || !element.getResource().exists()) { return Collections.emptyList(); } final int elementKind = element.getElementType(); final int deltaKind = retrieveDeltaKind(delta); final Flags flags = new Flags(delta.getFlags()); if (elementKind == JAVA_PROJECT) { final JavaElementChangedEvent event = new JavaElementChangedEvent(element, delta.getKind(), eventType, null, new Flags(delta.getFlags())); if (javaElementChangedEventFilter.apply(event)) { events.add(event); // skip anything below return events; } } final CompilationUnit compilationUnitAST = getCompilationUnitAST(delta); if (elementKind == COMPILATION_UNIT) { final ICompilationUnit compilationUnit = (ICompilationUnit) element; // compilationUnitAST is null when the given compilation unit'w // working copy is being commited (ie, Java Editor is being closed // for the given compilation unit, etc.) if (compilationUnit.exists() // see https://issues.jboss.org/browse/JBIDE-12760: compilationUnit may not exist && compilationUnit.isWorkingCopy() && compilationUnitAST != null) { // assuming possible changes in the method signatures (return type, // param types and param annotations). Other changes in methods // (renaming, adding/removing params) result in add+remove // events on the given method itself. if (requiresDiffsComputation(flags)) { for (IType type : compilationUnit.getAllTypes()) { for (IMethod javaMethod : type.getMethods()) { final JavaElementChangedEvent event = new JavaElementChangedEvent(javaMethod, CHANGED, eventType, compilationUnitAST, new Flags(F_SIGNATURE)); if (javaElementChangedEventFilter.apply(event)) { events.add(event); } } } } } } // element is part of the compilation unit else if (compilationUnitAST != null) { final JavaElementChangedEvent event = new JavaElementChangedEvent(element, deltaKind, eventType, compilationUnitAST, flags); if (javaElementChangedEventFilter.apply(event)) { events.add(event); } } // continue with children elements, both on annotations and other java // elements. for (IJavaElementDelta affectedChild : delta.getAffectedChildren()) { events.addAll(scanDelta(affectedChild, eventType)); } for (IJavaElementDelta annotation : delta.getAnnotationDeltas()) { events.addAll(scanDelta(annotation, eventType)); } return events; }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsMetamodel.java
License:Open Source License
/** * Process a single Java Element change/*from ww w. ja v a2 s. co m*/ * * @param delta * @param progressMonitor * @throws CoreException */ public void processJavaElementChange(final JavaElementChangedEvent delta, final IProgressMonitor progressMonitor) throws CoreException { try { Logger.debug("Processing {}", delta); readWriteLock.writeLock().lock(); final IJavaElement element = delta.getElement(); final CompilationUnit ast = delta.getCompilationUnitAST(); final int deltaKind = delta.getKind(); switch (element.getElementType()) { case IJavaElement.JAVA_PROJECT: case IJavaElement.PACKAGE_FRAGMENT_ROOT: processProject(progressMonitor); break; case IJavaElement.ANNOTATION: processJavaAnnotationChange((IAnnotation) element, deltaKind, ast, progressMonitor); break; case IJavaElement.COMPILATION_UNIT: case IJavaElement.TYPE: case IJavaElement.METHOD: case IJavaElement.FIELD: processJavaElementChange(element, deltaKind, ast, progressMonitor); break; default: // ignore break; } } finally { this.initializing = false; progressMonitor.done(); readWriteLock.writeLock().unlock(); setBuildStatus(Status.OK_STATUS); Logger.debug("Done processing Java changes: " + getStatus()); } }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsMetamodel.java
License:Open Source License
/** * Search for the JAX-RS java-based elements matching the given * {@link IJavaElement} in the metamodel. * /*from w ww .ja v a 2 s . c om*/ * @param element * @param ast * @return the matching JAX-RS Elements or an empty set if no JAX-RS * element matched in the metamodel. * @throws JavaModelException */ private List<IJaxrsElement> searchJaxrsElements(final IJavaElement element) throws JavaModelException { if (element == null) { return Collections.emptyList(); } try { readWriteLock.readLock().lock(); final List<IJaxrsElement> result = new ArrayList<IJaxrsElement>(); final Term javaElementTerm = new Term(FIELD_JAVA_ELEMENT, Boolean.TRUE.toString()); switch (element.getElementType()) { case IJavaElement.JAVA_PROJECT: final Term javaProjectIdentifier = new Term(FIELD_JAVA_PROJECT_IDENTIFIER, element.getHandleIdentifier()); result.addAll(searchJaxrsElements(javaElementTerm, javaProjectIdentifier)); break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: final Term packageFragmentRootIdentifier = new Term(FIELD_PACKAGE_FRAGMENT_ROOT_IDENTIFIER, element.getHandleIdentifier()); result.addAll(searchJaxrsElements(javaElementTerm, packageFragmentRootIdentifier)); break; case IJavaElement.COMPILATION_UNIT: final Term compilationUnitTerm = new Term(FIELD_COMPILATION_UNIT_IDENTIFIER, element.getHandleIdentifier()); result.addAll(searchJaxrsElements(javaElementTerm, compilationUnitTerm)); break; case IJavaElement.TYPE: case IJavaElement.FIELD: case IJavaElement.METHOD: final IJaxrsElement foundElement = this.elements.get(element.getHandleIdentifier()); if (foundElement != null) { result.add(foundElement); } break; } return result; } finally { readWriteLock.readLock().unlock(); } }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsMetamodel.java
License:Open Source License
/** * Searches and returns all JAX-RS Java-based Elements matching the given * {@link IJavaElement}, which can be {@link Annotation} {@link IProject}, * {@link IPackageFragmentRoot}, {@link ICompilationUnit} or an * {@link IMember}// w w w . ja v a 2 s. c o m * * @param javaElement * the java element * * @return the JAX-RS Elements matching the given Java Element or empty list * if none matches. */ public <T extends IJaxrsElement> Set<T> findElements(final IJavaElement javaElement) { if (javaElement == null) { return Collections.emptySet(); } try { readWriteLock.readLock().lock(); final String identifier = javaElement.getHandleIdentifier(); switch (javaElement.getElementType()) { case IJavaElement.JAVA_PROJECT: return searchJaxrsElements(new Term(FIELD_JAVA_PROJECT_IDENTIFIER, identifier)); case IJavaElement.PACKAGE_FRAGMENT_ROOT: return searchJaxrsElements(new Term(FIELD_PACKAGE_FRAGMENT_ROOT_IDENTIFIER, identifier)); case IJavaElement.COMPILATION_UNIT: return searchJaxrsElements(new Term(FIELD_COMPILATION_UNIT_IDENTIFIER, identifier)); default: return searchJaxrsElements(LuceneDocumentFactory.getIdentifierTerm(javaElement)); } } finally { readWriteLock.readLock().unlock(); } }
From source file:org.jetbrains.kotlin.wizards.NewUnitWizardPage.java
License:Apache License
private String getSourceFolderFromSelection() { String defaultFolder = DEFAULT_SOURCE_FOLDER; if (selection.isEmpty()) { return defaultFolder; }/* www .j av a 2 s . c om*/ Object selectedObject = selection.getFirstElement(); if (selectedObject instanceof IJavaElement) { IJavaElement selectedJavaElement = (IJavaElement) selectedObject; switch (selectedJavaElement.getElementType()) { case IJavaElement.JAVA_PROJECT: return getDefaultSrcByProject((IJavaProject) selectedJavaElement); case IJavaElement.PACKAGE_FRAGMENT_ROOT: return selectedJavaElement.getPath().toPortableString(); case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.COMPILATION_UNIT: return selectedJavaElement.getPath().uptoSegment(2).toPortableString(); } } else if (selectedObject instanceof IResource) { IResource selectedResource = (IResource) selectedObject; switch (selectedResource.getType()) { case IResource.FOLDER: return getDefaultSrcByProject(JavaCore.create(selectedResource.getProject())); case IResource.FILE: return selectedResource.getFullPath().uptoSegment(2).toPortableString(); } } return defaultFolder; }
From source file:org.limy.eclipse.common.jdt.LimyJavaUtils.java
License:Open Source License
/** * JavavfSJavat@C? results i[?B//from w w w . ja v a2 s . c o m * @param results i[? * @param javaElement Javavf * @throws CoreException RAO */ private static void appendForIParent(Collection<IJavaElement> results, IJavaElement javaElement) throws CoreException { int type = javaElement.getElementType(); if (type == IJavaElement.JAVA_PROJECT || type == IJavaElement.PACKAGE_FRAGMENT_ROOT || type == IJavaElement.PACKAGE_FRAGMENT) { IParent parent = (IParent) javaElement; for (IJavaElement child : parent.getChildren()) { // JavapbP?[W???ATupbP?[Wr appendAllJavas(results, child); } } }