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

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

Introduction

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

Prototype

IJavaProject getJavaProject();

Source Link

Document

Returns the Java project this element is contained in, or null if this element is not contained in any Java project (for instance, the IJavaModel is not contained in any Java project).

Usage

From source file:org.jboss.tools.cdi.internal.core.el.CdiElResolver.java

License:Open Source License

public BeanRelevanceCheck(IJavaElement element) {
    super(element);
    IProject project = element.getJavaProject().getProject();
    ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
    if (cdi != null) {
        for (IBean b : cdi.getBeans(element)) {
            if (b.getName() != null) {
                names.add(b.getName());//  w w  w.ja  va  2 s . com
            }
        }
    }
}

From source file:org.jboss.tools.cdi.ui.search.CDIBeanQueryParticipant.java

License:Open Source License

@Override
public void search(ISearchRequestor requestor, QuerySpecification querySpecification, IProgressMonitor monitor)
        throws CoreException {
    if (querySpecification instanceof ElementQuerySpecification) {
        if (!isSearchForReferences(querySpecification.getLimitTo())) {
            return;
        }/*from  www  .j av  a  2 s  . co  m*/

        ElementQuerySpecification qs = (ElementQuerySpecification) querySpecification;
        IJavaElement element = qs.getElement();
        IProject project = element.getJavaProject().getProject();

        ICDIProject cdiProject = CDICorePlugin.getCDIProject(project, true);

        if (cdiProject == null) {
            return;
        }

        searchInProject(requestor, querySpecification, cdiProject, monitor, element);

        CDICoreNature[] natures = cdiProject.getNature().getAllDependentProjects(true);
        for (CDICoreNature nature : natures) {
            ICDIProject p = nature.getDelegate();
            if (p != null) {
                searchInProject(requestor, querySpecification, p, monitor, element);
            }
        }

    }
}

From source file:org.jboss.tools.cdi.ui.search.InjectionPointQueryParticipant.java

License:Open Source License

public void search(ISearchRequestor requestor, QuerySpecification querySpecification, IProgressMonitor monitor)
        throws CoreException {
    objects.clear();/*from ww w . jav a2  s. c  om*/

    if (querySpecification instanceof ElementQuerySpecification) {
        if (!isSearchForReferences(querySpecification.getLimitTo()))
            return;

        ElementQuerySpecification qs = (ElementQuerySpecification) querySpecification;
        IJavaElement element = qs.getElement();
        if (element instanceof IMethod || element instanceof IField || element instanceof ILocalVariable) {
            IProject project = element.getJavaProject().getProject();
            if (project == null)
                return;

            CDICoreNature cdiNature = CDICorePlugin.getCDI(project, true);

            if (cdiNature == null)
                return;

            ICDIProject cdiProject = cdiNature.getDelegate();

            if (cdiProject == null)
                return;

            Collection<IBean> beans = cdiProject.getBeans(element.getPath());

            IInjectionPoint injectionPoint = CDIUtil.findInjectionPoint(beans, element, 0);
            if (injectionPoint != null) {
                List<IBean> resultBeanList = CDIUtil.sortBeans(cdiProject.getBeans(false, injectionPoint));
                for (IBean bean : resultBeanList) {
                    if (bean != null && containsInSearchScope(querySpecification, bean)) {
                        CDIMatch match = new CDIMatch(bean);
                        if (!objects.contains(match.getPath())) {
                            requestor.reportMatch(match);
                            objects.add(match.getPath());
                        }
                    }
                }
                resolveObserverMethods(cdiProject, injectionPoint, requestor, querySpecification);
            }
            if (element instanceof IMethod) {
                IParameter param = findObserverParameter(beans, (IMethod) element);
                if (param != null) {
                    findObservedEvents(cdiProject, param, requestor, querySpecification);
                }
            }
        }
    }
}

From source file:org.jboss.tools.common.jdt.debug.ui.actions.LaunchDialogAction.java

License:Open Source License

