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:io.spring.boot.development.eclipse.visitors.SpringFactories.java

License:Open Source License

static SpringFactories find(IProject project) {
    IJavaProject javaProject = JavaCore.create(project);
    try {/* w w  w .j av a  2 s.  co  m*/
        for (IPackageFragmentRoot root : javaProject.getAllPackageFragmentRoots()) {
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                IFile springFactories = project.getFile(
                        root.getResource().getProjectRelativePath().append("META-INF/spring.factories"));
                if (springFactories.exists()) {
                    Properties properties = new Properties();
                    properties.load(springFactories.getContents());
                    return new SpringFactories(properties);
                }
            }
        }
    } catch (Exception ex) {
        throw new RuntimeException("Failure while finding spring.factories", ex);
    }
    return null;
}

From source file:jp.co.dgic.eclipse.jdt.internal.coverage.ui.CoverageReportView.java

License:Open Source License

private String getSourceDirectories() throws CoreException {
    StringBuffer sb = new StringBuffer();

    IPackageFragmentRoot[] roots;//from   w  w w  . j  a va  2  s . c  om
    try {
        roots = getJavaProject().getAllPackageFragmentRoots();
        for (int idx = 0; idx < roots.length; idx++) {
            int kind = roots[idx].getKind();
            if (kind != IPackageFragmentRoot.K_SOURCE)
                continue;
            sb.append(roots[idx].getResource().getLocation());
            sb.append(";");
        }
    } catch (JavaModelException e) {
        throw new CoreException(e.getStatus());
    }

    return sb.toString();
}

From source file:jp.co.dgic.eclipse.jdt.internal.junit.launcher.DJUnitLaunchConfiguration.java

License:Open Source License

private void findSourceDirFrom(IJavaProject javaProject, Set<IPath> sourceDirs) throws CoreException {
    IPackageFragmentRoot[] roots;/*from   www  .  j a v a 2 s.  com*/
    try {
        roots = javaProject.getAllPackageFragmentRoots();
        for (int idx = 0; idx < roots.length; idx++) {
            int kind = roots[idx].getKind();
            if (kind != IPackageFragmentRoot.K_SOURCE)
                continue;
            sourceDirs.add(roots[idx].getResource().getLocation());
        }
    } catch (JavaModelException e) {
        throw new CoreException(e.getStatus());
    }
}

From source file:kieker.develop.rl.ui.wizards.RecordLangNewWizardPage.java

License:Apache License

private IPackageFragmentRoot chooseSourceFolder() {
    final ISelectionStatusValidator validator = new ISelectionStatusValidator() {

        @Override/*ww w  .  ja va2s .  co m*/
        public IStatus validate(final Object[] selection) { // NOCS
            if (selection.length == 1) {
                if (this.isSelectedValid(selection[0])) {
                    return Status.OK_STATUS;
                } else {
                    return Status.CANCEL_STATUS;
                }
            } else {
                return Status.CANCEL_STATUS;
            }
        }

        private boolean isSelectedValid(final Object element) {
            try {
                if (element instanceof IJavaProject) {
                    final IJavaProject jproject = (IJavaProject) element;
                    final IPath path = jproject.getProject().getFullPath();
                    return jproject.findPackageFragmentRoot(path) != null;
                } else if (element instanceof IPackageFragmentRoot) {
                    return ((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE;
                }
                return true;
            } catch (final JavaModelException e) {
                return false;
            }
        }

    };

    final ViewerFilter filter = new ViewerFilter() {
        private final Class<?>[] acceptedClasses = new Class<?>[] { IJavaModel.class,
                IPackageFragmentRoot.class, IJavaProject.class };

        @Override
        public boolean select(final Viewer viewer, final Object parent, final Object element) {
            if (element instanceof IPackageFragmentRoot) {
                try {
                    return ((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE;
                } catch (final JavaModelException e) {
                    return false;
                }
            }
            for (final Class<?> acceptedClasse : this.acceptedClasses) {
                if (acceptedClasse.isInstance(element)) {
                    return true;
                }
            }
            return false;
        }
    };

    final StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider();
    final ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);

    final ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(this.getShell(), labelProvider,
            provider);
    dialog.setValidator(validator);
    dialog.setComparator(new JavaElementComparator());
    dialog.setTitle("Select source folder");
    dialog.setMessage("Select a source folder");
    dialog.addFilter(filter);
    dialog.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()));
    dialog.setInitialSelection(this.sourceFolder);
    dialog.setHelpAvailable(false);

    if (dialog.open() == Window.OK) {
        final Object element = dialog.getFirstResult();
        if (element instanceof IJavaProject) {
            final IJavaProject jproject = (IJavaProject) element;
            return jproject.getPackageFragmentRoot(jproject.getProject());
        } else if (element instanceof IPackageFragmentRoot) {
            return (IPackageFragmentRoot) element;
        }
        return null;
    }
    return null;
}

From source file:net.atos.jdt.ast.validation.engine.project.ValidationProjectBuilder.java

License:Open Source License

/**
 * Retrieves the compilation units within the provided project
 * /*from w  w  w  .  ja va2 s . c  om*/
 * @param javaProject
 * @return
 * @throws JavaModelException
 */
private Collection<? extends ICompilationUnit> retrieveCompilationUnits(final IJavaProject javaProject)
        throws JavaModelException {
    final Collection<ICompilationUnit> compilationUnits = new ArrayList<ICompilationUnit>();
    for (final IPackageFragmentRoot packageFragmentRoot : javaProject.getPackageFragmentRoots()) {
        if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
            for (final IJavaElement element : packageFragmentRoot.getChildren()) {
                if (element instanceof IPackageFragment) {
                    final IPackageFragment packageFragment = (IPackageFragment) element;
                    for (final ICompilationUnit compilationUnit : packageFragment.getCompilationUnits()) {
                        compilationUnits.add(compilationUnit);
                    }
                } else if (element instanceof ICompilationUnit) {
                    compilationUnits.add((ICompilationUnit) element);
                }
            }
        }
    }
    return compilationUnits;
}

