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

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

Introduction

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

Prototype

IResource getResource();

Source Link

Document

Returns the innermost resource enclosing this element.

Usage

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessorTestCase.java

License:Open Source License

@Test
public void shouldAddHttpMethodsAndResourcesWhenAddingSourceFolderWithExistingMetamodel() throws CoreException {
    // pre-conditions
    // operation//from w w w.  ja v  a  2 s .com
    final IPackageFragmentRoot sourceFolder = WorkbenchUtils.getPackageFragmentRoot(javaProject,
            "src/main/java", progressMonitor);
    final ResourceDelta event = createEvent(sourceFolder.getResource(), ADDED);
    final JaxrsMetamodelDelta affectedMetamodel = processor.processAffectedResources(project, false,
            Arrays.asList(event), progressMonitor);
    // verifications
    assertThat(affectedMetamodel.getDeltaKind(), equalTo(CHANGED));
    assertThat(affectedMetamodel.getMetamodel(), equalTo((IJaxrsMetamodel) metamodel));
    final List<JaxrsElementDelta> affectedElements = affectedMetamodel.getAffectedElements();
    // 1 application + 1 HttpMethod + 7 Resources
    assertThat(affectedElements.size(), equalTo(9));
    assertThat(affectedElements,
            everyItem(Matchers.<JaxrsElementDelta>hasProperty("deltaKind", equalTo(ADDED))));
    // all HttpMethods, Resources, ResourceMethods and ResourceFields. only application is available: the java-based
    // one found in src/main/java
    assertThat(metamodel.getElements(javaProject).size(), equalTo(35));
}

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessorTestCase.java

License:Open Source License

@Test
public void shouldAddHttpMethodsAndResourcesWhenAddingSourceFolderWithExistingMetamodelWithReset()
        throws CoreException {
    // pre-conditions
    // operation//from  w w w .  jav a  2  s. c  om
    final IPackageFragmentRoot sourceFolder = WorkbenchUtils.getPackageFragmentRoot(javaProject,
            "src/main/java", progressMonitor);
    final ResourceDelta event = createEvent(sourceFolder.getResource(), ADDED);
    final JaxrsMetamodelDelta affectedMetamodel = processor.processAffectedResources(project, true,
            Arrays.asList(event), progressMonitor);
    // verifications
    assertThat(affectedMetamodel.getDeltaKind(), equalTo(CHANGED));
    metamodel = (JaxrsMetamodel) affectedMetamodel.getMetamodel();
    assertThat(metamodel, equalTo((IJaxrsMetamodel) metamodel));
    final List<JaxrsElementDelta> affectedElements = affectedMetamodel.getAffectedElements();
    // 1 application + 1 HttpMethod + 7 Resources
    assertThat(affectedElements.size(), equalTo(9));
    assertThat(affectedElements,
            everyItem(Matchers.<JaxrsElementDelta>hasProperty("deltaKind", equalTo(ADDED))));
    // all project-specific Applications, HttpMethods, Resources, ResourceMethods and ResourceFields (built-in
    // HttpMethods are not bound to a project)
    // 2 applications are available: the java-based and the web.xml since a full build was performed
    assertThat(metamodel.getElements(javaProject).size(), equalTo(36));
}

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessorTestCase.java

License:Open Source License

/**
 * Because sometimes, generics are painful...
 * /*from  w ww  .  j a  v a  2 s . c  o  m*/
 * @param elements
 * @return private List<IJaxrsElement<?>> asList(IJaxrsElement<?>... elements) { final List<IJaxrsElement<?>> result
 *         = new ArrayList<IJaxrsElement<?>>(); result.addAll(Arrays.asList(elements)); return result; }
 */

