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

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

Introduction

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

Prototype

IPackageFragment getPackageFragment(String packageName);

Source Link

Document

Returns the package fragment with the given package name.

Usage

From source file:org.eclipse.xtext.ui.tests.editor.model.JavaClassPathResourceForIEditorInputFactoryTest.java

License:Open Source License

@Test
public void testBug463258_02() throws Exception {
    IJavaProject project = createJavaProject("foo");
    IFile file = project.getProject().getFile("foo.jar");
    file.create(jarInputStream(new TextFile("do/not", "care")), true, monitor());
    addJarToClasspath(project, file);/*from ww  w. jav a 2  s. com*/

    IPackageFragmentRoot root = project.getPackageFragmentRoot(file);
    IPackageFragment foo = root.getPackageFragment("unknown");
    JarEntryFile fileInJar = new JarEntryFile("doesNotExist.testlanguage");
    fileInJar.setParent(foo);

    XtextReadonlyEditorInput editorInput = new XtextReadonlyEditorInput(fileInJar);
    Resource resource = factory.createResource(editorInput);
    assertNotNull(resource);
    try {
        resource.load(null);
    } catch (IOException e) {
        // expected
    }
}

From source file:org.eclipse.xtext.ui.tests.editor.model.JavaClassPathResourceForIEditorInputFactoryTest.java

License:Open Source License

@Test
public void testBug463258_03a() throws Exception {
    IJavaProject project = createJavaProject("foo");
    IFile file = project.getProject().getFile("foo.jar");
    file.create(jarInputStream(new TextFile("foo/bar.testlanguage", "//empty")), true, monitor());
    addJarToClasspath(project, file);//from ww  w  .  j  a  v  a2  s .co  m

    IPackageFragmentRoot root = project.getPackageFragmentRoot(file);
    IPackageFragment foo = root.getPackageFragment("foo");
    JarEntryFile fileInJar = new JarEntryFile("bar.testlanguage");
    fileInJar.setParent(foo);

    File jarFile = file.getRawLocation().toFile();
    assertTrue("exists", jarFile.exists());
    assertTrue("delete", jarFile.delete());

    XtextReadonlyEditorInput editorInput = new XtextReadonlyEditorInput(fileInJar);
    Resource resource = factory.createResource(editorInput);
    assertNotNull(resource);
    try {
        resource.load(null);
    } catch (IOException e) {
        // expected
    }
}

From source file:org.eclipse.xtext.ui.tests.editor.model.JavaClassPathResourceForIEditorInputFactoryTest.java

License:Open Source License

@Test(expected = CoreException.class)
public void testBug463258_03b() throws Throwable {
    IJavaProject project = createJavaProject("foo");
    IFile file = project.getProject().getFile("foo.jar");
    file.create(jarInputStream(new TextFile("foo/bar.testlanguage", "//empty")), true, monitor());

    IPackageFragmentRoot root = new JarPackageFragmentRoot(file, (JavaProject) project) {
    };/*from w  w w.ja v a  2  s .c  o  m*/
    IPackageFragment foo = root.getPackageFragment("foo");
    JarEntryFile fileInJar = new JarEntryFile("bar.testlanguage");
    fileInJar.setParent(foo);

    File jarFile = file.getLocation().toFile();
    assertTrue("exists", jarFile.exists());
    assertTrue("delete", jarFile.delete());

    XtextReadonlyEditorInput editorInput = new XtextReadonlyEditorInput(fileInJar);
    try {
        factory.createResource(editorInput);
    } catch (WrappedException e) {
        throw e.getCause();
    }
}

From source file:org.eclipse.xtext.ui.tests.editor.model.JavaClassPathResourceForIEditorInputFactoryTest.java

License:Open Source License

@Test(expected = CoreException.class)
public void testBug463258_03c() throws Throwable {
    IJavaProject project = createJavaProject("foo");
    IFile file = project.getProject().getFile("foo.jar");
    file.create(jarInputStream(new TextFile("foo/bar.testlanguage", "//empty")), true, monitor());
    addJarToClasspath(project, file);//ww w .j  av  a2s  . c  om

    IPackageFragmentRoot root = new JarPackageFragmentRoot(file, (JavaProject) project) {
    };
    IPackageFragment foo = root.getPackageFragment("foo");
    JarEntryFile fileInJar = new JarEntryFile("bar.testlanguage");
    fileInJar.setParent(foo);

    File jarFile = file.getLocation().toFile();
    assertTrue("exists", jarFile.exists());
    assertTrue("delete", jarFile.delete());
    // simulate an automated refresh
    file.refreshLocal(IResource.DEPTH_ONE, null);
    XtextReadonlyEditorInput editorInput = new XtextReadonlyEditorInput(fileInJar);
    try {
        factory.createResource(editorInput);
    } catch (WrappedException e) {
        throw e.getCause();
    }
}