From source file:net.harawata.mybatipse.mybatis.ConfigRegistry.java

License:Open Source License

/**
 * Scans the project and returns the MyBatis config file if found.<br>
 * If there are multiple files in the project, only the first one is returned.
 * /* www.j a v  a 2 s  .  c  om*/
 * @param project
 * @return MyBatis config file or <code>null</code> if none found.
 */
private Map<IFile, IContentType> search(IJavaProject project) {
    final Map<IFile, IContentType> configFiles = new ConcurrentHashMap<IFile, IContentType>();
    try {
        project.getResource().accept(new ConfigVisitor(configFiles), IContainer.NONE);

        for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
            if (root.getKind() != IPackageFragmentRoot.K_SOURCE)
                continue;
            root.getResource().accept(new ConfigVisitor(configFiles), IContainer.NONE);
        }
    } catch (CoreException e) {
        Activator.log(Status.ERROR, "Searching MyBatis Config xml failed.", e);
    }

    return configFiles;
}

From source file:net.harawata.mybatipse.mybatis.MapperNamespaceCache.java

License:Open Source License

private void collectMappers(IJavaProject project, final Map<String, IFile> map, final IReporter reporter) {
    try {/*from   ww w  .  ja  va  2 s. c  om*/
        for (IPackageFragmentRoot root : project.getAllPackageFragmentRoots()) {
            if (root.getKind() != IPackageFragmentRoot.K_SOURCE) {
                continue;
            }

            root.getResource().accept(new IResourceProxyVisitor() {
                @Override
                public boolean visit(IResourceProxy proxy) throws CoreException {
                    if (!proxy.isDerived() && proxy.getType() == IResource.FILE
                            && proxy.getName().endsWith(".xml")) {
                        IFile file = (IFile) proxy.requestResource();
                        IContentDescription contentDesc = file.getContentDescription();
                        if (contentDesc != null) {
                            IContentType contentType = contentDesc.getContentType();
                            if (contentType != null && contentType.isKindOf(mapperContentType)) {
                                String namespace = extractNamespace(file);
                                if (namespace != null) {
                                    map.put(namespace, file);
                                }
                                return false;
                            }
                        }
                    }
                    return true;
                }
            }, IContainer.NONE);
        }
    } catch (CoreException e) {
        Activator.log(Status.ERROR, "Searching MyBatis Mapper xml failed.", e);
    }
}

From source file:net.officefloor.eclipse.classpath.ClasspathUtil.java

License:Open Source License

/**
 * Opens the class path resource./*from   w w w .  ja va 2s.  c  o m*/
 * 
 * @param resourcePath
 *            Path to the resource on the class path.
 * @param editor
 *            {@link AbstractOfficeFloorEditor} opening the resource.
 */
