Example usage for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot

List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot.

Prototype

IPackageFragmentRoot getPackageFragmentRoot(IResource resource);

Source Link

Document

Returns a package fragment root for the given resource, which must either be a folder representing the top of a package hierarchy, or a ZIP archive (e.g.

Usage

From source file:org.eclipse.wb.tests.designer.core.model.util.FactoryCreateActionTest.java

License:Open Source License

/**
 * No parameters, use same class.// w  ww  .  j  a v a  2  s  .co  m
 */
public void test_generate_sameFactoryClass() throws Exception {
    // parse
    ContainerInfo panel = parseContainer("public class Test extends JPanel {", "  public Test() {",
            "    JButton button = new JButton('text');", "    button.setSelected(true);",
            "    button.setAutoscrolls(true);", "    add(button);", "  }", "}");
    ComponentInfo button = panel.getChildrenComponents().get(0);
    // do generate
    {
        action = new FactoryCreateAction(button);
        IJavaProject javaProject = m_testProject.getJavaProject();
        IProject project = m_testProject.getProject();
        IPackageFragmentRoot srcFolder = javaProject.getPackageFragmentRoot(project.getFolder("src"));
        IPackageFragment testPackage = srcFolder.getPackageFragment("test");
        ReflectionUtils.setField(action, "m_sourceFolder", srcFolder);
        ReflectionUtils.setField(action, "m_package", testPackage);
        ReflectionUtils.setField(action, "m_className", "Test");
        ReflectionUtils.setField(action, "m_methodName", "createButton");
        // configure creation/invocations
        {
            String errorMessage;
            errorMessage = generate_configureInvocations(button, new int[] {}, new String[] {}, new int[][] {});
            assertNull(errorMessage);
        }
        // generate factory
        ReflectionUtils.invokeMethod2(action, "generate", boolean.class, true);
    }
    m_getSource_ignoreSpacesCheck = true;
    assertEditor("public class Test extends JPanel {", "  public Test() {",
            "    JButton button = createButton();", "    button.setSelected(true);",
            "    button.setAutoscrolls(true);", "    add(button);", "  }", "  /**", "   * @wbp.factory",
            "   */", "  public static JButton createButton() {", "    JButton button = new JButton('text');",
            "    return button;", "  }", "}");
}

From source file:org.eclipse.wb.tests.designer.core.model.util.FactoryCreateActionTest.java

License:Open Source License

/**
 * Configures {@link #action} with default package/class/method.
 *//*  ww  w . j av  a 2s.co  m*/
private void generate_configureDefaultTarget() throws Exception {
    IJavaProject javaProject = m_testProject.getJavaProject();
    IProject project = m_testProject.getProject();
    IPackageFragmentRoot srcFolder = javaProject.getPackageFragmentRoot(project.getFolder("src"));
    IPackageFragment testPackage = srcFolder.getPackageFragment("test");
    ReflectionUtils.setField(action, "m_sourceFolder", srcFolder);
    ReflectionUtils.setField(action, "m_package", testPackage);
    ReflectionUtils.setField(action, "m_className", "StaticFactory");
    ReflectionUtils.setField(action, "m_methodName", "createComponent");
}

From source file:org.eclipse.xtext.ui.containers.JavaProjectsStateHelper.java

License:Open Source License

protected IPackageFragmentRoot getJarWithEntry(URI uri) {
    Iterable<Pair<IStorage, IProject>> storages = getStorages(uri);
    IPackageFragmentRoot result = null;/*from  w  w w  .jav a 2 s  .  c o  m*/
    for (Pair<IStorage, IProject> storage2Project : storages) {
        IStorage storage = storage2Project.getFirst();
        if (storage instanceof IJarEntryResource) {
            IPackageFragmentRoot fragmentRoot = ((IJarEntryResource) storage).getPackageFragmentRoot();
            if (fragmentRoot != null) {
                // IPackageFragmentRoot has some unexpected caching - it may return a different project
                // thus we use the one that was used to record the IPackageFragmentRoot
                IProject actualProject = storage2Project.getSecond();
                IJavaProject javaProject = JavaCore.create(actualProject);
                if (!javaProject.exists()) {
                    javaProject = fragmentRoot.getJavaProject();
                }
                if (isAccessibleXtextProject(javaProject.getProject())) {
                    // if both projects are the same - fine
                    if (javaProject.equals(fragmentRoot.getJavaProject()))
                        return fragmentRoot;
                    // otherwise re-obtain the fragment root from the real project
                    if (fragmentRoot.isExternal()) {
                        IPackageFragmentRoot actualRoot = javaProject
                                .getPackageFragmentRoot(fragmentRoot.getPath().toString());
                        if (actualProject.exists()) {
                            return actualRoot;
                        }
                    } else {
                        IPackageFragmentRoot actualRoot = javaProject
                                .getPackageFragmentRoot(fragmentRoot.getResource());
                        if (actualRoot.exists()) {
                            return actualRoot;
                        }
                    }
                    result = fragmentRoot;
                }
                if (result == null)
                    result = fragmentRoot;
            }
        }
    }
    return result;
}

From source file:org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJdtImplTest.java

License:Open Source License

@Flaky
@Test// ww w. jav  a  2s  .c o  m
public void testBug463258_01() throws Exception {
    IJavaProject project = createJavaProject("foo");
    IFile file = project.getProject().getFile("foo.jar");
    file.create(jarInputStream(new TextFile("foo/bar.notindexed", "//empty")), true, monitor());
    addJarToClasspath(project, file);

    Storage2UriMapperJavaImpl impl = getStorage2UriMapper();
    IPackageFragmentRoot root = project.getPackageFragmentRoot(file);
    IPackageFragment foo = root.getPackageFragment("foo");
    JarEntryFile fileInJar = new JarEntryFile("bar.notindexed");
    fileInJar.setParent(foo);

    URI uri = impl.getUri(fileInJar);
    assertEquals("archive:platform:/resource/foo/foo.jar!/foo/bar.notindexed", uri.toString());

    InputStream stream = new ResourceSetImpl().getURIConverter().createInputStream(uri);
    byte[] bytes = ByteStreams.toByteArray(stream);
    assertEquals("//empty", new String(bytes));
}

From source file:org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJdtImplTest.java

License:Open Source License

@Flaky
@Test/*from  w  w w.  j a  va 2  s  . c o m*/
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);

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

    URI uri = impl.getUri(fileInJar);
    assertEquals("archive:platform:/resource/foo/foo.jar!/unknown/doesNotExist.notindexed", uri.toString());
}