From source file:org.eclipse.xtext.ui.tests.editor.model.JavaClassPathResourceForIEditorInputFactoryTest.java

License:Open Source License

@Test(expected = CoreException.class)
public void testBug463258_04() throws Throwable {
    IFolder externalFolder = createExternalFolder("externalFolder");
    IJavaProject project = createJavaProject("foo");

    addExternalFolderToClasspath(project, externalFolder);

    IPackageFragmentRoot root = project.getPackageFragmentRoot(externalFolder);
    IPackageFragment foo = root.getPackageFragment("foo");
    NonJavaResource fileInFolder = new NonJavaResource(foo,
            externalFolder.getFile("foo/doesNotExist.testlanguage"));

    externalFolder.delete(true, null);/*from www .j  a v  a 2  s . c om*/
    XtextReadonlyEditorInput editorInput = new XtextReadonlyEditorInput(fileInFolder);
    try {
        factory.createResource(editorInput);
    } catch (WrappedException e) {
        throw e.getCause();
    }
}

From source file:org.eclipse.xtext.ui.tests.editor.model.JavaClassPathResourceForIEditorInputFactoryTest.java

License:Open Source License

@Test(expected = CoreException.class)
public void testBug463258_05() throws Throwable {
    IJavaProject project = createJavaProject("foo");
    IPackageFragmentRoot root = project.getPackageFragmentRoot("does/not/exist.jar");
    IPackageFragment foo = root.getPackageFragment("foo");
    final JarEntryFile fileInJar = new JarEntryFile("bar.testlanguage");
    fileInJar.setParent(foo);/*w w  w . j  a v  a 2 s.co  m*/
    XtextReadonlyEditorInput editorInput = new XtextReadonlyEditorInput(fileInJar);
    try {
        factory.createResource(editorInput);
    } catch (WrappedException e) {
        throw e.getCause();
    }
}

From source file:org.eclipse.xtext.ui.util.JdtClasspathUriResolver.java

License:Open Source License

protected URI findResourceInWorkspace(IJavaProject javaProject, URI classpathUri) throws CoreException {
    if (javaProject.exists()) {
        String packagePath = classpathUri.trimSegments(1).path();
        String fullPath = classpathUri.path();
        String fileName = classpathUri.lastSegment();
        IPath filePath = new Path(fileName);
        String packageName = isEmpty(packagePath) ? "" : packagePath.substring(1).replace('/', '.');
        for (IPackageFragmentRoot packageFragmentRoot : javaProject.getAllPackageFragmentRoots()) {
            IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(packageName);
            if (packageFragment.exists()) {
                IResource packageFragmentResource = packageFragment.getResource();
                if (packageFragmentResource instanceof IContainer) {
                    IFile file = ((IContainer) packageFragmentResource).getFile(filePath);
                    if (file.exists())
                        return createPlatformResourceURI(file);
                } else { // jar file or external class folder
                    if (packageFragmentRoot.isArchive()) { // jar file
                        Object[] nonJavaResources = getNonJavaResources(packageFragmentRoot, packageFragment);
                        for (Object nonJavaResource : nonJavaResources) {
                            IJarEntryResource jarEntryResource = (IJarEntryResource) nonJavaResource;
                            if (fullPath.equals(jarEntryResource.getFullPath().toString())) {
                                IResource packageFragmentRootResource = packageFragmentRoot.getResource();
                                if (packageFragmentRootResource != null) { // we have a resource - use nested platform/resource
                                    URI packageFragmentRootURI = createPlatformResourceURI(
                                            packageFragmentRootResource);
                                    URI result = createArchiveURI(packageFragmentRootURI, fullPath);
                                    return result;
                                } else {
                                    // no resource - use file uri
                                    IPath packageFragmentRootPath = packageFragmentRoot.getPath();
                                    URI packageFragmentRootURI = URI
                                            .createFileURI(packageFragmentRootPath.toString());
                                    URI result = createArchiveURI(packageFragmentRootURI, fullPath);
                                    return result;
                                }// w  w w  .  java2  s  . c  o m
                            }
                        }
                    } else if (packageFragmentRoot.isExternal()) { // external class folder
                        Object[] nonJavaResources = getNonJavaResources(packageFragmentRoot, packageFragment);
                        for (Object nonJavaResource : nonJavaResources) {
                            IJarEntryResource jarEntryResource = (IJarEntryResource) nonJavaResource;
                            if (fileName.equals(jarEntryResource.getName())) {
                                IResource packageFragmentRootResource = ((ExternalPackageFragmentRoot) packageFragmentRoot)
                                        .resource();
                                IPath absolutePath = packageFragmentRootResource.getFullPath();
                                absolutePath = absolutePath.append(fullPath);
                                return createPlatformResourceURI(absolutePath);
                            }
                        }
                    }
                }
            }
        }
        // not found in a source folder - look for a resource relative to project root
        // of this project or one of its dependencies
        URI result = findResourceInProjectRoot(javaProject, classpathUri.path(), Sets.<String>newHashSet());
        if (result != null) {
            return result;
        }
    }
    return classpathUri;
}

