List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE
int K_SOURCE
To view the source code for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE.
Click Source Link
From source file:com.motorola.studio.android.wizards.buildingblocks.NewBuildingBlocksWizardPage.java
License:Apache License
@Override protected IStatus containerChanged() { IStatus superStatus = super.containerChanged(); IStatus status = new Status(superStatus.getSeverity(), CodeUtilsActivator.PLUGIN_ID, superStatus.getMessage());/*from ww w. java 2 s. com*/ boolean hasNature = false; if (status.getCode() != IStatus.ERROR) { try { if ((getPackageFragmentRoot() != null) && (getPackageFragmentRoot().getJavaProject() != null)) { hasNature = getPackageFragmentRoot().getJavaProject().getProject() .hasNature(IAndroidConstants.ANDROID_NATURE); } } catch (CoreException ce) { StudioLogger.error(NewBuildingBlocksWizardPage.class, "Error getting the project nature.", ce); //$NON-NLS-1$ hasNature = false; } if ((getPackageFragmentRoot() != null) && !hasNature) { status = new Status(IStatus.ERROR, CodeUtilsActivator.PLUGIN_ID, CodeUtilsNLS.ERR_NewBuildingBlocksWizardPage_SelectAnAndroidProject); } else if ((getPackageFragmentRoot() == null) || (getPackageFragmentRoot().getResource().getType() == IResource.PROJECT) || ((getPackageFragmentRoot().getElementType() & IPackageFragmentRoot.K_SOURCE) != IPackageFragmentRoot.K_SOURCE)) { status = new Status(IStatus.ERROR, CodeUtilsActivator.PLUGIN_ID, CodeUtilsNLS.ERR_NewBuildingBlocksWizardPage_SelectAValidSourceFolder); } else if (getPackageFragmentRoot().getElementName().equals(IAndroidConstants.GEN_SRC_FOLDER) && (getPackageFragmentRoot().getParent() instanceof IJavaProject)) { status = new Status(IStatus.ERROR, CodeUtilsActivator.PLUGIN_ID, CodeUtilsNLS.ERR_NewBuildingBlocksWizardPage_CannotUseTheGenFolderAsSourceFolder); } else if (isTooLongOnFileSystem()) { status = new Status(IStatus.ERROR, CodeUtilsActivator.PLUGIN_ID, CodeUtilsNLS.ERR_NewBuildingBlocksWizardPage_FileNameTooLong); } } return status; }
From source file:com.motorola.studio.android.wizards.buildingblocks.NewBuildingBlocksWizardPage.java
License:Apache License
/** * Checks for cross package/class collision among source folders * /* ww w . ja va 2s . c o m*/ * @return true if there is any collision or false otherwise */ private boolean packageAndClassExist() { boolean exists = false; try { if ((getJavaProject() != null) && getJavaProject().isOpen()) { IPackageFragmentRoot[] roots = getJavaProject().getPackageFragmentRoots(); if (roots != null) { for (IPackageFragmentRoot root : roots) { if ((root.getKind() & IPackageFragmentRoot.K_SOURCE) == IPackageFragmentRoot.K_SOURCE) { IPackageFragment pack = root.getPackageFragment(getPackageText()); if ((pack != null) && pack.exists()) { IJavaElement classes[] = pack.getChildren(); if (classes != null) { for (IJavaElement clazz : classes) { if (clazz.getElementName().equals(getTypeName() + JAVA_EXTENSION)) { exists = true; break; } } } } } if (exists) { break; } } } } } catch (JavaModelException e) { // Do nothing StudioLogger.error(NewBuildingBlocksWizardPage.class, e.getLocalizedMessage(), e); } return exists; }
From source file:com.mountainminds.eclemma.internal.core.analysis.TypeTraverser.java
License:Open Source License
private void processPackageFragment(ITypeVisitor visitor, IPackageFragment fragment, IProgressMonitor monitor) throws JavaModelException { switch (fragment.getKind()) { case IPackageFragmentRoot.K_SOURCE: final ICompilationUnit[] units = fragment.getCompilationUnits(); monitor.beginTask("", units.length); //$NON-NLS-1$ for (final ICompilationUnit unit : units) { if (monitor.isCanceled()) { break; }/*from w w w . j av a2 s . co m*/ processCompilationUnit(visitor, unit, monitor); monitor.worked(1); } break; case IPackageFragmentRoot.K_BINARY: final IClassFile[] classfiles = fragment.getClassFiles(); monitor.beginTask("", classfiles.length); //$NON-NLS-1$ for (final IClassFile classfile : classfiles) { if (monitor.isCanceled()) { break; } processClassFile(visitor, classfile, monitor); monitor.worked(1); } break; } monitor.done(); }
From source file:com.mountainminds.eclemma.internal.core.DefaultScopeFilter.java
License:Open Source License
private void sourceFoldersOnly(Collection<IPackageFragmentRoot> filtered) throws JavaModelException { for (final Iterator<IPackageFragmentRoot> i = filtered.iterator(); i.hasNext();) { if (i.next().getKind() != IPackageFragmentRoot.K_SOURCE) { i.remove();//from ww w . j a v a 2 s.c o m } } }
From source file:com.mountainminds.eclemma.internal.core.instr.ClassFilesStore.java
License:Open Source License
private static IPath getClassFileLocation(IPackageFragmentRoot root) throws JavaModelException { IPath path;/*from ww w . j av a2s . com*/ if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { IClasspathEntry entry = root.getRawClasspathEntry(); path = entry.getOutputLocation(); if (path == null) { path = root.getJavaProject().getOutputLocation(); } } else { path = root.getPath(); } return path; }
From source file:com.mountainminds.eclemma.internal.core.instr.SourceLocation.java
License:Open Source License
public static ISourceLocation findLocation(IPackageFragmentRoot root) throws JavaModelException { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { IPath path = EclEmmaCorePlugin.getAbsolutePath(root.getPath()); return new SourceLocation(path, new Path(IPackageFragmentRoot.DEFAULT_PACKAGEROOT_PATH)); } else {/*from w w w .j a v a 2 s . c o m*/ IPath path = root.getSourceAttachmentPath(); if (path != null) { path = EclEmmaCorePlugin.getAbsolutePath(path); return new SourceLocation(path, root.getSourceAttachmentRootPath()); } else { return null; } } }
From source file:com.mountainminds.eclemma.internal.core.SessionExporter.java
License:Open Source License
private ISourceFileLocator createSourceFileLocator(IPackageFragmentRoot root) throws JavaModelException { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { return new SourceFolderSourceFileLocator(root); } else {/* w ww. j a v a 2 s. co m*/ return new LibrarySourceFileLocator(root); } }
From source file:com.mountainminds.eclemma.internal.ui.ScopeViewer.java
License:Open Source License
/** * Attaches the viewer to the given table. * // ww w . ja v a 2s . c om * @param table * view table */ public ScopeViewer(Table table) { this.table = table; viewer = new CheckboxTableViewer(table); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new PackageFragmentRootLabelProvider()); viewer.setSorter(new PackageFragmentRootSorter()); viewer.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (includebinaries) { return true; } final IPackageFragmentRoot root = (IPackageFragmentRoot) element; try { return root.getKind() == IPackageFragmentRoot.K_SOURCE; } catch (JavaModelException e) { EclEmmaUIPlugin.log(e); return false; } } }); viewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { fireSelectionEvent(); } }); }
From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerContentProvider.java
License:Open Source License
/** * Processes a delta recursively. When more than two children are affected the * tree is fully refreshed starting at this node. * * @param delta the delta to process//from ww w . j av a 2s . c o m * @param runnables the resulting view changes as runnables (type {@link Runnable}) * @return true is returned if the conclusion is to refresh a parent of an element. In that case no siblings need * to be processed * @throws JavaModelException thrown when the access to an element failed */ private boolean processDelta(IJavaElementDelta delta, Collection<Runnable> runnables) throws JavaModelException { int kind = delta.getKind(); int flags = delta.getFlags(); IJavaElement element = delta.getElement(); int elementType = element.getElementType(); if (elementType != IJavaElement.JAVA_MODEL && elementType != IJavaElement.JAVA_PROJECT) { IJavaProject proj = element.getJavaProject(); if (proj == null || !proj.getProject().isOpen()) // TODO: Not needed if parent already did the 'open' check! return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT) { if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) if (!fIsFlatLayout) { Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (!(parent instanceof IPackageFragmentRoot)) { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } if (!fIsFlatLayout) { if (kind == IJavaElementDelta.REMOVED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { postRemove(element, runnables); return false; } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } else if (kind == IJavaElementDelta.ADDED) { final Object parent = getHierarchicalPackageParent((IPackageFragment) element); if (parent instanceof IPackageFragmentRoot) { if (fFoldPackages) { postRefresh(parent, PARENT, element, runnables); return true; } else { postAdd(parent, element, runnables); return false; } } else { postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; } } if (elementType == IJavaElement.COMPILATION_UNIT) { ICompilationUnit cu = (ICompilationUnit) element; if (!JavaModelUtil.isPrimary(cu)) { return false; } if (!getProvideMembers() && cu.isWorkingCopy() && kind == IJavaElementDelta.CHANGED) { return false; } if (kind == IJavaElementDelta.CHANGED && !isStructuralCUChange(flags)) { return false; // test moved ahead } if (!isOnClassPath(cu)) { // TODO: isOnClassPath expensive! Should be put after all cheap tests return false; } } if (elementType == IJavaElement.JAVA_PROJECT) { // handle open and closing of a project if ((flags & (IJavaElementDelta.F_CLOSED | IJavaElementDelta.F_OPENED)) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if the class path has changed we refresh the entire project if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } // if added it could be that the corresponding IProject is already shown. Remove it first. // bug 184296 if (kind == IJavaElementDelta.ADDED) { postRemove(element.getResource(), runnables); postAdd(element.getParent(), element, runnables); return false; } } if (kind == IJavaElementDelta.REMOVED) { Object parent = internalGetParent(element); if (element instanceof IPackageFragment) { // refresh package fragment root to allow filtering empty (parent) packages: bug 72923 if (fViewer.testFindItem(parent) != null) postRefresh(parent, PARENT, element, runnables); return true; } else if (element instanceof IPackageFragmentRoot) { // libs and class folders can show up twice (in library container and as resource at original location) IResource resource = element.getResource(); if (resource != null && !resource.exists()) postRemove(resource, runnables); } postRemove(element, runnables); if (parent instanceof IPackageFragment) postUpdateIcon((IPackageFragment) parent, runnables); // we are filtering out empty subpackages, so we // a package becomes empty we remove it from the viewer. if (isPackageFragmentEmpty(element.getParent())) { if (fViewer.testFindItem(parent) != null) postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables); return true; } return false; } if (kind == IJavaElementDelta.ADDED) { Object parent = internalGetParent(element); // we are filtering out empty subpackages, so we // have to handle additions to them specially. if (parent instanceof IPackageFragment) { Object grandparent = internalGetParent(parent); // 1GE8SI6: ITPJUI:WIN98 - Rename is not shown in Packages View // avoid posting a refresh to an invisible parent if (parent.equals(fInput)) { postRefresh(parent, PARENT, element, runnables); } else { // refresh from grandparent if parent isn't visible yet if (fViewer.testFindItem(parent) == null) postRefresh(grandparent, GRANT_PARENT, element, runnables); else { postRefresh(parent, PARENT, element, runnables); } } return true; } else { if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) element).getKind() != IPackageFragmentRoot.K_SOURCE) { // libs and class folders can show up twice (in library container or under project, and as resource at original location) IResource resource = element.getResource(); if (resource != null) { Object resourceParent = super.internalGetParent(resource); if (resourceParent != null) { IJavaProject proj = element.getJavaProject(); if (fShowLibrariesNode || !resourceParent.equals(proj)) { postAdd(resourceParent, resource, runnables); } } } } postAdd(parent, element, runnables); } } if (elementType == IJavaElement.COMPILATION_UNIT || elementType == IJavaElement.CLASS_FILE) { if (kind == IJavaElementDelta.CHANGED) { // isStructuralCUChange already performed above postRefresh(element, ORIGINAL, element, runnables); } return false; } if (elementType == IJavaElement.PACKAGE_FRAGMENT_ROOT) { // the contents of an external JAR has changed if ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) { postRefresh(element, ORIGINAL, element, runnables); return false; } if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) { // TODO: This should never be true for folders (F_CONTENT is only for files) // content change, without children info (for example resource added/removed to class folder package) postRefresh(internalGetParent(element), PARENT, element, runnables); return true; } // the source attachment of a JAR has changed if ((flags & (IJavaElementDelta.F_SOURCEATTACHED | IJavaElementDelta.F_SOURCEDETACHED)) != 0) postUpdateIcon(element, runnables); if (isClassPathChange(delta)) { // throw the towel and do a full refresh of the affected java project. postRefresh(element.getJavaProject(), PROJECT, element, runnables); return true; } } handleAffectedChildren(delta, element, runnables); return false; }
From source file:com.redhat.ceylon.eclipse.core.classpath.CeylonClasspathContainer.java
License:Apache License
public static boolean isProjectModule(IJavaProject javaProject, Module module) throws JavaModelException { boolean isSource = false; for (IPackageFragmentRoot s : javaProject.getPackageFragmentRoots()) { if (s.getKind() == IPackageFragmentRoot.K_SOURCE && s.getPackageFragment(module.getNameAsString()).exists()) { isSource = true;//w w w . j a v a 2 s . c o m break; } } return isSource; }