From source file:org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJdtImplTest.java

License:Open Source License

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

    Storage2UriMapperJavaImpl impl = getStorage2UriMapper();
    IPackageFragmentRoot root = project.getPackageFragmentRoot(file);
    IPackageFragment foo = root.getPackageFragment("foo");
    JarEntryFile fileInJar = new JarEntryFile("bar.notindexed");
    fileInJar.setParent(foo);

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

    URI uri = impl.getUri(fileInJar);
    assertEquals("archive:platform:/resource/foo/foo.jar!/foo/bar.notindexed", uri.toString());
}

From source file:org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJdtImplTest.java

License:Open Source License

@Flaky
@Test//from  ww w. ja  v  a2  s. c  o  m
public void testBug463258_04() throws Exception {
    IFolder externalFolder = createExternalFolder("externalFolder");
    IJavaProject project = createJavaProject("foo");

    addExternalFolderToClasspath(project, externalFolder);

    Storage2UriMapperJavaImpl impl = getStorage2UriMapper();
    IPackageFragmentRoot root = project.getPackageFragmentRoot(externalFolder);
    IPackageFragment foo = root.getPackageFragment("foo");
    NonJavaResource fileInFolder = new NonJavaResource(foo, externalFolder.getFile("foo/does.notexist"));

    externalFolder.delete(true, null);
    URI uri = impl.getUri(fileInFolder);
    assertNull(uri);
}