public void run() {
    LaunchConfigurationManager lcManager = DebugUIPlugin.getDefault().getLaunchConfigurationManager();
    LaunchGroupExtension group = lcManager.getLaunchGroup(RemoteDebugActivator.LAUNCH_CATEGORY);
    LaunchConfigurationsDialog dialog = new LaunchConfigurationsDialog(getShell(), group);
    ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
    ILaunchConfigurationType type = manager
            .getLaunchConfigurationType(RemoteDebugActivator.REMOTE_JAVA_APPLICATION_ID);
    ILaunchConfiguration config = RemoteDebugActivator.getDefault().getDefaultLaunchConfiguration();
    ILaunchConfigurationWorkingCopy wc = null;
    try {/* www.jav  a2 s  .  c o m*/
        if (config == null) {
            wc = RemoteDebugActivator.createNewLaunchConfiguration(type);
        } else {
            wc = config.getWorkingCopy();
        }
    } catch (CoreException e) {
        RemoteDebugUIActivator.log(e);
        RemoteDebugUIActivator.displayLaunchError(getShell(), config, e);
    }
    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
    ISelection currentSelection = page.getSelection();
    if (currentSelection instanceof ITreeSelection) {
        ITreeSelection selection = (ITreeSelection) currentSelection;
        Object object = selection.getFirstElement();
        if (!(object instanceof IJavaElement) && object instanceof IAdaptable) {
            object = ((IAdaptable) object).getAdapter(IJavaElement.class);
        }
        if (object instanceof IJavaElement) {
            IJavaElement javaElement = (IJavaElement) object;
            IJavaProject javaProject = javaElement.getJavaProject();
            if (javaProject != null) {
                try {
                    wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME,
                            javaProject.getElementName());
                    RemoteDebugUIActivator.getDefault().addSelectedProjects(wc, selection, javaProject);
                    config = wc.doSave();
                } catch (CoreException e) {
                    RemoteDebugUIActivator.log(e);
                    RemoteDebugUIActivator.displayLaunchError(getShell(), config, e);
                }
            }
        }
    }
    IStructuredSelection selection = new StructuredSelection(config);
    dialog.setInitialSelection(selection);
    dialog.setOpenMode(LaunchConfigurationsDialog.LAUNCH_CONFIGURATION_DIALOG_OPEN_ON_SELECTION);
    dialog.open();
}

From source file:org.jboss.tools.esb.ui.wizard.NewActionWizard.java

License:Open Source License

IProject getProject(IStructuredSelection selection) {
    if (selection.isEmpty() || !(selection instanceof IStructuredSelection)) {
        return null;
    }/*from   ww w. jav  a 2 s .  c o  m*/
    Object o = ((IStructuredSelection) selection).getFirstElement();
    if (o instanceof IProject) {
        return (IProject) o;
    } else if (o instanceof IJavaElement) {
        IJavaElement e = (IJavaElement) o;
        return e.getJavaProject().getProject();
    } else if (o instanceof IAdaptable) {
        return (IProject) ((IAdaptable) o).getAdapter(IProject.class);
    }
    return null;
}

From source file:org.jboss.tools.portlet.ui.internal.wizard.xpl.NewJavaClassWizardPageEx.java

License:Open Source License

/**
 * @return/*  ww  w . jav  a2 s .com*/
 */
private IProject getSelectedProject() {
    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    if (window == null)
        return null;
    ISelection selection = window.getSelectionService().getSelection();
    if (selection == null)
        return null;
    if (!(selection instanceof IStructuredSelection))
        return null;
    IStructuredSelection stucturedSelection = (IStructuredSelection) selection;
    if (stucturedSelection.getFirstElement() instanceof EObject)
        return ProjectUtilities.getProject(stucturedSelection.getFirstElement());
    IJavaElement element = getInitialJavaElement(selection);
    if (element != null && element.getJavaProject() != null)
        return element.getJavaProject().getProject();
    return getExtendedSelectedProject(stucturedSelection.getFirstElement());
}

From source file:org.jboss.tools.remote.debug.ui.RemoteDebugUIActivator.java

License:Open Source License