From source file:org.eclipse.xtext.xbase.ui.quickfix.CreateJavaTypeQuickfixes.java

License:Open Source License

protected void setPackageName(NewTypeWizardPage page, URI contextUri, String packageName) {
    IJavaProject javaProject = getJavaProject(contextUri);
    String path = contextUri.trimSegments(1).toPlatformString(true);
    try {//ww  w .j  ava2s.com
        if (javaProject != null) {
            IPackageFragment contextPackageFragment = javaProject.findPackageFragment(new Path(path));
            IPackageFragmentRoot root = (IPackageFragmentRoot) contextPackageFragment
                    .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
            IPackageFragment packageFragment;
            if (!isEmpty(packageName)) {
                packageFragment = root.getPackageFragment(packageName);
            } else {
                packageFragment = contextPackageFragment;
            }
            page.setPackageFragment(packageFragment, true);
            page.setPackageFragmentRoot(root, true);
        }
    } catch (JavaModelException e) {
        LOG.error("Could not find package for " + path, e);
    }
}

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

License:Open Source License

private ProjectAwareUniqueClassNameValidator.SourceTraversal doCheckUniqueInProjectSource(
        final String packageName, final String typeName, final JvmDeclaredType type,
        final IPackageFragmentRoot[] sourceFolders) throws JavaModelException {
    final IndexManager indexManager = JavaModelManager.getIndexManager();
    for (final IPackageFragmentRoot sourceFolder : sourceFolders) {
        int _awaitingJobsCount = indexManager.awaitingJobsCount();
        boolean _greaterThan = (_awaitingJobsCount > 0);
        if (_greaterThan) {
            boolean _isDerived = this.isDerived(sourceFolder.getResource());
            boolean _not = (!_isDerived);
            if (_not) {
                IPackageFragment packageFragment = sourceFolder.getPackageFragment(packageName);
                boolean _exists = packageFragment.exists();
                if (_exists) {
                    ICompilationUnit[] units = packageFragment.getCompilationUnits();
                    for (final ICompilationUnit unit : units) {
                        {/*from   w ww. jav a 2  s.co  m*/
                            final IResource resource = unit.getResource();
                            boolean _isDerived_1 = this.isDerived(resource);
                            boolean _not_1 = (!_isDerived_1);
                            if (_not_1) {
                                IType javaType = unit.getType(typeName);
                                boolean _exists_1 = javaType.exists();
                                if (_exists_1) {
                                    this.addIssue(type, unit.getElementName());
                                    return ProjectAwareUniqueClassNameValidator.SourceTraversal.DUPLICATE;
                                }
                            }
                        }
                    }
                }
            }
        } else {
            return ProjectAwareUniqueClassNameValidator.SourceTraversal.INTERRUPT;
        }
    }
    return ProjectAwareUniqueClassNameValidator.SourceTraversal.UNIQUE;
}

From source file:org.eclipse.zest.dot.internal.ZestBuilder.java

License:Open Source License

private void importToGeneratedSourceFolder(final IFile dotFile) {
    try {//from  www.j a  v a2 s  .co m
        IJavaProject javaProject = JavaCore.create(dotFile.getProject());
        String sourceGenPath = "/" + javaProject.getElementName() + "/" + ZestProjectWizard.SRC_GEN;
        IPackageFragmentRoot packageRoot = javaProject.findPackageFragmentRoot(new Path(sourceGenPath));
        IPackageFragment targetPackage = packageRoot.getPackageFragment(ZestProjectWizard.PACKAGE);
        IResource targetFolder = targetPackage.getCorrespondingResource();
        new DotImport(dotFile).newGraphSubclass((IContainer) targetFolder);
        targetFolder.refreshLocal(1, null);
    } catch (CoreException e) {
        e.printStackTrace();
    }
}