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

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

Introduction

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

Prototype

int getKind() throws JavaModelException;

Source Link

Document

Returns this package fragment root's kind encoded as an integer.

Usage

From source file:org.eclipse.xtext.xbase.ui.validation.ProjectAwareUniqueClassNameValidator.java

License:Open Source License

public boolean doCheckUniqueInProject(final QualifiedName name, final JvmDeclaredType type)
        throws JavaModelException {
    final IJavaProject javaProject = this.javaProjectProvider.getJavaProject(type.eResource().getResourceSet());
    this.getContext().put(ProjectAwareUniqueClassNameValidator.OUTPUT_CONFIGS,
            this.outputConfigurationProvider.getOutputConfigurations(type.eResource()));
    final String packageName = type.getPackageName();
    final String typeName = type.getSimpleName();
    final Function1<IPackageFragmentRoot, Boolean> _function = (IPackageFragmentRoot it) -> {
        try {//from w w  w  .j  a va 2 s .  c om
            int _kind = it.getKind();
            return Boolean.valueOf((_kind == IPackageFragmentRoot.K_SOURCE));
        } catch (Throwable _e) {
            throw Exceptions.sneakyThrow(_e);
        }
    };
    final Iterable<IPackageFragmentRoot> sourceFolders = IterableExtensions.<IPackageFragmentRoot>filter(
            ((Iterable<IPackageFragmentRoot>) Conversions.doWrapArray(javaProject.getPackageFragmentRoots())),
            _function);
    IndexManager indexManager = JavaModelManager.getIndexManager();
    if (((((Object[]) Conversions.unwrapArray(sourceFolders, Object.class)).length == 0)
            || (indexManager.awaitingJobsCount() > 0))) {
        String _elvis = null;
        if (packageName != null) {
            _elvis = packageName;
        } else {
            _elvis = "";
        }
        ProjectAwareUniqueClassNameValidator.SourceTraversal _doCheckUniqueInProjectSource = this
                .doCheckUniqueInProjectSource(_elvis, typeName, type, ((IPackageFragmentRoot[]) Conversions
                        .unwrapArray(sourceFolders, IPackageFragmentRoot.class)));
        if (_doCheckUniqueInProjectSource != null) {
            switch (_doCheckUniqueInProjectSource) {
            case DUPLICATE:
                return false;
            case UNIQUE:
                return true;
            default:
                break;
            }
        } else {
        }
    }
    final HashSet<String> workingCopyPaths = CollectionLiterals.<String>newHashSet();
    ICompilationUnit[] copies = this.getWorkingCopies(type);
    if ((copies != null)) {
        for (final ICompilationUnit workingCopy : copies) {
            {
                final IPath path = workingCopy.getPath();
                if ((javaProject.getPath().isPrefixOf(path) && (!this.isDerived(workingCopy.getResource())))) {
                    boolean _exists = workingCopy.getPackageDeclaration(packageName).exists();
                    if (_exists) {
                        IType result = workingCopy.getType(typeName);
                        boolean _exists_1 = result.exists();
                        if (_exists_1) {
                            this.addIssue(type, workingCopy.getElementName());
                            return false;
                        }
                    }
                    workingCopyPaths.add(workingCopy.getPath().toString());
                }
            }
        }
    }
    char[] _xifexpression = null;
    if ((packageName == null)) {
        _xifexpression = CharOperation.NO_CHAR;
    } else {
        _xifexpression = packageName.toCharArray();
    }
    char[] _charArray = typeName.toCharArray();
    final TypeDeclarationPattern pattern = new TypeDeclarationPattern(_xifexpression,
            CharOperation.NO_CHAR_CHAR, _charArray, IIndexConstants.TYPE_SUFFIX,
            (SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE));
    final IndexQueryRequestor _function_1 = new IndexQueryRequestor() {
        @Override
        public boolean acceptIndexMatch(final String documentPath, final SearchPattern indexRecord,
                final SearchParticipant participant, final AccessRuleSet access) {
            boolean _contains = workingCopyPaths.contains(documentPath);
            if (_contains) {
                return true;
            }
            IWorkspaceRoot _root = ResourcesPlugin.getWorkspace().getRoot();
            Path _path = new Path(documentPath);
            IFile file = _root.getFile(_path);
            boolean _isDerived = ProjectAwareUniqueClassNameValidator.this.isDerived(file);
            boolean _not = (!_isDerived);
            if (_not) {
                ProjectAwareUniqueClassNameValidator.this.addIssue(type, file.getName());
                return false;
            }
            return true;
        }
    };
    IndexQueryRequestor searchRequestor = _function_1;
    try {
        SearchParticipant _defaultSearchParticipant = BasicSearchEngine.getDefaultSearchParticipant();
        IJavaSearchScope _createJavaSearchScope = BasicSearchEngine.createJavaSearchScope(
                ((IJavaElement[]) Conversions.unwrapArray(sourceFolders, IJavaElement.class)));
        PatternSearchJob _patternSearchJob = new PatternSearchJob(pattern, _defaultSearchParticipant,
                _createJavaSearchScope, searchRequestor);
        indexManager.performConcurrentJob(_patternSearchJob, IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
                null);
        return true;
    } catch (final Throwable _t) {
        if (_t instanceof OperationCanceledException) {
            final OperationCanceledException oce = (OperationCanceledException) _t;
            return false;
        } else {
            throw Exceptions.sneakyThrow(_t);
        }
    }
}

