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

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

Introduction

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

Prototype

int JAVA_PROJECT

To view the source code for org.eclipse.jdt.core IJavaElement JAVA_PROJECT.

Click Source Link

Document

Constant representing a Java project.

Usage

From source file:org.eclipse.ajdt.internal.ui.wizards.exports.AJJarPackageWizardPage.java

License:Open Source License

private Set getCorrespondingContainers(Set elements) {
    Set javaElementResources = new HashSet(elements.size());
    Iterator iter = elements.iterator();
    while (iter.hasNext()) {
        Object element = iter.next();
        if (element instanceof IJavaElement) {
            IJavaElement je = (IJavaElement) element;
            int type = je.getElementType();
            if (type == IJavaElement.JAVA_PROJECT || type == IJavaElement.PACKAGE_FRAGMENT
                    || type == IJavaElement.PACKAGE_FRAGMENT_ROOT) {
                // exclude default package since it is covered by the root
                if (!(type == IJavaElement.PACKAGE_FRAGMENT
                        && ((IPackageFragment) element).isDefaultPackage())) {
                    Object resource;
                    try {
                        resource = je.getCorrespondingResource();
                    } catch (JavaModelException ex) {
                        resource = null;
                    }/*from  ww  w .j  a  v  a 2  s  .com*/
                    if (resource != null)
                        javaElementResources.add(resource);
                }
            }
        }
    }
    return javaElementResources;
}

From source file:org.eclipse.ajdt.internal.ui.wizards.exports.ContainerFilter.java

License:Open Source License

/**
 * Returns the result of this filter, when applied to the
 * given inputs./*  w  ww.  j ava 2 s .  c o m*/
 *
 * @param inputs the set of elements to 
 * @return Returns true if element should be included in filtered set
 */
public boolean select(Viewer viewer, Object parent, Object element) {
    boolean isContainer = element instanceof IContainer;
    if (!isContainer && element instanceof IJavaElement) {
        int type = ((IJavaElement) element).getElementType();
        isContainer = type == IJavaElement.JAVA_MODEL || type == IJavaElement.JAVA_PROJECT
                || type == IJavaElement.PACKAGE_FRAGMENT || type == IJavaElement.PACKAGE_FRAGMENT_ROOT;
    }
    return (fFilterContainers && !isContainer) || (!fFilterContainers && isContainer);
}

From source file:org.eclipse.ajdt.internal.ui.wizards.exports.SealPackagesFilter.java

License:Open Source License

/**
 * Returns the result of this filter, when applied to the
 * given inputs./*from  ww w  . j a  v  a 2 s.co m*/
 *
 * @param inputs the set of elements to 
 * @return Returns true if element should be included in filtered set
 */
public boolean select(Viewer viewer, Object parent, Object element) {
    if (element instanceof IJavaElement) {
        int type = ((IJavaElement) element).getElementType();
        if (type == IJavaElement.JAVA_MODEL || type == IJavaElement.JAVA_PROJECT
                || type == IJavaElement.PACKAGE_FRAGMENT_ROOT)
            return true;
        return (type == IJavaElement.PACKAGE_FRAGMENT && fAllowedPackages.contains(element));

    } else
        return false;
}

From source file:org.eclipse.andmore.internal.refactorings.core.AndroidPackageRenameParticipant.java

License:Open Source License