private ISourceLookupDirector addSourceContainers(ILaunchManager manager, ILaunchConfigurationWorkingCopy wc,
        ITreeSelection selection, IJavaProject javaProject) throws CoreException {
    String memento = null;//from   w  w w . j  ava 2 s.  co  m
    String locatorId = null;
    try {
        memento = wc.getAttribute(ILaunchConfiguration.ATTR_SOURCE_LOCATOR_MEMENTO, (String) null);
        locatorId = wc.getAttribute(ILaunchConfiguration.ATTR_SOURCE_LOCATOR_ID, (String) null);
        if (locatorId == null) {
            locatorId = wc.getType().getSourceLocatorId();
        }
    } catch (CoreException e) {
        log(e);
    }
    IPersistableSourceLocator locator = manager.newSourceLocator(locatorId);
    if (memento != null) {
        locator.initializeFromMemento(memento);
    } else {
        locator.initializeDefaults(wc);
    }
    if (locator instanceof AbstractSourceLookupDirector) {
        ISourceLookupDirector director = (ISourceLookupDirector) locator;
        List objects = selection.toList();
        Set<String> projectNames = new LinkedHashSet<String>();
        for (Object object : objects) {
            if (!(object instanceof IJavaElement) && object instanceof IAdaptable) {
                object = ((IAdaptable) object).getAdapter(IJavaElement.class);
            }
            if (!(object instanceof IJavaElement)) {
                continue;
            }
            IJavaElement javaElement = (IJavaElement) object;
            IJavaProject project = javaElement.getJavaProject();
            if (project instanceof IJavaProject && !project.equals(javaProject)) {
                projectNames.add(((IJavaProject) project).getElementName());
            }
        }
        List<String> projectsList = new ArrayList<String>();
        projectsList.addAll(projectNames);
        wc.setAttribute(RemoteDebugActivator.ATTR_SELECTED_PROJECTS, projectsList);
        return director;
    } else {
        logWarning("Launch configuration doesn't support source lookup");
    }
    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;
    try {/*from w ww. j  a  v  a 2 s.c  om*/
        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;
    try {// w  w  w . j ava  2s . c  o  m
        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.JavaElementChangedProcessor.java

License:Open Source License

private List<JaxrsElementDelta> processAffectedElement(JavaElementDelta delta, IProgressMonitor progressMonitor)
        throws CoreException {
    Logger.debug("Processing {} Java change", delta);
    final IJavaElement element = delta.getElement();
    final CompilationUnit ast = delta.getCompilationUnitAST();
    final int deltaKind = delta.getDeltaKind();
    // final int[] flags = event.getFlags();
    final int elementType = delta.getElement().getElementType();
    // if no metamodel existed for the given project, one is automatically
    // created. Yet, this applies only to project having the JAX-RS Facet
    final IJavaProject javaProject = element.getJavaProject();
    if (!javaProject.isOpen() || !javaProject.getProject().isOpen()) {
        Logger.debug("***(Java) Project is closed !***");
        return Collections.emptyList();
    }//from w ww .jav a2s  .c o  m
    JaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject);
    if (metamodel == null) {
        metamodel = JaxrsMetamodel.create(javaProject);
    }
    switch (deltaKind) {
    case ADDED:
        switch (elementType) {
        case JAVA_PROJECT:
            return processAddition(element, metamodel, progressMonitor);
        case PACKAGE_FRAGMENT_ROOT:
            return processAddition(element, metamodel, progressMonitor);
        case COMPILATION_UNIT:
            return processAddition((ICompilationUnit) element, ast, metamodel, progressMonitor);
        case TYPE:
            return processAddition((IType) element, ast, metamodel, progressMonitor);
        case METHOD:
            return processAddition((IMethod) element, ast, metamodel, progressMonitor);
        case FIELD:
            return processAddition((IField) element, ast, metamodel, progressMonitor);
        case ANNOTATION:
            return processAddition((IAnnotation) element, ast, metamodel, progressMonitor);
        }
        //}
        break;
    case CHANGED:
        switch (elementType) {
        case TYPE:
            return processChange((IType) element, ast, metamodel, progressMonitor);
        case METHOD:
            return processChange((IMethod) element, ast, metamodel, progressMonitor);
        case ANNOTATION:
            return processChange((IAnnotation) element, ast, metamodel, progressMonitor);
        }
        break;
    case REMOVED:
        switch (elementType) {
        case COMPILATION_UNIT:
            return processRemoval((ICompilationUnit) element, ast, metamodel, progressMonitor);
        case PACKAGE_FRAGMENT_ROOT:
            return processRemoval((IPackageFragmentRoot) element, metamodel, progressMonitor);
        case TYPE:
            return processRemoval((IType) element, ast, metamodel, progressMonitor);
        case METHOD:
            return processRemoval((IMethod) element, ast, metamodel, progressMonitor);
        case ANNOTATION:
            return processRemoval((IAnnotation) element, ast, metamodel, progressMonitor);
        case FIELD:
            return processRemoval((IField) element, ast, metamodel, progressMonitor);
        }
        break;
    }
    return Collections.emptyList();
}