@Test
public void shouldAddHttpMethodsAndResourcesWhenAddingSourceFolderWithoutExistingMetamodel()
        throws CoreException {
    // pre-conditions
    // remove the metamodel
    this.metamodel.remove();
    this.metamodel = null;
    // operation
    final IPackageFragmentRoot sourceFolder = WorkbenchUtils.getPackageFragmentRoot(javaProject,
            "src/main/java", progressMonitor);
    final ResourceDelta event = createEvent(sourceFolder.getResource(), ADDED);
    final JaxrsMetamodelDelta affectedMetamodel = processor.processAffectedResources(project, false,
            Arrays.asList(event), progressMonitor);
    // verifications
    // 1 application + 1 HttpMethod + 3 RootResources + 2 Subresources
    assertThat(affectedMetamodel.getDeltaKind(), equalTo(ADDED));
    metamodel = (JaxrsMetamodel) affectedMetamodel.getMetamodel();
    assertThat(metamodel, notNullValue());
    final List<JaxrsElementDelta> affectedElements = affectedMetamodel.getAffectedElements();
    assertThat(affectedElements.size(), equalTo(9));
    // all Applications, HttpMethods, Resources, ResourceMethods and ResourceFields specific to the project
    assertThat(metamodel.getElements(javaProject).size(), equalTo(36));

}

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessorTestCase.java

License:Open Source License

@Test
public void shouldNotAddAnythingAddingBinaryLib() throws CoreException {
    // pre-conditions
    final IPackageFragmentRoot lib = WorkbenchUtils.getPackageFragmentRoot(javaProject,
            "lib/jaxrs-api-2.0.1.GA.jar", progressMonitor);
    // operation/*from   w ww. java 2s  .  c  o  m*/
    final ResourceDelta event = createEvent(lib.getResource(), ADDED);
    final List<JaxrsElementDelta> affectedElements = processResourceChanges(event, progressMonitor);
    // verifications: jar should not be taken into account, even if if it contains matching elements...
    assertThat(affectedElements.size(), equalTo(0));
}

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessorTestCase.java

License:Open Source License

@Test
public void shouldRemoveJavaApplicationWhenRemovingSourceFolder() throws CoreException {
    // pre-conditions
    final IType type = JdtUtils.resolveType("org.jboss.tools.ws.jaxrs.sample.services.RestApplication",
            javaProject, progressMonitor);
    final JaxrsJavaApplication application = createJavaApplication(type);
    metamodel.add(application);/*from   w w  w. j a  v a  2s .c  om*/
    final IPackageFragmentRoot sourceFolder = WorkbenchUtils.getPackageFragmentRoot(javaProject,
            "src/main/java", progressMonitor);
    // operation
    final ResourceDelta event = createEvent(sourceFolder.getResource(), REMOVED);
    final List<JaxrsElementDelta> affectedElements = processResourceChanges(event, progressMonitor);
    // verifications
    assertThat(affectedElements.size(), equalTo(1));
    assertThat(affectedElements.get(0).getElement().getElementCategory(),
            equalTo(EnumElementCategory.APPLICATION));
    assertThat(affectedElements.get(0).getElement(), is(notNullValue()));
    assertThat(affectedElements.get(0).getDeltaKind(), equalTo(REMOVED));
    assertThat(metamodel.getElements(javaProject).size(), equalTo(0));
}

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessorTestCase.java

License:Open Source License

@Test
public void shouldNotRemoveHttpMethodWhenRemovingBinaryLib() throws CoreException {
    // pre-conditions
    final IPackageFragmentRoot lib = WorkbenchUtils.getPackageFragmentRoot(javaProject,
            "lib/jaxrs-api-2.0.1.GA.jar", progressMonitor);
    // let's suppose that this jar only contains 1 HTTP Methods ;-)
    final IType type = JdtUtils.resolveType("javax.ws.rs.GET", javaProject, progressMonitor);
    final Annotation annotation = resolveAnnotation(type, HTTP_METHOD.qualifiedName);
    final JaxrsHttpMethod httpMethod = new JaxrsHttpMethod.Builder(type, metamodel).httpMethod(annotation)
            .build();/*from   www .j a  v  a 2s .  co  m*/
    metamodel.add(httpMethod);
    // operation
    final ResourceDelta event = createEvent(lib.getResource(), REMOVED);
    final List<JaxrsElementDelta> affectedElements = processResourceChanges(event, progressMonitor);
    // verifications
    assertThat(affectedElements.size(), equalTo(0));
}

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessorTestCase.java

License:Open Source License