From source file:org.eclipseguru.gwt.core.GwtProject.java

License:Open Source License

/**
 * @param project//w  w  w. j a v  a  2 s  .c  om
 * @return
 * @throws CoreException
 */
protected GwtModule[] findModules() throws CoreException {
    final IJavaProject javaProject = getJavaProject();
    final List<GwtModule> moduleFiles = new ArrayList<GwtModule>();
    for (final IPackageFragmentRoot aRoot : javaProject.getPackageFragmentRoots()) {
        // check only in source folders. Skip others
        if (aRoot.getKind() != IPackageFragmentRoot.K_SOURCE) {
            continue;
        }
        for (final IJavaElement aPackage : aRoot.getChildren()) {
            // look only for packages. Skip others
            if (aPackage.getElementType() != IJavaElement.PACKAGE_FRAGMENT) {
                continue;
            }

            for (final Object aResource : ((IPackageFragment) aPackage).getNonJavaResources()) {
                // look only files. Skip others
                if (!(aResource instanceof IFile)) {
                    continue;
                }

                final IFile aFile = (IFile) aResource;
                if (GwtUtil.isModuleDescriptor(aFile)) {
                    moduleFiles.add(createModule(aFile));
                }
            }
        }
    }
    return moduleFiles.toArray(new GwtModule[moduleFiles.size()]);
}

From source file:org.eclipseguru.gwt.core.launch.GwtLaunchUtil.java

License:Open Source License

/**
 * Adds the source folder from the specified project to the classpath list.
 * /*w w w. ja va 2 s. co  m*/
 * @param gwtProject
 * @param classpath
 * @throws JavaModelException
 */
private static void addSourceFolderToClasspath(final IJavaProject project, final List<String> classpath)
        throws JavaModelException {
    if ((null == project) || !project.exists()) {
        return;
    }

    final IPackageFragmentRoot[] packageFragmentRoots = project.getPackageFragmentRoots();
    for (final IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
        if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
            classpath.add(packageFragmentRoot.getResource().getLocation().toOSString());
        }
    }
}

From source file:org.eclipselabs.stlipse.util.ProjectUtil.java

License:Open Source License

public static IPackageFragmentRoot getFirstSourceRoot(IJavaProject project) throws JavaModelException {
    IPackageFragmentRoot pkgRoot = null;
    for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
            // Use the first source folder.
            pkgRoot = root;/*from w ww.  j a v  a  2  s .c  o m*/
            break;
        }
    }
    return pkgRoot;
}

From source file:org.evolizer.core.util.selectionhandling.JavaSelectionHelper.java

License:Apache License

/**
 * Returns the list of root package fragments of a given Java project.
 * //from w w w.  j  a va2s . c o  m
 * @param project   The Java project.
 * @return  The list of root package fragments. 
 * @throws EvolizerException
 */
public static List<IJavaElement> getPackageFragmentRoots(IJavaProject project) throws EvolizerException {
    List<IJavaElement> sourceRootPagckages = new ArrayList<IJavaElement>();
    try {
        for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                sourceRootPagckages.add(root);
            }
        }
    } catch (JavaModelException jme) {
        throw new EvolizerException(jme);
    }

    return sourceRootPagckages;
}

From source file:org.fusesource.ide.foundation.core.util.CamelUtils.java

License:Open Source License