public static void openClasspathResource(String resourcePath, AbstractOfficeFloorEditor<?, ?> editor) {

    // Extensions
    final String CLASS_EXTENSION = ".class";
    final String SOURCE_EXTENSION = ".java";

    try {
        // Obtain the package and resource name
        int index = resourcePath.lastIndexOf('/');
        String packageName = (index < 0 ? "" : resourcePath.substring(0, index)).replace('/', '.');
        String resourceName = (index < 0 ? resourcePath : resourcePath.substring(index + 1)); // +1
        // to
        // skip
        // separator

        // Obtain the java project
        IJavaProject project = JavaCore.create(ProjectConfigurationContext.getProject(editor.getEditorInput()));

        // Iterate over the fragment roots searching for the file
        for (IPackageFragmentRoot root : project.getAllPackageFragmentRoots()) {

            // Attempt to obtain the package
            IPackageFragment packageFragment = root.getPackageFragment(packageName);
            if (!packageFragment.exists()) {
                continue; // must have package
            }

            // Handle if a java or class file
            if (JavaCore.isJavaLikeFileName(resourceName) || resourceName.endsWith(CLASS_EXTENSION)) {

                // Handle based on kind of fragment root
                int rootKind = root.getKind();
                switch (rootKind) {
                case IPackageFragmentRoot.K_BINARY:
                    // Binary, so ensure extension is class
                    if (resourceName.endsWith(SOURCE_EXTENSION)) {
                        resourceName = resourceName.replace(SOURCE_EXTENSION, CLASS_EXTENSION);
                    }

                    // Attempt to obtain and open the class file
                    IClassFile classFile = packageFragment.getClassFile(resourceName);
                    if (classFile != null) {
                        openEditor(editor, classFile);
                        return; // opened
                    }
                    break;

                case IPackageFragmentRoot.K_SOURCE:
                    // Source, so ensure extension is java
                    if (resourceName.endsWith(CLASS_EXTENSION)) {
                        resourceName = resourceName.replace(CLASS_EXTENSION, SOURCE_EXTENSION);
                    }

                    // Attempt to obtain the compilation unit (source file)
                    ICompilationUnit sourceFile = packageFragment.getCompilationUnit(resourceName);
                    if (sourceFile != null) {
                        openEditor(editor, sourceFile);
                        return; // opened
                    }
                    break;

                default:
                    throw new IllegalStateException("Unknown package fragment root kind: " + rootKind);
                }

            } else {
                // Not java file, so open as resource
                for (Object nonJavaResource : packageFragment.getNonJavaResources()) {
                    // Should only be opening files
                    if (nonJavaResource instanceof IFile) {
                        IFile file = (IFile) nonJavaResource;

                        // Determine if the file looking for
                        if (resourceName.equals(file.getName())) {
                            // Found file to open, so open
                            openEditor(editor, file);
                            return;
                        }
                    } else {
                        // Unknown resource type
                        throw new IllegalStateException(
                                "Unkown resource type: " + nonJavaResource.getClass().getName());
                    }
                }
            }
        }

        // Unable to open as could not find
        MessageDialog.openWarning(editor.getEditorSite().getShell(), "Open", "Could not find: " + resourcePath);

    } catch (Throwable ex) {
        // Failed to open file
        MessageDialog.openInformation(editor.getEditorSite().getShell(), "Open",
                "Failed to open '" + resourcePath + "': " + ex.getMessage());
    }
}

From source file:net.rim.ejde.internal.util.ImportUtils.java

License:Open Source License