@Override
protected boolean initialize(final Object element) {
    mRefactoringAppPackage = false;/*w  w  w .  j  a v a  2  s .c o  m*/
    try {
        // Only propose this refactoring if the "Update References" checkbox is set.
        if (!getArguments().getUpdateReferences()) {
            return false;
        }

        if (element instanceof IPackageFragment) {
            mPackageFragment = (IPackageFragment) element;
            if (!mPackageFragment.containsJavaResources()) {
                return false;
            }
            IJavaProject javaProject = (IJavaProject) mPackageFragment.getAncestor(IJavaElement.JAVA_PROJECT);
            mProject = javaProject.getProject();
            IResource manifestResource = mProject
                    .findMember(AndmoreAndroidConstants.WS_SEP + SdkConstants.FN_ANDROID_MANIFEST_XML);

            if (manifestResource == null || !manifestResource.exists()
                    || !(manifestResource instanceof IFile)) {
                RefactoringUtil.logInfo("Invalid or missing the " + SdkConstants.FN_ANDROID_MANIFEST_XML
                        + " in the " + mProject.getName() + " project.");
                return false;
            }
            mManifestFile = (IFile) manifestResource;
            String packageName = mPackageFragment.getElementName();
            ManifestData manifestData;
            manifestData = AndroidManifestHelper.parseForData(mManifestFile);
            if (manifestData == null) {
                return false;
            }
            mAppPackage = manifestData.getPackage();
            mOldPackage = packageName;
            mNewPackage = getArguments().getNewName();
            if (mOldPackage == null || mNewPackage == null) {
                return false;
            }

            if (RefactoringUtil.isRefactorAppPackage() && mAppPackage != null
                    && mAppPackage.equals(packageName)) {
                mRefactoringAppPackage = true;
            }

            return true;
        }
    } catch (JavaModelException ignore) {
    }
    return false;
}

From source file:org.eclipse.andmore.internal.refactorings.core.AndroidTypeMoveParticipant.java

License:Open Source License

@Override
protected boolean initialize(Object element) {
    if (element instanceof IType) {
        IType type = (IType) element;//from  w  w w . j a  va  2 s.co m
        IJavaProject javaProject = (IJavaProject) type.getAncestor(IJavaElement.JAVA_PROJECT);
        mProject = javaProject.getProject();
        IResource manifestResource = mProject
                .findMember(AndmoreAndroidConstants.WS_SEP + SdkConstants.FN_ANDROID_MANIFEST_XML);

        if (manifestResource == null || !manifestResource.exists() || !(manifestResource instanceof IFile)) {
            RefactoringUtil.logInfo("Invalid or missing the " + SdkConstants.FN_ANDROID_MANIFEST_XML
                    + " in the " + mProject.getName() + " project.");
            return false;
        }
        mManifestFile = (IFile) manifestResource;
        ManifestData manifestData;
        manifestData = AndroidManifestHelper.parseForData(mManifestFile);
        if (manifestData == null) {
            return false;
        }
        mAppPackage = manifestData.getPackage();
        mOldFqcn = type.getFullyQualifiedName();
        Object destination = getArguments().getDestination();
        if (destination instanceof IPackageFragment) {
            IPackageFragment packageFragment = (IPackageFragment) destination;
            mNewFqcn = packageFragment.getElementName() + "." + type.getElementName();
        } else if (destination instanceof IResource) {
            try {
                IPackageFragment[] fragments = javaProject.getPackageFragments();
                for (IPackageFragment fragment : fragments) {
                    IResource resource = fragment.getResource();
                    if (resource.equals(destination)) {
                        mNewFqcn = fragment.getElementName() + '.' + type.getElementName();
                        break;
                    }
                }
            } catch (JavaModelException e) {
                // pass
            }
        }
        return mOldFqcn != null && mNewFqcn != null;
    }

    return false;
}

From source file:org.eclipse.andmore.internal.refactorings.core.AndroidTypeRenameParticipant.java

License:Open Source License

