Example usage for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE.

Prototype

int K_SOURCE

To view the source code for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE.

Click Source Link

Document

Kind constant for a source path root.

Usage

From source file:org.eclipse.pde.internal.ui.editor.build.RuntimeInfoSection.java

License:Open Source License

private IPackageFragmentRoot[] computeSourceFolders() {
    ArrayList<IPackageFragmentRoot> folders = new ArrayList<IPackageFragmentRoot>();
    IBuildModel buildModel = getBuildModel();
    IProject project = buildModel.getUnderlyingResource().getProject();
    try {//from   w  ww.  j  a v a 2 s.c o m
        if (project.hasNature(JavaCore.NATURE_ID)) {
            IJavaProject jProject = JavaCore.create(project);
            IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots();
            for (int i = 0; i < roots.length; i++)
                if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE)
                    folders.add(roots[i]);
        }
    } catch (JavaModelException e) {
        PDEPlugin.logException(e);
    } catch (CoreException e) {
        PDEPlugin.logException(e);
    }
    return folders.toArray(new IPackageFragmentRoot[folders.size()]);
}

From source file:org.eclipse.pde.internal.ui.editor.plugin.ImportPackageSection.java

License:Open Source License

private void setElements(ConditionalListSelectionDialog dialog) {
    Set<String> forbidden = getForbiddenIds();
    boolean allowJava = "true".equals(getBundle().getHeader(ICoreConstants.ECLIPSE_JREBUNDLE)); //$NON-NLS-1$

    ArrayList<ImportItemWrapper> elements = new ArrayList<ImportItemWrapper>();
    ArrayList<ImportItemWrapper> conditional = new ArrayList<ImportItemWrapper>();
    IPluginModelBase[] models = PluginRegistry.getActiveModels();
    Set<NameVersionDescriptor> nameVersions = new HashSet<NameVersionDescriptor>(); // Set of NameVersionDescriptors, used to remove duplicate entries

    for (int i = 0; i < models.length; i++) {
        BundleDescription desc = models[i].getBundleDescription();

        // If the current model is a fragment, it can export packages only if its parent has hasExtensibleAPI set
        if (isFragmentThatCannotExportPackages(models[i]))
            continue;

        String id = desc == null ? null : desc.getSymbolicName();
        if (id == null || forbidden.contains(id))
            continue;

        ExportPackageDescription[] exported = desc.getExportPackages();
        for (int j = 0; j < exported.length; j++) {
            String name = exported[j].getName();
            NameVersionDescriptor nameVersion = new NameVersionDescriptor(exported[j].getName(),
                    exported[j].getVersion().toString(), NameVersionDescriptor.TYPE_PACKAGE);
            if (("java".equals(name) || name.startsWith("java.")) && !allowJava) //$NON-NLS-1$ //$NON-NLS-2$
                continue;
            if (nameVersions.add(nameVersion) && (fHeader == null || !fHeader.hasPackage(name)))
                elements.add(new ImportItemWrapper(exported[j]));
        }/*www. java2  s.  com*/
        IPluginModelBase model = (IPluginModelBase) getPage().getPDEEditor().getAggregateModel();
        if (model instanceof IBundlePluginModelBase) {
            IBundleModel bmodel = ((IBundlePluginModelBase) model).getBundleModel();
            if (bmodel != null) {
                ExportPackageHeader header = (ExportPackageHeader) bmodel.getBundle()
                        .getManifestHeader(Constants.EXPORT_PACKAGE);
                if (header != null) {
                    ExportPackageObject[] pkgs = header.getPackages();
                    for (int j = 0; j < pkgs.length; j++) {
                        String name = pkgs[j].getName();
                        String version = pkgs[j].getVersion();
                        NameVersionDescriptor nameVersion = new NameVersionDescriptor(name, version,
                                NameVersionDescriptor.TYPE_PACKAGE);
                        if (nameVersions.add(nameVersion) && (fHeader == null || !fHeader.hasPackage(name)))
                            elements.add(new ImportItemWrapper(pkgs[j]));
                    }
                }
            }

        }
    }
    for (int i = 0; i < models.length; i++) {
        try {
            // add un-exported packages in workspace non-binary plug-ins
            IResource resource = models[i].getUnderlyingResource();
            IProject project = resource != null ? resource.getProject() : null;
            if (project == null || !project.hasNature(JavaCore.NATURE_ID)
                    || WorkspaceModelManager.isBinaryProject(project)
                    || !PDEProject.getManifest(project).exists())
                continue;

            // If the current model is a fragment, it can export packages only if its parent has hasExtensibleAPI set
            if (isFragmentThatCannotExportPackages(models[i]))
                continue;

            IJavaProject jp = JavaCore.create(project);
            IPackageFragmentRoot[] roots = jp.getPackageFragmentRoots();
            for (int j = 0; j < roots.length; j++) {
                if (roots[j].getKind() == IPackageFragmentRoot.K_SOURCE
                        || (roots[j].getKind() == IPackageFragmentRoot.K_BINARY && !roots[j].isExternal())) {
                    IJavaElement[] children = roots[j].getChildren();
                    for (int k = 0; k < children.length; k++) {
                        IPackageFragment f = (IPackageFragment) children[k];
                        String name = f.getElementName();
                        NameVersionDescriptor nameVersion = new NameVersionDescriptor(name, null,
                                NameVersionDescriptor.TYPE_PACKAGE);
                        if (name.equals("")) //$NON-NLS-1$
                            name = "."; //$NON-NLS-1$
                        if (nameVersions.add(nameVersion)
                                && (f.hasChildren() || f.getNonJavaResources().length > 0))
                            conditional.add(new ImportItemWrapper(f));
                    }
                }
            }
        } catch (CoreException e) {
        }
    }
    dialog.setElements(elements.toArray());
    dialog.setConditionalElements(conditional.toArray());
}