/**
 * Fetch the list of files in the project that match the camel content type. 
 * This method looks at only the source folders if the project is a Java project.
 * @param project/*from w  ww.jav a  2s .  co  m*/
 * @return list of camel files with content-type org.fusesource.ide.camel.editor.camelContentType
 * @throws CoreException
 */
public static List<IFile> getFilesWithCamelContentType(IProject project) throws CoreException {
    final List<IFile> files = new ArrayList<IFile>();
    if (project.hasNature(JavaCore.NATURE_ID)) {
        //limit the search to source folders
        IJavaProject javaProject = JavaCore.create(project);
        if (javaProject != null) {
            for (IPackageFragmentRoot ifr : javaProject.getAllPackageFragmentRoots()) {
                if (ifr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                    files.addAll(getFilesWithCamelContentTypeInResource(ifr.getCorrespondingResource()));
                }
            }
        }
    }
    if (project.hasNature(FacetedProjectNature.NATURE_ID)) {
        // TODO: search in deployed resources
    }

    if (files.isEmpty()) {// or should we throw an error?
        files.addAll(getFilesWithCamelContentTypeInResource(project));
    }
    return files;
}

From source file:org.grails.ide.eclipse.explorer.providers.GrailsNavigatorFilter.java

License:Open Source License

public boolean select(Viewer arg0, Object parent, Object element) {
    if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = ((IPackageFragmentRoot) element);

        try {/*from w  ww.  j av  a  2s  . co  m*/
            // allow binary content like libraries
            if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
                return true;
            }
        } catch (JavaModelException e) {
            GrailsCoreActivator.log(e);
        }
        IProject project = ((IPackageFragmentRoot) element).getJavaProject().getProject();
        Object immediateParent = getImmediateParent(parent);

        // Filter out all top-level level plugin dependency package
        // fragment roots. Filter in all other package fragment roots
        if (GrailsNature.isGrailsProject(project)
                && isGrailsDependencyPackageFragmentRoot(immediateParent, root)) {
            return false;
        }
    } else if (element instanceof IFolder) {
        IFolder folder = (IFolder) element;
        IProject project = folder.getProject();

        if (GrailsNature.isGrailsProject(project)) {
            // For reimages Grails file folders, if they are top level,
            // filter them in. If they are child of other folders, filter
            // them out
            Object immediateParent = getImmediateParent(parent);
            if (GrailsResourceUtil.isReimagedGrailsProjectFileFolder(folder)
                    && !(immediateParent instanceof IProject)) {
                return false;
            } else if (GrailsResourceUtil.isFilteredGrailsFolder(folder)) {
                return false;
            } else if (GrailsResourceUtil.isDefaultOutputFolder(folder)) {
                return false;
            } else {
                // Do a further check to see if any children may be filtered
                // out. If so, don't show the parent folder
                try {
                    IResource[] children = folder.members();
                    // Filtering algorithm:
                    // If a folder contains AT LEAST one filtered child, it
                    // means
                    // it's a Grails folder, in which case if all children
                    // are filtered
                    // ONLY then is the parent folder filtered out.
                    // Note to be careful not to filter out folders that
                    // contain anything
                    // else.
                    if (children != null) {
                        boolean filterOutParentFolder = false;
                        for (IResource child : children) {
                            if ((child instanceof IFolder) && (GrailsResourceUtil
                                    .isFilteredGrailsFolder((IFolder) child)
                                    || GrailsResourceUtil.isReimagedGrailsProjectFileFolder((IFolder) child))) {
                                // For now decide to filter out the parent
                                // folder
                                // as it contains filtered Grails content
                                filterOutParentFolder = true;
                            } else {
                                filterOutParentFolder = false;
                                break;
                            }
                        }
                        // All the children in the folder is filtered Grail
                        // content, therefore
                        // filter out the parent folder.
                        if (filterOutParentFolder) {
                            return false;
                        }
                    }
                } catch (CoreException e) {
                    GrailsCoreActivator.log(e);
                }
            }
        }
    } else if (element instanceof IPackageFragment) {
        IPackageFragment frag = (IPackageFragment) element;
        IJavaProject javaProject = frag.getJavaProject();
        if (GrailsNature.isGrailsProject(javaProject.getProject()) && frag.isDefaultPackage()) {
            IJavaElement javaParent = frag.getParent();
            if (javaParent instanceof IPackageFragmentRoot) {
                IPackageFragmentRoot root = (IPackageFragmentRoot) javaParent;
                // Only filter out the default package fragment from CONF
                // folder
                GrailsProjectStructureTypes type = GrailsResourceUtil.getGrailsContainerType(root);
                if (type == GrailsProjectStructureTypes.CONF) {
                    return false;
                }
            }
        }
    } else if (element instanceof ClassPathContainer) {
        //Hide toplevel classpath containers.
        if (parent instanceof TreePath) {
            TreePath parentPath = (TreePath) parent;
            if (parentPath.getLastSegment() instanceof IProject) {
                IProject project = (IProject) parentPath.getLastSegment();
                return !GrailsNature.isGrailsProject(project);
            }
        }
    }

    return true;
}

