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

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

Introduction

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

Prototype

IJavaElement getParent();

Source Link

Document

Returns the element directly containing this element, or null if this element has no parent.

Usage

From source file:org.jboss.tools.maven.sourcelookup.test.OpenBinaryFileTest.java

License:Open Source License

public void invalidateAttachment(String path) throws JavaModelException {
    IJavaProject javaProject = JavaCore.create(project);
    assertTrue(javaProject != null);//  www  . j  av a  2 s. c  o  m
    IType type = javaProject.findType(ORG_APACHE_COMMONS_LANG_STRING_UTILS);
    assertNotNull(type);
    IClassFile classFile = type.getClassFile();
    IJavaElement element = classFile;
    while (element.getParent() != null) {
        element = element.getParent();
        if (element instanceof IPackageFragmentRoot) {
            final IPackageFragmentRoot fragment = (IPackageFragmentRoot) element;
            SourceLookupUtil.attachSource(fragment, new Path(path));
            break;
        }
    }
}

From source file:org.jboss.tools.maven.sourcelookup.ui.actions.AttachSourcesActionDelegate.java

License:Open Source License

@Override
public void setActiveEditor(IAction action, IEditorPart targetEditor) {
    if (targetEditor != null) {
        try {/*ww  w  .ja  va 2 s.  c  o  m*/
            boolean isAuto = SourceLookupActivator.getDefault().isAutoAddSourceContainer();
            if (!isAuto) {
                return;
            }
            IClassFileEditorInput input = (IClassFileEditorInput) targetEditor.getEditorInput();
            IJavaElement element = input.getClassFile();
            while (element.getParent() != null) {
                element = element.getParent();
                if (element instanceof IPackageFragmentRoot) {
                    final IPackageFragmentRoot fragment = (IPackageFragmentRoot) element;
                    IPath attachmentPath = fragment.getSourceAttachmentPath();
                    if (attachmentPath != null && !attachmentPath.isEmpty()
                            && attachmentPath.toFile().exists()) {
                        break;
                    }
                    if (fragment.isArchive()) {
                        IFile iFile = ResourcesPlugin.getWorkspace().getRoot().getFile(fragment.getPath());
                        File file = iFile == null || iFile.getLocation() == null ? fragment.getPath().toFile()
                                : iFile.getLocation().toFile();
                        IFileIdentificationManager identificationManager = new FileIdentificationManager();
                        final ArtifactKey artifact = identificationManager.identify(file,
                                new NullProgressMonitor());
                        if (artifact != null) {
                            IPath sourcePath = JBossSourceContainer.getSourcePath(artifact);
                            if (sourcePath == null || !sourcePath.toFile().exists()) {
                                Job job = JBossSourceContainer.downloadArtifact(file, artifact);
                                job.addJobChangeListener(new IJobChangeListener() {

                                    @Override
                                    public void sleeping(IJobChangeEvent event) {
                                    }

                                    @Override
                                    public void scheduled(IJobChangeEvent event) {
                                    }

                                    @Override
                                    public void running(IJobChangeEvent event) {
                                    }

                                    @Override
                                    public void done(IJobChangeEvent event) {
                                        IPath sourcePath = JBossSourceContainer.getSourcePath(artifact);
                                        if (sourcePath != null && sourcePath.toFile().exists()) {
                                            attachSource(fragment, sourcePath);
                                        }
                                    }

                                    @Override
                                    public void awake(IJobChangeEvent event) {
                                    }

                                    @Override
                                    public void aboutToRun(IJobChangeEvent event) {
                                    }
                                });
                                job.schedule();
                            } else {
                                attachSource(fragment, sourcePath);
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
            SourceLookupUIActivator.log(e);
        }
    }
}

From source file:org.jboss.tools.pde.sourcelookup.ui.internal.actions.DownloadSourcesActionDelegate.java

License:Open Source License

@Override
public void setActiveEditor(IAction action, IEditorPart part) {
    if (part != null && part.getEditorInput() instanceof IClassFileEditorInput) {
        Set<IPackageFragmentRoot> queue = new LinkedHashSet<>();
        try {/*from  w w w . j a v a  2s  .c  o m*/
            IClassFileEditorInput input = (IClassFileEditorInput) part.getEditorInput();
            IJavaElement element = input.getClassFile();
            while (element.getParent() != null) {
                element = element.getParent();
                if (element instanceof IPackageFragmentRoot) {
                    IPackageFragmentRoot fragment = (IPackageFragmentRoot) element;
                    if (canProcess(fragment)) {
                        queue.add(fragment);
                    }
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        findSources(queue);
    }
}

From source file:org.jboss.tools.vscode.java.internal.handlers.DocumentSymbolHandler.java

License:Open Source License

private void collectChildren(ITypeRoot unit, IJavaElement[] elements, ArrayList<SymbolInformation> symbols)
        throws JavaModelException {
    for (IJavaElement element : elements) {
        if (element.getElementType() == IJavaElement.TYPE) {
            collectChildren(unit, ((IType) element).getChildren(), symbols);
        }//w w w . j a  v a  2s .co  m
        if (element.getElementType() != IJavaElement.FIELD && element.getElementType() != IJavaElement.METHOD) {
            continue;
        }

        SymbolInformation si = new SymbolInformation();
        si.setName(element.getElementName());
        si.setKind(new Double(mapKind(element)));
        if (element.getParent() != null)
            si.setContainerName(element.getParent().getElementName());
        si.setLocation(JDTUtils.toLocation(element));
        symbols.add(si);
    }
}

From source file:org.jboss.tools.windup.model.edit.domain.ConfigurationElementTreeContentProvider.java

License:Open Source License

private Object[] getChildren(ConfigurationElement configuration) {
    WindupResult windupResult = configuration.getWindupResult();
    if (windupResult != null && windupResult.getExecutionResults() != null) {
        List<Object> children = Lists.newArrayList();
        children.add(windupResult);/*from w w w  . j a va 2 s  .  c o  m*/
        for (Hint hint : windupResult.getExecutionResults().getHints()) {
            IFile resource = ResourcesPlugin.getWorkspace().getRoot()
                    .getFileForLocation(new Path(hint.getFile().getAbsolutePath()));
            IJavaElement element = JavaCore.create(resource);
            IJavaElement parent = element.getParent();
        }
        return children.toArray(new Object[children.size()]);
    }
    return new Object[0];
}

From source file:org.jboss.tools.ws.jaxrs.core.jdt.JdtUtils.java

License:Open Source License

/**
 * Returns the compilation unit associated with the given resource.
 * //from ww  w .  j  a v  a 2  s  . c om
 * @param resource
 *            the resource
 * @return the compilation unit or null if the resource is not a compilation
 *         unit.
 */
public static ICompilationUnit getCompilationUnit(final IJavaElement element) {
    if (element instanceof IMember) {
        return ((IMember) element).getCompilationUnit();
    } else if (element instanceof IAnnotation
            // ignore annotations on PackageDeclaration, such as in
            // package-info.java
            && element.getParent() instanceof IMember) {
        return ((IMember) (element.getParent())).getCompilationUnit();
    } else if (element instanceof ICompilationUnit) {
        return (ICompilationUnit) element;
    }
    return null;
}

From source file:org.key_project.util.jdt.JDTUtil.java

License:Open Source License

/**
 * Returns the package that contains the {@link IJavaElement}.
 * @param element The {@link IJavaElement}.
 * @return The package that contains the given {@link IJavaElement}.
 *//*from ww  w.j a va  2s  .co m*/
public static IJavaElement getPackage(IJavaElement element) {
    if (element != null) {
        if (element instanceof IPackageDeclaration) {
            return element;
        } else if (element instanceof IPackageFragment) {
            return element;
        } else if (element instanceof IPackageFragmentRoot) {
            return element;
        } else {
            return getPackage(element.getParent());
        }
    } else {
        return null;
    }
}

From source file:org.knime.workbench.extension.wizards.NewKNIMEPluginWizardPage.java

License:Open Source License

private String getSelectedPackage() {
    if (m_selection == null || m_selection.isEmpty()) {
        return "";
    }//from w ww .  java  2s.  c  o m

    Object o = m_selection.getFirstElement();
    if (o instanceof IJavaElement) {
        if (o instanceof IPackageFragment) {
            return ((IPackageFragment) o).getElementName();
        } else {
            IJavaElement je = (IJavaElement) o;
            while (je.getParent() != null && !(je.getParent() instanceof IPackageFragment)) {
                je = je.getParent();
            }
            return je.getElementName();
        }
    }

    return "";
}

From source file:org.limy.eclipse.code.accessor.AccessorUtils.java

License:Open Source License

/**
 * wG?gG?g?B/*w  w w . j a va 2s .  c om*/
 * @param element G?g
 * @return G?g?iwG?g????Anull?j
 * @throws JavaModelException JavafO
 */
private static IJavaElement getNextSibling(IJavaElement element) throws JavaModelException {
    IJavaElement parent = element.getParent();
    if (parent instanceof IParent) {
        IJavaElement[] children = ((IParent) parent).getChildren();
        for (int i = 0; i < children.length; i++) {
            if (children[i] == element) {
                if (i < children.length - 1) {
                    return children[i + 1];
                }
                return null;
            }
        }
    }
    return null;
}

From source file:org.limy.eclipse.qalab.common.LimyQalabJavaUtils.java

License:Open Source License

/**
 * JavavfbinfBNg?B//from   w  w w . j a v  a 2s.  com
 * <p>
 * pbP?[Wvf : binfBNgTufBNg<br>
 * \?[XfBNg : binfBNg<br>
 * </p>
 * @param el Javavf
 * @return binfBNg?i?pX?j
 * @throws CoreException 
 */
public static String getBinDirPath(IJavaElement el) throws CoreException {

    if (el.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) el.getParent();
        String path = LimyQalabJavaUtils.getExternalLocation(root);
        return new File(path, el.getElementName().replace('.', '/')).getAbsolutePath();
    }
    if (el.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT) {
        return LimyQalabJavaUtils.getExternalLocation((IPackageFragmentRoot) el);
    }
    return null;
}