@Test
public void shouldRemoveHttpMethodWhenRemovingSourceFolder() throws CoreException {
    // pre-conditions
    final IType type = JdtUtils.resolveType("org.jboss.tools.ws.jaxrs.sample.services.FOO", javaProject,
            progressMonitor);/*  w ww  .  j a v a  2 s  .  co m*/
    final Annotation annotation = resolveAnnotation(type, HTTP_METHOD.qualifiedName);
    final JaxrsHttpMethod httpMethod = new JaxrsHttpMethod.Builder(type, metamodel).httpMethod(annotation)
            .build();
    metamodel.add(httpMethod);
    final IPackageFragmentRoot sourceFolder = WorkbenchUtils.getPackageFragmentRoot(javaProject,
            "src/main/java", progressMonitor);
    // operation
    final ResourceDelta event = createEvent(sourceFolder.getResource(), REMOVED);
    final List<JaxrsElementDelta> affectedElements = processResourceChanges(event, progressMonitor);
    // verifications
    assertThat(affectedElements.size(), equalTo(1));
    assertThat(affectedElements.get(0).getElement().getElementCategory(),
            equalTo(EnumElementCategory.HTTP_METHOD));
    assertThat(affectedElements.get(0).getElement(), is(notNullValue()));
    assertThat(affectedElements.get(0).getDeltaKind(), equalTo(REMOVED));
    assertThat(metamodel.getElements(javaProject).size(), equalTo(0));
}

From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessorTestCase.java

License:Open Source License

@Test
public void shouldRemoveResourceWhenRemovingSourceFolder() throws CoreException {
    // pre-conditions
    final IPackageFragmentRoot sourceFolder = WorkbenchUtils.getPackageFragmentRoot(javaProject,
            "src/main/java", progressMonitor);
    final IType type = getType("org.jboss.tools.ws.jaxrs.sample.services.CustomerResource", javaProject);
    final Annotation annotation = resolveAnnotation(type, CONSUMES.qualifiedName);
    final JaxrsResource resource = new JaxrsResource.Builder(type, metamodel).pathTemplate(annotation).build();
    metamodel.add(resource);/*  ww w .  j  a  v a  2  s .  c om*/
    // operation
    final ResourceDelta event = createEvent(sourceFolder.getResource(), REMOVED);
    final List<JaxrsElementDelta> affectedElements = processResourceChanges(event, progressMonitor);
    // verifications
    assertThat(affectedElements.size(), equalTo(1));
    assertThat(affectedElements.get(0).getElement().getElementCategory(),
            equalTo(EnumElementCategory.RESOURCE));
    verify(metamodel, times(1)).remove(any(JaxrsResource.class));
    // nothing left
    assertThat(metamodel.getElements(javaProject).size(), equalTo(0));
}

From source file:org.jboss.tools.ws.jaxrs.ui.wizards.JaxrsElementCreationUtils.java

License:Open Source License

/**
 * Retrieves the top-level package in the given {@link IPackageFragmentRoot} of an {@link IJavaProject}, ie, the deepest {@link IPackageFragment} which has no {@link ICompilationUnit} element.
 * @param packageFragmentRoot the base packageFragmentRoot
 * @return the top-level {@link IPackageFragment}
 * @throws CoreException // w  w  w  .  j  ava  2  s  .  co m
 */
public static IPackageFragment getProjectTopLevelPackage(final IPackageFragmentRoot packageFragmentRoot)
        throws CoreException {
    IFolder currentFolder = (IFolder) packageFragmentRoot.getResource();
    while (hasUniqueChildFolder(currentFolder)) {
        currentFolder = (IFolder) currentFolder.members()[0];
    }
    if (currentFolder != null) {
        return (IPackageFragment) packageFragmentRoot.getJavaProject()
                .findPackageFragment(currentFolder.getFullPath());
    }

    return null;
}

From source file:org.jetbrains.kotlin.core.resolve.lang.java.EclipseJavaClassFinder.java

License:Apache License

private static boolean isInKotlinBinFolder(@NotNull IType eclipseType) {
    IFolder kotlinBinFolder = KotlinJavaManager.INSTANCE
            .getKotlinBinFolderFor(eclipseType.getJavaProject().getProject());
    IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) eclipseType.getPackageFragment()
            .getParent();//  w w  w.  j  a  v a  2 s.  co m
    return kotlinBinFolder.equals(packageFragmentRoot.getResource());
}