@Override
protected boolean initialize(Object element) {
    if (sIgnore) {
        return false;
    }/*from w ww .  jav a  2  s . c om*/

    if (element instanceof IType) {
        IType type = (IType) element;
        IJavaProject javaProject = (IJavaProject) type.getAncestor(IJavaElement.JAVA_PROJECT);
        mProject = javaProject.getProject();
        IResource manifestResource = mProject
                .findMember(AndmoreAndroidConstants.WS_SEP + SdkConstants.FN_ANDROID_MANIFEST_XML);

        if (manifestResource == null || !manifestResource.exists() || !(manifestResource instanceof IFile)) {
            RefactoringUtil.logInfo(String.format("Invalid or missing file %1$s in project %2$s",
                    SdkConstants.FN_ANDROID_MANIFEST_XML, mProject.getName()));
            return false;
        }

        try {
            IType classView = javaProject.findType(CLASS_VIEW);
            if (classView != null) {
                ITypeHierarchy hierarchy = type.newSupertypeHierarchy(new NullProgressMonitor());
                if (hierarchy.contains(classView)) {
                    mIsCustomView = true;
                }
            }
        } catch (CoreException e) {
            AndmoreAndroidPlugin.log(e, null);
        }

        mManifestFile = (IFile) manifestResource;
        ManifestData manifestData;
        manifestData = AndroidManifestHelper.parseForData(mManifestFile);
        if (manifestData == null) {
            return false;
        }
        mOldSimpleName = type.getElementName();
        mOldDottedName = '.' + mOldSimpleName;
        mOldFqcn = type.getFullyQualifiedName();
        String packageName = type.getPackageFragment().getElementName();
        mNewSimpleName = getArguments().getNewName();
        mNewDottedName = '.' + mNewSimpleName;
        if (packageName != null) {
            mNewFqcn = packageName + mNewDottedName;
        } else {
            mNewFqcn = mNewSimpleName;
        }
        if (mOldFqcn == null || mNewFqcn == null) {
            return false;
        }
        if (!RefactoringUtil.isRefactorAppPackage() && mNewFqcn.indexOf('.') == -1) {
            mNewFqcn = packageName + mNewDottedName;
        }
        return true;
    }
    return false;
}

From source file:org.eclipse.birt.report.designer.internal.ui.ide.adapters.ProjectLabelProvider.java

License:Open Source License

public Image getBaseImage(IJavaElement element) {

    switch (element.getElementType()) {

    case IJavaElement.JAVA_PROJECT:
        IJavaProject jp = (IJavaProject) element;
        if (jp.getProject().isOpen()) {
            return ReportPlugin.getDefault().getWorkbench().getSharedImages()
                    .getImage(IDE.SharedImages.IMG_OBJ_PROJECT);
        }/*  w ww  .j av  a 2s  .co m*/
        return ReportPlugin.getDefault().getWorkbench().getSharedImages()
                .getImage(IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED);

    default:
        return null;
    }

}

From source file:org.eclipse.birt.report.designer.internal.ui.ide.util.ClassFinder.java

License:Open Source License

private IRegion getRegion(IJavaElement element) throws JavaModelException {
    IRegion result = JavaCore.newRegion();
    if (element.getElementType() == IJavaElement.JAVA_PROJECT) {
        // for projects only add the contained source folders
        IPackageFragmentRoot[] roots = ((IJavaProject) element).getPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            if (!roots[i].isArchive()) {
                result.add(roots[i]);//w w w. j ava 2 s .c  o m
            }
        }
    } else {
        result.add(element);
    }
    return result;
}

From source file:org.eclipse.che.jdt.internal.core.DeltaProcessor.java

License:Open Source License