From source file:org.eclipse.pde.internal.ui.editor.plugin.ImportPackageSection.java

License:Open Source License

private IPackageFragmentRoot[] getSourceRoots() throws JavaModelException {
    ArrayList<IPackageFragmentRoot> result = new ArrayList<IPackageFragmentRoot>();
    IProject project = getPage().getPDEEditor().getCommonProject();
    // would normally return array of size 0, but by returning null can optimize the search to run faster.
    if (project == null) {
        return null;
    }/*from  w  w w  . j ava 2  s. c om*/
    IPackageFragmentRoot[] roots = JavaCore.create(project).getPackageFragmentRoots();
    for (int i = 0; i < roots.length; i++) {
        if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE
                || (roots[i].isArchive() && !roots[i].isExternal()))
            result.add(roots[i]);
    }
    return result.toArray(new IPackageFragmentRoot[result.size()]);
}

From source file:org.eclipse.pde.internal.ui.editor.plugin.JavaAttributeWizardPage.java

License:Open Source License

private void initializeExpectedValues() {

    //         source folder name, package name, class name
    int loc = className.indexOf(":"); //$NON-NLS-1$
    if (loc != -1) {
        if (loc < className.length()) {
            initialValues.classArgs = className.substring(loc + 1, className.length());
            className = className.substring(0, loc);
        }/*from w  ww  . jav a 2s .  c  o  m*/
        if (loc > 0)
            initialValues.initialClassName = className.substring(0, loc);
        else if (loc == 0)
            initialValues.initialClassName = ""; //$NON-NLS-1$
    }

    loc = className.lastIndexOf('.');
    if (loc != -1) {
        initialValues.packageName = className.substring(0, loc);
        initialValues.initialClassName = className.substring(loc + 1);
    }
    if (javaProject == null)
        return;
    try {
        if (initialValues.packageFragmentRoot == null) {
            IPackageFragmentRoot srcEntryDft = null;
            IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
            for (int i = 0; i < roots.length; i++) {
                if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                    srcEntryDft = roots[i];
                    break;
                }
            }
            if (srcEntryDft != null)
                initialValues.packageFragmentRoot = srcEntryDft;
            else {
                initialValues.packageFragmentRoot = javaProject
                        .getPackageFragmentRoot(javaProject.getResource());
            }
            if (initialValues.packageFragment == null && initialValues.packageFragmentRoot != null
                    && initialValues.packageName != null && initialValues.packageName.length() > 0) {
                IFolder packageFolder = project.getFolder(initialValues.packageName);
                initialValues.packageFragment = initialValues.packageFragmentRoot
                        .getPackageFragment(packageFolder.getProjectRelativePath().toOSString());
            }
        }
        //         superclass and interface
        if (attInfo == null) {
            initialValues.interfaceName = "org.osgi.framework.BundleActivator"; //$NON-NLS-1$
            initialValues.interfaceType = findTypeForName(initialValues.interfaceName);
            IEclipsePreferences prefs = new ProjectScope(project).getNode(PDECore.PLUGIN_ID);
            if (prefs != null && !prefs.getBoolean(ICoreConstants.EXTENSIONS_PROPERTY, true)) {
                return;
            }
            if (model != null) {
                IPluginImport[] imports = model.getPluginBase().getImports();
                for (int i = 0; i < imports.length; i++) {
                    if (imports[i].getId().equals("org.eclipse.ui")) { //$NON-NLS-1$
                        initialValues.superClassName = "org.eclipse.ui.plugin.AbstractUIPlugin"; //$NON-NLS-1$
                        initialValues.interfaceName = null;
                        initialValues.interfaceType = null;
                        break;
                    }
                }
            }
            initialValues.superClassType = findTypeForName(initialValues.superClassName);
            return;
        }
        String schemaBasedOn = attInfo.getBasedOn();
        if (schemaBasedOn == null || schemaBasedOn.length() == 0) {
            initialValues.superClassName = "java.lang.Object"; //$NON-NLS-1$
            initialValues.superClassType = findTypeForName(initialValues.superClassName);
            return;
        }
        int del = schemaBasedOn.indexOf(':');
        if (del != -1) {
            if (del == 0) {
                initialValues.superClassName = "java.lang.Object"; //$NON-NLS-1$
            } else {
                initialValues.superClassName = schemaBasedOn.substring(0, del);
            }
            initialValues.superClassType = findTypeForName(initialValues.superClassName);
            if (del < schemaBasedOn.length() - 1) {
                initialValues.interfaceName = schemaBasedOn.substring(del + 1);
                initialValues.interfaceType = findTypeForName(initialValues.interfaceName);
            }
        } else {
            int schemaLoc = schemaBasedOn.lastIndexOf("."); //$NON-NLS-1$
            if (schemaLoc != -1 && schemaLoc < schemaBasedOn.length()) {
                IType type = findTypeForName(schemaBasedOn);
                if (type != null && type.isInterface()) {
                    initialValues.interfaceName = schemaBasedOn;
                    initialValues.interfaceType = type;
                } else if (type != null && type.isClass()) {
                    initialValues.superClassName = schemaBasedOn;
                    initialValues.superClassType = type;
                }
            }
        }

    } catch (JavaModelException e) {
        PDEPlugin.logException(e);
    }
}