static private List<LinkBuffer> generateLinks(IJavaProject eclipseJavaProject, ResourcesBuffer buffer,
        Project legacyProject) {/*from  w  ww  . j  av  a2s  .  co  m*/
    Map<String, Set<File>> javaArtifacts = buffer.getJavaContener();
    Map<String, Set<File>> localeArtifacts = buffer.getlocaleContener();
    Set<File> nonPackageableFiles = buffer.getNonPackageContener();

    IPath drfpath = null, filePath = null;

    IFile eclipseFileHandle = null, fileHandle = null;

    IProject eclipseProject = eclipseJavaProject.getProject();
    IWorkspaceRoot workspaceRoot = eclipseProject.getWorkspace().getRoot();

    List<String> sources = net.rim.ejde.internal.legacy.Util.getSources(legacyProject);
    IPackageFragmentRoot[] packageFragmentRoots;
    IPackageFragment packageFragment;
    IFolder packageFolder;
    IResource resource, packageDirectory;
    List<LinkBuffer> linkBuffers = Collections.emptyList();
    try {
        // packageFragmentRoots =
        // eclipseJavaProject.getPackageFragmentRoots(); //!WARNING: it
        // seems this is buggy!!!!
        packageFragmentRoots = eclipseJavaProject.getAllPackageFragmentRoots();
        linkBuffers = new ArrayList<LinkBuffer>();
        String srcFolder = POTENTIAL_SOURCE_FOLDERS[PROJECT_SRC_FOLDE_INDEX];
        String resFolder = POTENTIAL_SOURCE_FOLDERS[PROJECT_RES_FOLDE_INDEX];
        String localeFolder = POTENTIAL_SOURCE_FOLDERS[PROJECT_LOCALE_FOLDE_INDEX];
        IJavaProject javaProject = null;
        for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
            javaProject = packageFragmentRoot.getParent().getJavaProject();
            if (javaProject == null || !javaProject.equals(eclipseJavaProject)) {
                // fixed DPI225325, we only care source folders in the
                // current project
                continue;
            }
            if (IPackageFragmentRoot.K_SOURCE == packageFragmentRoot.getKind()) {
                packageDirectory = packageFragmentRoot.getResource();

                if (null != packageDirectory) {
                    if (isResourceTargetFolder(packageDirectory)) {
                        if (IResource.FOLDER == packageDirectory.getType()) {
                            // handle resource files which are not java, rrh
                            // and rrc
                            if (resFolder.equalsIgnoreCase(packageDirectory.getName())) {
                                packageFragment = packageFragmentRoot.createPackageFragment(StringUtils.EMPTY,
                                        true, new NullProgressMonitor());
                                packageFolder = (IFolder) packageFragment.getResource();

                                for (File file : nonPackageableFiles) {
                                    filePath = new Path(file.getAbsolutePath());

                                    if (canIgnoreFile(filePath, eclipseJavaProject)) {
                                        continue;
                                    }

                                    // drfpath = PackageUtils.resolvePathForFile( filePath, legacyProjectPath,
                                    // legacyWorkspacePath ); // DPI222295
                                    try {
                                        drfpath = new Path(PackageUtils.getFilePackageString(filePath.toFile(),
                                                legacyProject)).append(filePath.lastSegment());
                                    } catch (CoreException e) {
                                        _log.error(e.getMessage());
                                        drfpath = new Path(IConstants.EMPTY_STRING);
                                    }

                                    if (drfpath.segmentCount() > 1) {
                                        if (sources.contains(drfpath.segment(0))) {
                                            drfpath = drfpath.removeFirstSegments(1);
                                        }

                                        drfpath = assureFolderPath(packageFolder, drfpath);
                                    }

                                    fileHandle = createFileHandle(packageFolder, drfpath.toOSString());

                                    resource = eclipseProject.findMember(
                                            PackageUtils.deResolve(filePath, eclipseProject.getLocation()));

                                    if (resource != null)
                                        eclipseFileHandle = workspaceRoot.getFile(resource.getFullPath());
                                    else
                                        eclipseFileHandle = workspaceRoot
                                                .getFile(eclipseProject.getFullPath().append(drfpath));

                                    if (!fileHandle.equals(eclipseFileHandle)) {
                                        linkBuffers.add(new LinkBuffer(fileHandle, filePath));
                                    }
                                }
                            }
                            if (srcFolder.equalsIgnoreCase(packageDirectory.getName())
                                    || srcFolder.equalsIgnoreCase(packageDirectory.getName())) { // All
                                linkPackagableFiles(javaProject, packageFragmentRoot, javaArtifacts,
                                        linkBuffers);
                            }
                            if (localeFolder.equalsIgnoreCase(packageDirectory.getName())
                                    || localeFolder.equalsIgnoreCase(packageDirectory.getName())) {
                                linkPackagableFiles(javaProject, packageFragmentRoot, localeArtifacts,
                                        linkBuffers);
                            }
                        } else {
                            continue;
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e1) {
        _log.error(e1.getMessage(), e1);
    }

    return linkBuffers;
}

From source file:net.rim.ejde.internal.util.ProjectUtils.java

License:Open Source License

/**
 * Locates all the source folders represented by type IPackageFragmentRoot.K_SOURCE for the given project.
 *
 * @param project/* w  w w .j a  v a2s  .c  om*/
 *            The IProject to search for source folders.
 * @return An IPackageFragmentRoot array containing each K_SOURCE fragment found for the given project.
 */
public static IPackageFragmentRoot[] getProjectSourceFolders(IProject project) {
    IJavaProject iJavaProject = JavaCore.create(project);
    ArrayList<IPackageFragmentRoot> sourceRoots = new ArrayList<IPackageFragmentRoot>();
    if (iJavaProject.exists() && iJavaProject.isOpen()) {
        try {
            IPackageFragmentRoot[] roots = iJavaProject.getAllPackageFragmentRoots();
            for (IPackageFragmentRoot root : roots) {
                if (IPackageFragmentRoot.K_SOURCE == root.getKind()) {
                    sourceRoots.add(root);
                }
            }
        } catch (JavaModelException e) {
            logger.error("findProjectSources: Could not retrieve project sources:", e); //$NON-NLS-1$
            return new IPackageFragmentRoot[0];
        }
    }
    return sourceRoots.toArray(new IPackageFragmentRoot[sourceRoots.size()]);
}