Search in sources :

Example 1 with ResourceMethod

use of org.jboss.resteasy.spi.metadata.ResourceMethod in project wildfly by wildfly.

the class DeploymentRestResourcesDefintion method resLocatorDescription.

private JaxrsResourceLocatorDescription resLocatorDescription(ResourceClass resClass, String contextPath, String mapping, Collection<String> servletMappings, List<Class<?>> resolvedCls) {
    JaxrsResourceLocatorDescription locatorRes = new JaxrsResourceLocatorDescription();
    locatorRes.resourceClass = resClass.getClazz();
    resolvedCls.add(resClass.getClazz());
    for (ResourceMethod resMethod : resClass.getResourceMethods()) {
        JaxrsResourceMethodDescription jaxrsRes = new JaxrsResourceMethodDescription();
        jaxrsRes.consumeTypes = resMethod.getConsumes();
        jaxrsRes.contextPath = contextPath;
        jaxrsRes.httpMethods = resMethod.getHttpMethods();
        jaxrsRes.method = resMethod.getMethod();
        jaxrsRes.produceTypes = resMethod.getProduces();
        jaxrsRes.resourceClass = resClass.getClazz();
        String resPath = new StringBuilder(mapping).append("/").append(resMethod.getFullpath()).toString().replace("//", "/");
        jaxrsRes.resourcePath = resPath;
        jaxrsRes.servletMappings = servletMappings;
        addMethodParameters(jaxrsRes, resMethod.getMethod());
        locatorRes.methodsDescriptions.add(jaxrsRes);
    }
    for (ResourceLocator resLocator : resClass.getResourceLocators()) {
        Class<?> clz = resLocator.getReturnType();
        if (clz.equals(resClass.getClazz())) {
            break;
        }
        if (resolvedCls.contains(clz)) {
            break;
        } else {
            resolvedCls.add(clz);
        }
        ResourceClass subResClass = ResourceBuilder.locatorFromAnnotations(clz);
        String subMapping = new StringBuilder(mapping).append("/").append(resLocator.getFullpath()).toString().replace("//", "/");
        JaxrsResourceLocatorDescription inner = resLocatorDescription(subResClass, contextPath, subMapping, servletMappings, resolvedCls);
        if (inner.containsMethodResources()) {
            locatorRes.subLocatorDescriptions.add(inner);
        }
    }
    return locatorRes;
}
Also used : ResourceMethod(org.jboss.resteasy.spi.metadata.ResourceMethod) ResourceClass(org.jboss.resteasy.spi.metadata.ResourceClass) ResourceLocator(org.jboss.resteasy.spi.metadata.ResourceLocator)

Aggregations

ResourceClass (org.jboss.resteasy.spi.metadata.ResourceClass)1 ResourceLocator (org.jboss.resteasy.spi.metadata.ResourceLocator)1 ResourceMethod (org.jboss.resteasy.spi.metadata.ResourceMethod)1