From source file:org.eclipse.pde.internal.ui.properties.SelfHostingPropertyPage.java

License:Open Source License

private String[] getOutputFolders() {
    IProject project = (IProject) getElement().getAdapter(IProject.class);
    ArrayList<String> list = new ArrayList<String>();
    try {//from www  .  j a v  a  2 s  .  co m
        if (project.hasNature(JavaCore.NATURE_ID)) {
            IJavaProject jProject = JavaCore.create(project);
            list.add(jProject.getOutputLocation().toString());
            IClasspathEntry[] entries = jProject.getRawClasspath();
            for (int i = 0; i < entries.length; i++) {
                IClasspathEntry entry = entries[i];
                if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE
                        && entry.getContentKind() == IPackageFragmentRoot.K_SOURCE) {
                    IPath path = entry.getOutputLocation();
                    if (path != null)
                        list.add(path.toString());
                }
            }
        }
    } catch (JavaModelException e) {
    } catch (CoreException e) {
    }
    return list.toArray(new String[list.size()]);
}

From source file:org.eclipse.pde.internal.ui.search.dependencies.DependencyExtentQuery.java

License:Open Source License

public IPackageFragmentRoot[] getDirectRoots() {
    ArrayList<IPackageFragmentRoot> result = new ArrayList<IPackageFragmentRoot>();
    try {// w w w  . j a v  a  2s.  c o m
        IPackageFragmentRoot[] roots = JavaCore.create(fProject).getPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE
                    || (roots[i].isArchive() && !roots[i].isExternal())) {
                result.add(roots[i]);
            }
        }
    } catch (JavaModelException e) {
    }
    return result.toArray(new IPackageFragmentRoot[result.size()]);
}