private boolean createExternalArchiveDelta(HashSet refreshedElements, IProgressMonitor monitor) {

    HashMap externalArchivesStatus = new HashMap();
    boolean hasDelta = false;

    // find JARs to refresh
    HashSet archivePathsToRefresh = new HashSet();
    Iterator iterator = refreshedElements.iterator();
    while (iterator.hasNext()) {
        IJavaElement element = (IJavaElement) iterator.next();
        switch (element.getElementType()) {
        case IJavaElement.PACKAGE_FRAGMENT_ROOT:
            archivePathsToRefresh.add(element.getPath());
            break;
        case IJavaElement.JAVA_PROJECT:
            JavaProject javaProject = (JavaProject) element;
            if (!JavaProject.hasJavaNature(javaProject.getProject())) {
                // project is not accessible or has lost its Java nature
                break;
            }//  w w w .j a v  a2 s.  com
            IClasspathEntry[] classpath;
            try {
                classpath = javaProject.getResolvedClasspath();
                for (int j = 0, cpLength = classpath.length; j < cpLength; j++) {
                    if (classpath[j].getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
                        archivePathsToRefresh.add(classpath[j].getPath());
                    }
                }
            } catch (JavaModelException e) {
                // project doesn't exist -> ignore
            }
            break;
        case IJavaElement.JAVA_MODEL:
            //               Iterator projectNames = this.state.getOldJavaProjecNames().iterator();
            //               while (projectNames.hasNext()) {
            //                  String projectName = (String) projectNames.next();
            //                  IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
            //                  if (!JavaProject.hasJavaNature(project)) {
            //                     // project is not accessible or has lost its Java nature
            //                     continue;
            //                  }
            //                  javaProject = (JavaProject) JavaCore.create(project);
            //                  try {
            //                     classpath = javaProject.getResolvedClasspath();
            //                     for (int k = 0, cpLength = classpath.length; k < cpLength; k++){
            //                        if (classpath[k].getEntryKind() == IClasspathEntry.CPE_LIBRARY){
            //                           archivePathsToRefresh.add(classpath[k].getPath());
            //                        }
            //                     }
            //                  } catch (JavaModelException e2) {
            //                     // project doesn't exist -> ignore
            //                     continue;
            //                  }
            //               }
            throw new UnsupportedOperationException();
            //               break;
        }
    }

    //      // perform refresh
    //      Iterator projectNames = this.state.getOldJavaProjecNames().iterator();
    //      IWorkspaceRoot wksRoot = ResourcesPlugin.getWorkspace().getRoot();
    //      while (projectNames.hasNext()) {
    //
    //         if (monitor != null && monitor.isCanceled()) break;
    //
    //         String projectName = (String) projectNames.next();
    //         IProject project = wksRoot.getProject(projectName);
    //         if (!JavaProject.hasJavaNature(project)) {
    //            // project is not accessible or has lost its Java nature
    //            continue;
    //         }
    //         JavaProject javaProject = (JavaProject) JavaCore.create(project);
    //         IClasspathEntry[] entries;
    //         try {
    //            entries = javaProject.getResolvedClasspath();
    //         } catch (JavaModelException e1) {
    //            // project does not exist -> ignore
    //            continue;
    //         }
    //         boolean deltaContainsModifiedJar = false;
    //         for (int j = 0; j < entries.length; j++){
    //            if (entries[j].getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
    //               IPath entryPath = entries[j].getPath();
    //
    //               if (!archivePathsToRefresh.contains(entryPath)) continue; // not supposed to be refreshed
    //
    //               String status = (String)externalArchivesStatus.get(entryPath);
    //               if (status == null){
    //
    //                  // Clear the external file state for this path, since this method is responsible for updating it.
    //                  this.manager.clearExternalFileState(entryPath);
    //
    //                  // compute shared status
    //                  Object targetLibrary = JavaModel.getTarget(entryPath, true);
    //
    //                  if (targetLibrary == null){ // missing JAR
    //                     if (this.state.getExternalLibTimeStamps().remove(entryPath) != null /* file was known*/
    //                           && this.state.roots.get(entryPath) != null /* and it was on the classpath*/) {
    //                        externalArchivesStatus.put(entryPath, EXTERNAL_JAR_REMOVED);
    //                        // the jar was physically removed: remove the index
    //                        this.manager.indexManager.removeIndex(entryPath);
    //                     }
    //
    //                  } else if (targetLibrary instanceof File){ // external JAR
    //
    //                     File externalFile = (File)targetLibrary;
    //
    //                     // check timestamp to figure if JAR has changed in some way
    //                     Long oldTimestamp =(Long) this.state.getExternalLibTimeStamps().get(entryPath);
    //                     long newTimeStamp = getTimeStamp(externalFile);
    //                     if (oldTimestamp != null){
    //
    //                        if (newTimeStamp == 0){ // file doesn't exist
    //                           externalArchivesStatus.put(entryPath, EXTERNAL_JAR_REMOVED);
    //                           this.state.getExternalLibTimeStamps().remove(entryPath);
    //                           // remove the index
    //                           this.manager.indexManager.removeIndex(entryPath);
    //
    //                        } else if (oldTimestamp.longValue() != newTimeStamp){
    //                           externalArchivesStatus.put(entryPath, EXTERNAL_JAR_CHANGED);
    //                           this.state.getExternalLibTimeStamps().put(entryPath, new Long(newTimeStamp));
    //                           // first remove the index so that it is forced to be re-indexed
    //                           this.manager.indexManager.removeIndex(entryPath);
    //                           // then index the jar
    //                           this.manager.indexManager.indexLibrary(entryPath, project.getProject(), ((ClasspathEntry)entries[j])
    // .getLibraryIndexLocation(), true);
    //                        } else {
    //                           URL indexLocation = ((ClasspathEntry)entries[j]).getLibraryIndexLocation();
    //                           if (indexLocation != null) { // force reindexing, this could be faster rather than maintaining the list
    //                              this.manager.indexManager.indexLibrary(entryPath, project.getProject(), indexLocation);
    //                           }
    //                           externalArchivesStatus.put(entryPath, EXTERNAL_JAR_UNCHANGED);
    //                        }
    //                     } else {
    //                        if (newTimeStamp == 0){ // jar still doesn't exist
    //                           externalArchivesStatus.put(entryPath, EXTERNAL_JAR_UNCHANGED);
    //                        } else {
    //                           externalArchivesStatus.put(entryPath, EXTERNAL_JAR_ADDED);
    //                           this.state.getExternalLibTimeStamps().put(entryPath, new Long(newTimeStamp));
    //                           // index the new jar
    //                           this.manager.indexManager.removeIndex(entryPath);
    //                           this.manager.indexManager.indexLibrary(entryPath, project.getProject(), ((ClasspathEntry)entries[j])
    // .getLibraryIndexLocation());
    //                        }
    //                     }
    //                  } else { // internal JAR
    //                     externalArchivesStatus.put(entryPath, INTERNAL_JAR_IGNORE);
    //                  }
    //               }
    //               // according to computed status, generate a delta
    //               status = (String)externalArchivesStatus.get(entryPath);
    //               if (status != null){
    //                  if (status == EXTERNAL_JAR_ADDED){
    //                     PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString());
    //                     if (VERBOSE){
    //                        System.out.println("- External JAR ADDED, affecting root: "+root.getElementName()); //$NON-NLS-1$
    //                     }
    //                     elementAdded(root, null, null);
    //                     deltaContainsModifiedJar = true;
    //                     this.state.addClasspathValidation(javaProject); // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=185733
    //                     hasDelta = true;
    //                  } else if (status == EXTERNAL_JAR_CHANGED) {
    //                     PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString());
    //                     if (VERBOSE){
    //                        System.out.println("- External JAR CHANGED, affecting root: "+root.getElementName()); //$NON-NLS-1$
    //                     }
    //                     contentChanged(root);
    //                     deltaContainsModifiedJar = true;
    //                     hasDelta = true;
    //                  } else if (status == EXTERNAL_JAR_REMOVED) {
    //                     PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString());
    //                     if (VERBOSE){
    //                        System.out.println("- External JAR REMOVED, affecting root: "+root.getElementName()); //$NON-NLS-1$
    //                     }
    //                     elementRemoved(root, null, null);
    //                     deltaContainsModifiedJar = true;
    //                     this.state.addClasspathValidation(javaProject); // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=185733
    //                     hasDelta = true;
    //                  }
    //               }
    //            }
    //         }
    //
    //         if (deltaContainsModifiedJar) {
    //            javaProject.resetResolvedClasspath();
    //         }
    //      }
    //
    //      if (hasDelta){
    //         // flush jar type cache
    //         JavaModelManager.getJavaModelManager().resetJarTypeCache();
    //      }
    return hasDelta;
}