From source file:org.grails.ide.eclipse.refactoring.util.RefactoringUtils.java

License:Open Source License

/**
 * Creates a default 'search scope' to search for references that need updating in a Grails project. The default scope includes all
 * source folders in the Grails project that actually 'belong' to the project (i.e. all source folders, but excluding 
 * the linked plugin source folders./* w  w  w .  ja v a 2  s.  c o m*/
 * 
 * @throws JavaModelException 
 */
public static IJavaSearchScope getSearchScope(IJavaProject javaProject) throws JavaModelException {
    IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
    List<IPackageFragmentRoot> srcFolders = new ArrayList<IPackageFragmentRoot>();
    for (IPackageFragmentRoot root : roots) {
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
            if (!GrailsResourceUtil.isGrailsDependencyPackageFragmentRoot(root)) {
                srcFolders.add(root);
                //               System.out.println(root.getPath());
            }
        }
    }
    return SearchEngine.createJavaSearchScope(srcFolders.toArray(new IJavaElement[srcFolders.size()]));
}

From source file:org.gw4e.eclipse.menu.SynchronizeBuildPoliciesEnabled.java

License:Open Source License

@Override
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
    IProject project = null;/*from ww w  . j  a va 2 s.  c  o  m*/
    boolean authorized = false;
    if (receiver instanceof IJavaProject) {
        project = ((IJavaProject) receiver).getProject();
        authorized = true;
    } else {
        if (receiver instanceof IPackageFragmentRoot) {
            IPackageFragmentRoot pfr = ((IPackageFragmentRoot) receiver);
            project = pfr.getJavaProject().getProject();
            try {
                authorized = (pfr.getKind() == IPackageFragmentRoot.K_SOURCE);
            } catch (JavaModelException ignore) {
            }
        } else {
            if (receiver instanceof IPackageFragment) {
                IPackageFragment pf = (IPackageFragment) receiver;
                project = pf.getJavaProject().getProject();
                authorized = true;
            }
        }
    }
    if (authorized && project != null) {
        if (GW4ENature.hasGW4ENature(project))
            return true;
    }

    return false;
}

From source file:org.hibernate.eclipse.jdt.ui.internal.jpa.actions.JPAMapToolActionDelegate.java

License:Open Source License

protected boolean checkEnabled() {
    boolean enable = false;
    Object obj = refContextObject != null ? refContextObject.get() : null;
    if (obj == null) {
        return enable;
    }//from w w w  .  j a v  a2s. co  m
    List<?> list = null;
    if (obj instanceof List) {
        list = (List<?>) obj;
    } else {
        list = Collections.singletonList(obj);
    }
    Iterator<?> it = list.iterator();
    while (it.hasNext() && !enable) {
        Object obj2 = it.next();
        if (!(obj2 instanceof IJavaElement)) {
            continue;
        }
        int kind = IPackageFragmentRoot.K_SOURCE;
        if (obj2 instanceof IPackageFragment) {
            IPackageFragment pf = (IPackageFragment) obj2;
            try {
                kind = pf.getKind();
            } catch (JavaModelException e) {
                kind = IPackageFragmentRoot.K_BINARY;
            }
        } else if (obj2 instanceof IPackageFragmentRoot) {
            IPackageFragmentRoot pfr = (IPackageFragmentRoot) obj2;
            try {
                kind = pfr.getKind();
            } catch (JavaModelException e) {
                kind = IPackageFragmentRoot.K_BINARY;
            }
        }
        if (kind == IPackageFragmentRoot.K_SOURCE) {
            enable = true;
        }
    }
    if (!enable) {
        enable = isCUSelected();
    }
    return enable;
}