From source file:org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJdtImplTest.java

License:Open Source License

@Test
public void testBug463258_05() throws Exception {
    IJavaProject project = createJavaProject("foo");
    final Storage2UriMapperJavaImpl impl = getStorage2UriMapper();
    IPackageFragmentRoot root = project.getPackageFragmentRoot("does/not/exist.jar");
    IPackageFragment foo = root.getPackageFragment("foo");
    final JarEntryFile fileInJar = new JarEntryFile("bar.notindexed");
    fileInJar.setParent(foo);//from w ww. java  2  s  .  c o m
    LoggingTester.captureLogging(Level.ERROR, Storage2UriMapperJavaImpl.class, new Runnable() {
        @Override
        public void run() {
            URI uri = impl.getUri(fileInJar);
            assertNull(uri);
        }
    }).assertNoLogEntries();
}

From source file:org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJdtImplTest.java

License:Open Source License

@Flaky
@Test/*w w  w  .java 2 s.c  o m*/
public void testResourceInJar() throws Exception {
    IJavaProject project = createJavaProject("foo");
    IFile file = project.getProject().getFile("foo.jar");
    file.create(jarInputStream(new TextFile("foo/bar.indexed", "//empty"),
            new TextFile("foo/bar.notIndexed", "//empty")), true, monitor());
    addJarToClasspath(project, file);

    Storage2UriMapperJavaImpl impl = getStorage2UriMapper();

    IPackageFragmentRoot root = project.getPackageFragmentRoot(file);
    Map<URI, IStorage> rootData = impl.getAllEntries(root);
    assertEquals(1, rootData.size());
    assertEquals("archive:platform:/resource/foo/foo.jar!/foo/bar.indexed",
            rootData.keySet().iterator().next().toString());
    file.setContents(jarInputStream(new TextFile("foo/bar.notindexed", "//empty"),
            new TextFile("foo/bar.notIndexed", "//empty")), IResource.FORCE, monitor());
    rootData = impl.getAllEntries(root);
    assertTrue(rootData.isEmpty());
}

From source file:org.eclipse.xtext.ui.tests.core.resource.Storage2UriMapperJdtImplTest.java

License:Open Source License

@Flaky
@Test//from   www .  j  ava2  s.  co m
public void testJaredBundle() throws Exception {
    IJavaProject project = createJavaProject("foo");
    IFile file = project.getProject().getFile("foo.jar");
    file.create(jarInputStream(new TextFile("foo/bar.indexed", "//empty"),
            new TextFile("foo/bar.notIndexed", "//empty"),
            new TextFile("META-INF/MANIFEST.MF", "Manifest-Version: 1.0\nBundle-SymbolicName: hubba.bubba\n")),
            true, monitor());
    addJarToClasspath(project, file);

    Storage2UriMapperJavaImpl impl = getStorage2UriMapper();

    IPackageFragmentRoot root = project.getPackageFragmentRoot(file);
    Map<URI, IStorage> rootData = impl.getAllEntries(root);
    assertEquals(1, rootData.size());
    assertEquals("platform:/resource/hubba.bubba/foo/bar.indexed",
            rootData.keySet().iterator().next().toString());

    // let's change the bundle name
    file.setContents(
            jarInputStream(new TextFile("foo/bar.indexed", "//empty"),
                    new TextFile("foo/bar.notIndexed", "//empty"),
                    new TextFile("META-INF/MANIFEST.MF",
                            "Manifest-Version: 1.0\nBundle-SymbolicName: other.bundle.name;singleton:=true\n")),
            IResource.FORCE, monitor());
    rootData = impl.getAllEntries(root);
    assertEquals(1, rootData.size());
    assertEquals("platform:/resource/other.bundle.name/foo/bar.indexed",
            rootData.keySet().iterator().next().toString());
}