From source file:org.eclipse.che.jdt.internal.core.DeltaProcessor.java

License:Open Source License

private int elementType(File res, int kind, int parentType, RootInfo rootInfo) {
    Path path = new Path(res.getAbsolutePath());
    switch (parentType) {
    case IJavaElement.JAVA_MODEL:
        // case of a movedTo or movedFrom project (other cases are handled in processResourceDelta(...)
        return IJavaElement.JAVA_PROJECT;

    case NON_JAVA_RESOURCE:
    case IJavaElement.JAVA_PROJECT:
        if (rootInfo == null) {
            rootInfo = enclosingRootInfo(path, kind);
        }/*from w  w w. j  a va 2  s .c  o m*/
        if (rootInfo != null && rootInfo.isRootOfProject(path)) {
            return IJavaElement.PACKAGE_FRAGMENT_ROOT;
        }
        // not yet in a package fragment root or root of another project
        // or package fragment to be included (see below)
        // $FALL-THROUGH$

    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
    case IJavaElement.PACKAGE_FRAGMENT:
        if (rootInfo == null) {
            IPath rootPath = externalPath(res);
            rootInfo = enclosingRootInfo(rootPath, kind);
        }
        if (rootInfo == null) {
            return NON_JAVA_RESOURCE;
        }
        if (Util.isExcluded(path, rootInfo.inclusionPatterns, rootInfo.exclusionPatterns, false)) {
            return NON_JAVA_RESOURCE;
        }
        if (res.isDirectory()) {
            if (parentType == NON_JAVA_RESOURCE && !Util.isExcluded(new Path(res.getParent()),
                    rootInfo.inclusionPatterns, rootInfo.exclusionPatterns, false)) {
                // parent is a non-Java resource because it doesn't have a valid package name (see https://bugs.eclipse
                // .org/bugs/show_bug.cgi?id=130982)
                return NON_JAVA_RESOURCE;
            }
            String sourceLevel = rootInfo.project == null ? null
                    : rootInfo.project.getOption(JavaCore.COMPILER_SOURCE, true);
            String complianceLevel = rootInfo.project == null ? null
                    : rootInfo.project.getOption(JavaCore.COMPILER_COMPLIANCE, true);
            if (Util.isValidFolderNameForPackage(res.getName(), sourceLevel, complianceLevel)) {
                return IJavaElement.PACKAGE_FRAGMENT;
            }
            return NON_JAVA_RESOURCE;
        }
        String fileName = res.getName();
        String sourceLevel = rootInfo.project == null ? null
                : rootInfo.project.getOption(JavaCore.COMPILER_SOURCE, true);
        String complianceLevel = rootInfo.project == null ? null
                : rootInfo.project.getOption(JavaCore.COMPILER_COMPLIANCE, true);
        if (Util.isValidCompilationUnitName(fileName, sourceLevel, complianceLevel)) {
            return IJavaElement.COMPILATION_UNIT;
        } else if (Util.isValidClassFileName(fileName, sourceLevel, complianceLevel)) {
            return IJavaElement.CLASS_FILE;
        } else {
            IPath rootPath = externalPath(res);
            if ((rootInfo = rootInfo(rootPath, kind)) != null
                    && rootInfo.project.getProject().getFullPath().isPrefixOf(rootPath) /*ensure root is a root of its project (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=185310)
                                                                                        */) {
                // case of proj=src=bin and resource is a jar file on the classpath
                return IJavaElement.PACKAGE_FRAGMENT_ROOT;
            } else {
                return NON_JAVA_RESOURCE;
            }
        }

    default:
        return NON_JAVA_RESOURCE;
    }
}