List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot
IPackageFragmentRoot getPackageFragmentRoot(IResource resource);
From source file:org.eclipse.jdt.internal.core.JavaModelManager.java
License:Open Source License
/** * Creates and returns a handle for the given JAR file, its project being the given project. * The Java model associated with the JAR's project may be * created as a side effect.//from w w w . j ava2s . co m * Returns <code>null</code> if unable to create a JAR package fragment root. * (for example, if the JAR file represents a non-Java resource) */ public static IPackageFragmentRoot createJarPackageFragmentRootFrom(IFile file, IJavaProject project) { if (file == null) { return null; } if (project == null) { project = JavaCore.create(file.getProject()); } // Create a jar package fragment root only if on the classpath IPath resourcePath = file.getFullPath(); try { IClasspathEntry entry = ((JavaProject) project).getClasspathEntryFor(resourcePath); if (entry != null) { return project.getPackageFragmentRoot(file); } } catch (JavaModelException e) { // project doesn't exist: return null } return null; }
From source file:org.eclipse.jdt.internal.core.JavaModelManager.java
License:Open Source License
/** * Returns the package fragment root represented by the resource, or * the package fragment the given resource is located in, or <code>null</code> * if the given resource is not on the classpath of the given project. *//*ww w . j a va 2 s . c o m*/ public static IJavaElement determineIfOnClasspath(IResource resource, IJavaProject project) { IPath resourcePath = resource.getFullPath(); boolean isExternal = ExternalFoldersManager.isInternalPathForExternalFolder(resourcePath); if (isExternal) resourcePath = resource.getLocation(); try { JavaProjectElementInfo projectInfo = (JavaProjectElementInfo) getJavaModelManager().getInfo(project); ProjectCache projectCache = projectInfo == null ? null : projectInfo.projectCache; HashtableOfArrayToObject allPkgFragmentsCache = projectCache == null ? null : projectCache.allPkgFragmentsCache; boolean isJavaLike = org.eclipse.jdt.internal.core.util.Util .isJavaLikeFileName(resourcePath.lastSegment()); IClasspathEntry[] entries = isJavaLike ? project.getRawClasspath() // JAVA file can only live inside SRC folder (on the raw path) : ((JavaProject) project).getResolvedClasspath(); int length = entries.length; if (length > 0) { String sourceLevel = project.getOption(JavaCore.COMPILER_SOURCE, true); String complianceLevel = project.getOption(JavaCore.COMPILER_COMPLIANCE, true); for (int i = 0; i < length; i++) { IClasspathEntry entry = entries[i]; if (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT) continue; IPath rootPath = entry.getPath(); if (rootPath.equals(resourcePath)) { if (isJavaLike) return null; return project.getPackageFragmentRoot(resource); } else if (rootPath.isPrefixOf(resourcePath)) { // allow creation of package fragment if it contains a .java file that is included if (!Util.isExcluded(resource, ((ClasspathEntry) entry).fullInclusionPatternChars(), ((ClasspathEntry) entry).fullExclusionPatternChars())) { // given we have a resource child of the root, it cannot be a JAR pkg root PackageFragmentRoot root = isExternal ? new ExternalPackageFragmentRoot(rootPath, (JavaProject) project) : (PackageFragmentRoot) ((JavaProject) project) .getFolderPackageFragmentRoot(rootPath); if (root == null) return null; IPath pkgPath = resourcePath.removeFirstSegments(rootPath.segmentCount()); if (resource.getType() == IResource.FILE) { // if the resource is a file, then remove the last segment which // is the file name in the package pkgPath = pkgPath.removeLastSegments(1); } String[] pkgName = pkgPath.segments(); // if package name is in the cache, then it has already been validated // (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=133141) if (allPkgFragmentsCache != null && allPkgFragmentsCache.containsKey(pkgName)) return root.getPackageFragment(pkgName); if (pkgName.length != 0 && JavaConventions .validatePackageName(Util.packageName(pkgPath, sourceLevel, complianceLevel), sourceLevel, complianceLevel) .getSeverity() == IStatus.ERROR) { return null; } return root.getPackageFragment(pkgName); } } } } } catch (JavaModelException npe) { return null; } return null; }
From source file:org.eclipse.jpt.jaxb.ui.internal.wizards.classesgen.ClassesGeneratorWizardPage.java
License:Open Source License
/** * Override to allow selection of source folder in current project only * @see org.eclipse.jdt.ui.wizards.NewContainerWizardPage#chooseContainer() * Only 1 line in this code is different from the parent *///from w w w . j ava 2 s . co m @Override protected IPackageFragmentRoot chooseContainer() { Class<?>[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class }; TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { @Override public boolean isSelectedValid(Object element) { try { if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; 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 (JavaModelException e) { JptJaxbUiPlugin.instance().logError(e); // just log, no UI in validation } return false; } }; acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class }; ViewerFilter filter = new TypedViewerFilter(acceptedClasses) { @Override public boolean select(Viewer viewer, Object parent, Object element) { if (element instanceof IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { JptJaxbUiPlugin.instance().logError(e); // just log, no UI in validation return false; } } return super.select(viewer, parent, element); } }; StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider(); ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider); dialog.setValidator(validator); dialog.setComparator(new JavaElementComparator()); dialog.setTitle(JptJaxbUiMessages.CLASSES_GENERATOR_WIZARD_PAGE_SOURCE_FOLDER_SELECTION_DIALOG_TITLE); dialog.setMessage(JptJaxbUiMessages.CLASSES_GENERATOR_WIZARD_PAGE_CHOOSE_SOURCE_FOLDER_DIALOG_DESC); dialog.addFilter(filter); //set the java project as the input instead of the workspace like the NewContainerWizardPage was doing //******************************************************// dialog.setInput(this.getJavaProject()); // //******************************************************// dialog.setInitialSelection(getPackageFragmentRoot()); dialog.setHelpAvailable(false); if (dialog.open() == Window.OK) { Object element = dialog.getFirstResult(); if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; return jproject.getPackageFragmentRoot(jproject.getProject()); } else if (element instanceof IPackageFragmentRoot) { return (IPackageFragmentRoot) element; } return null; } return null; }
From source file:org.eclipse.jpt.jpa.ui.internal.wizards.entity.data.model.EntityDataModelProvider.java
License:Open Source License
@Override protected IPackageFragmentRoot getJavaPackageFragmentRoot() { JpaProject jpaProject = getTargetJpaProject(); if (jpaProject != null) { IJavaProject javaProject = jpaProject.getJavaProject(); // Return the source folder for the java project of the selected project if (javaProject != null) { IContainer sourceContainer = getJavaSourceContainer(); if (sourceContainer != null) { return javaProject.getPackageFragmentRoot(sourceContainer); }// www . ja v a2s . com } } return null; }
From source file:org.eclipse.jpt.jpa.ui.internal.wizards.gen.DefaultTableGenerationWizardPage.java
License:Open Source License
/** Override to allow select source folder in current project only * @see org.eclipse.jdt.ui.wizards.NewContainerWizardPage#chooseContainer() */// w ww. ja v a 2s . co m @Override protected IPackageFragmentRoot chooseContainer() { Class<?>[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class }; TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { @Override public boolean isSelectedValid(Object element) { try { if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; IPath path = jproject.getProject().getFullPath(); return (jproject.findPackageFragmentRoot(path) != null); } else if (element instanceof IPackageFragmentRoot) { return PackageFragmentRootTools.isSourceFolder((IPackageFragmentRoot) element); } return true; } catch (JavaModelException e) { JptJpaUiPlugin.instance().logError(e); // just log, no UI in validation } return false; } }; acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class }; ViewerFilter filter = new TypedViewerFilter(acceptedClasses) { @Override public boolean select(Viewer viewer, Object parent, Object element) { if (element instanceof IPackageFragmentRoot) { return PackageFragmentRootTools.isSourceFolder((IPackageFragmentRoot) element); } return super.select(viewer, parent, element); } }; StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider(); ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider); dialog.setValidator(validator); dialog.setComparator(new JavaElementComparator()); dialog.setTitle(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_title); dialog.setMessage(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_description); dialog.addFilter(filter); dialog.setInput(jpaProject.getJavaProject()); dialog.setInitialSelection(getPackageFragmentRoot()); dialog.setHelpAvailable(false); if (dialog.open() == Window.OK) { Object element = dialog.getFirstResult(); if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; return jproject.getPackageFragmentRoot(jproject.getProject()); } else if (element instanceof IPackageFragmentRoot) { return (IPackageFragmentRoot) element; } return null; } return null; }
From source file:org.eclipse.jst.j2ee.application.internal.operations.CreateProjectWithLinkedJarOperation.java
License:Open Source License
@Override public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { MultiStatus status = new MultiStatus(J2EEPlugin.PLUGIN_ID, 0, NLS.bind( EARCreationResourceHandler.CreateProjectWithLinkedJarOperation_Creating_project_with_linked_archiv_, getUtilityJar().getName()), null); try {//from w w w . j a v a2 s.com IProject project = getWorkspaceRoot().getProject(getUtilityJarProjectName(getUtilityJar())); IDataModel createUtilityProject = DataModelFactory .createDataModel(new UtilityProjectCreationDataModelProvider()); createUtilityProject.setProperty(IFacetProjectCreationDataModelProperties.FACET_PROJECT_NAME, getUtilityJarProjectName(getUtilityJar())); if (projectRoot != null && projectRoot.length() > 0) { createUtilityProject.setBooleanProperty(IProjectCreationPropertiesNew.USE_DEFAULT_LOCATION, false); createUtilityProject.setProperty(IProjectCreationPropertiesNew.USER_DEFINED_LOCATION, projectRoot); } createUtilityProject.setProperty(IJ2EEFacetProjectCreationDataModelProperties.ADD_TO_EAR, true); createUtilityProject.setProperty(IJ2EEFacetProjectCreationDataModelProperties.EAR_PROJECT_NAME, getAssociatedEARProjectName()); status.add(createUtilityProject.getDefaultOperation().execute(monitor, info)); IProject utilityJarProject = getWorkspaceRoot().getProject(getUtilityJarProjectName(getUtilityJar())); /* Remove the default src folder */ IJavaProject utilityJarJavaProject = JavaCore.create(utilityJarProject); IPackageFragmentRoot srcFolder = utilityJarJavaProject .getPackageFragmentRoot(utilityJarProject.getFolder("src")); //$NON-NLS-1$ if (srcFolder.exists()) { srcFolder.delete(IResource.FORCE, IPackageFragmentRoot.ORIGINATING_PROJECT_CLASSPATH, monitor); } status.add(createLinkedArchive(project, getUtilityJar().getName(), getUtilityJar(), linkedPathVariable, monitor)); /* Remove the /src mapping */ IVirtualComponent utilComponent = ComponentCore.createComponent(project); status.add(removeRootMapping(utilComponent, "/src", monitor)); //$NON-NLS-1$ } catch (Exception e) { status.add(J2EEPlugin.createErrorStatus(0, EARCreationResourceHandler.J2EEUtilityJarListImportOperation_UI_2, e)); } return status; }
From source file:org.eclipse.jst.j2ee.internal.common.operations.NewJavaClassDataModelProvider.java
License:Open Source License
/** * Subclasses may extend this method to perform their own retrieval mechanism. This * implementation simply returns the JDT package fragment root for the selected source folder. * This method may return null.//from w w w . j av a 2 s .c o m * * @see IJavaProject#getPackageFragmentRoot(org.eclipse.core.resources.IResource) * * @return IPackageFragmentRoot */ protected IPackageFragmentRoot getJavaPackageFragmentRoot() { IProject project = getTargetProject(); if (project != null) { IJavaProject aJavaProject = JemProjectUtilities.getJavaProject(project); // Return the source folder for the java project of the selected project if (aJavaProject != null) { IFolder sourcefolder = (IFolder) getProperty(JAVA_SOURCE_FOLDER); if (sourcefolder != null) return aJavaProject.getPackageFragmentRoot(sourcefolder); } } return null; }
From source file:org.eclipse.jst.jsf.common.ui.internal.dialogfield.SourceFolderButtonDialogField.java
License:Open Source License
/** * choose source container dialog// w w w . j a va 2 s . c om * * @param initElement * @return */ private IPackageFragmentRoot chooseSourceContainer(IJavaElement initElement) { Class[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class, }; TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { // TODO: never used // public boolean isSelectedValid(Object element) { // try { // if (element instanceof IJavaProject) { // IJavaProject jproject = (IJavaProject) element; // 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 (JavaModelException e) { // _log.error("JavaModelException"); // just log, no ui in // // validation // } // return false; // } }; acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class, }; ViewerFilter filter = new TypedViewerFilter(acceptedClasses) { public boolean select(Viewer viewer, Object parent, Object element) { if (element instanceof IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { _log.error(e); // just log, no ui // in validation return false; } } return super.select(viewer, parent, element); } }; StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider(); ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider); dialog.setValidator(validator); dialog.setComparator(new JavaElementComparator()); // HibernateWizardPage.ChooseSourceContainerDialog.Title = Folder // Selection dialog.setTitle(DialogFieldResources.getInstance() .getString("SourceFolderButtonDialogField.ChooseSourceContainerDialog.Title")); //$NON-NLS-1$ // HibernateWizardPage.ChooseSourceContainerDialog.Description = Choose // a folder: dialog.setMessage(DialogFieldResources.getInstance() .getString("SourceFolderButtonDialogField.ChooseSourceContainerDialog.Description")); //$NON-NLS-1$ dialog.addFilter(filter); if (_project != null) { dialog.setInput(JavaCore.create(_project)); } else { dialog.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot())); } dialog.setInitialSelection(initElement); if (dialog.open() == Window.OK) { Object element = dialog.getFirstResult(); if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; return jproject.getPackageFragmentRoot(jproject.getProject()); } else if (element instanceof IPackageFragmentRoot) { return (IPackageFragmentRoot) element; } return null; } return null; }
From source file:org.eclipse.jst.jsf.common.ui.internal.dialogfield.SourceFolderButtonDialogField.java
License:Open Source License
/** * This method updates the model and returns an error status. The underlying * model is only valid if the returned status is OK. * // w ww . j a va2s . co m * @return the model's error status */ public IStatus getChangedStatus() { StatusInfo status = new StatusInfo(); _fCurrRoot = null; String str = getPackageFragmentRootText(); if (str.length() == 0) { // SourceFolderButtonDialogField.error.EnterContainerName = Folder // name is empty. status.setError(DialogFieldResources.getInstance() .getString("SourceFolderButtonDialogField.error.EnterContainerName")); //$NON-NLS-1$ return status; } IPath path = new Path(str); IResource res = ResourcesPlugin.getWorkspace().getRoot().findMember(path); if (res != null) { int resType = res.getType(); if (resType == IResource.PROJECT || resType == IResource.FOLDER) { IProject proj = res.getProject(); if (!proj.isOpen()) { status.setError(DialogFieldResources.getInstance().getString( "SourceFolderButtonDialogField.error.ProjectClosed", proj.getFullPath().toString())); //$NON-NLS-1$ return status; } if (_project != null && proj != _project) { // HibernateWizardPage.error.NotSameProject = The project // should be \''{0}\''. status.setError(DialogFieldResources.getInstance() .getString("SourceFolderButtonDialogField.error.NotSameProject", _project.getName())); //$NON-NLS-1$ return status; } IJavaProject jproject = JavaCore.create(proj); _fCurrRoot = jproject.getPackageFragmentRoot(res); if (res.exists()) { try { if (!proj.hasNature(JavaCore.NATURE_ID)) { if (resType == IResource.PROJECT) { status.setError(DialogFieldResources.getInstance().getString( "SourceFolderButtonDialogField.warning.NotAJavaProject", proj.getName())); //$NON-NLS-1$ } else { status.setWarning(DialogFieldResources.getInstance().getString( "SourceFolderButtonDialogField.warning.NotInAJavaProject", proj.getName())); //$NON-NLS-1$ } return status; } } catch (CoreException e) { status.setWarning(DialogFieldResources.getInstance().getString( "SourceFolderButtonDialogField.warning.NotAJavaProject", proj.getName())); //$NON-NLS-1$ } if (!jproject.isOnClasspath(_fCurrRoot)) { status.setWarning(DialogFieldResources.getInstance() .getString("SourceFolderButtonDialogField.warning.NotOnClassPath", str)); //$NON-NLS-1$ } if (_fCurrRoot.isArchive()) { status.setError(DialogFieldResources.getInstance() .getString("SourceFolderButtonDialogField.error.ContainerIsBinary", str)); //$NON-NLS-1$ return status; } } return status; } status.setError(DialogFieldResources.getInstance() .getString("SourceFolderButtonDialogField.error.NotAFolder", str)); //$NON-NLS-1$ return status; } status.setError(DialogFieldResources.getInstance() .getString("SourceFolderButtonDialogField.error.ContainerDoesNotExist", str)); //$NON-NLS-1$ return status; }
From source file:org.eclipse.jst.jsp.ui.tests.contentassist.BeanInfoProviderTest.java
License:Open Source License
private void openPath(IJavaProject javaProj) { try {// w ww .j av a2 s . c o m if (javaProj.exists() && !javaProj.isOpen()) { javaProj.open(null); } IPackageFragmentRoot root = javaProj.getPackageFragmentRoot(fResource.getProject()); if (!root.isOpen()) root.open(null); IPackageFragment frag = getPackageFragment(root, "BEAN_TESTS"); openAll(frag); frag = getPackageFragment(root, "org"); if (frag != null && !frag.isOpen()) openAll(frag); frag = getPackageFragment(root, "org.eclipse"); if (frag != null && !frag.isOpen()) openAll(frag); frag = getPackageFragment(root, "org.eclipse.jst"); if (frag != null && !frag.isOpen()) openAll(frag); frag = getPackageFragment(root, "org.eclipse.jst.jsp"); if (frag != null && !frag.isOpen()) openAll(frag); frag = getPackageFragment(root, "org.eclipse.jst.jsp.ui"); if (frag != null && !frag.isOpen()) openAll(frag); frag = getPackageFragment(root, "org.eclipse.jst.jsp.ui.tests"); if (frag != null && !frag.isOpen()) openAll(frag); } catch (JavaModelException e) { e.printStackTrace(); } }