From source file:org.eclipse.recommenders.internal.coordinates.rcp.EclipseDependencyListener.java

License:Open Source License

private Set<DependencyInfo> searchForAllDependenciesOfProject(final IJavaProject javaProject) {
    Set<DependencyInfo> dependencies = Sets.newHashSet();
    Set<IPackageFragmentRoot> jreRoots = jrePackageFragmentRoots.get(getDependencyInfoForProject(javaProject));
    try {/*from  w  ww  . j  av a 2 s .  c om*/
        for (final IPackageFragmentRoot packageFragmentRoot : javaProject.getAllPackageFragmentRoots()) {
            if (!jreRoots.contains(packageFragmentRoot)
                    && packageFragmentRoot instanceof JarPackageFragmentRoot) {
                DependencyInfo dependencyInfo = createDependencyInfoForJar(packageFragmentRoot);
                dependencies.add(dependencyInfo);
            } else if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE
                    && packageFragmentRoot.getJavaProject() != null) {
                DependencyInfo dependencyInfo = DependencyInfos
                        .createDependencyInfoForProject(packageFragmentRoot.getJavaProject());
                dependencies.add(dependencyInfo);
            }
        }
    } catch (JavaModelException e) {
        Logs.log(LogMessages.ERROR_FAILED_TO_SEARCH_FOR_PROJECT_DEPENDENCIES, e, javaProject);
    }
    return dependencies;
}

From source file:org.eclipse.sapphire.java.jdt.ui.internal.JavaTypeCreateActionHandler.java

License:Open Source License

private final IPackageFragmentRoot src(final IJavaProject project) throws JavaModelException {
    for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
            return root;
        }/*from  ww w .j a v  a  2 s.  c  om*/
    }

    return null;
}

From source file:org.eclipse.servicesregistry.testutils.TestProject.java

License:Open Source License

private IPackageFragmentRoot findSourceFolder() throws JavaModelException {
    for (IPackageFragmentRoot pfr : javaProject.getAllPackageFragmentRoots()) {
        if (pfr.getKind() == IPackageFragmentRoot.K_SOURCE) {
            return pfr;
        }// w  w w  .  j  a  v  a2s  .c om
    }

    return null;
}

From source file:org.eclipse.virgo.ide.manifest.internal.core.validation.rules.ExportPackageRule.java

License:Open Source License

private void validateExportPackage(BundleManifestHeader header, ManifestElement element,
        BundleManifestValidationContext context) {
    boolean found = false;
    try {/*from  ww w.  j  a va2s  . co m*/
        IPackageFragmentRoot[] roots = JdtUtils.getJavaProject(context.getRootElement().getElementResource())
                .getPackageFragmentRoots();

        for (IPackageFragmentRoot root : roots) {
            int kind = root.getKind();
            if (kind == IPackageFragmentRoot.K_SOURCE
                    || (kind == IPackageFragmentRoot.K_BINARY && !root.isExternal())) {
                IJavaElement[] javaElements = root.getChildren();
                for (int j = 0; j < javaElements.length; j++)
                    if (javaElements[j] instanceof IPackageFragment) {
                        IPackageFragment fragment = (IPackageFragment) javaElements[j];
                        String name = fragment.getElementName();
                        if (name.length() == 0) {
                            name = ".";
                        }
                        if (fragment.containsJavaResources() || fragment.getNonJavaResources().length > 0) {
                            if (name.equals(element.getValue())) {
                                found = true;
                            }
                        }
                    }
            }
        }
    } catch (JavaModelException e) {
    }

    // if we actually have packages to add
    if (!found) {
        context.warning("MISSING_PACKAGE_EXPORT", "Bundle does export non-existing package",
                header.getLineNumber() + 1);
    }
}