@Override public WebApplication clone() { WebApplicationImpl wa = new WebApplicationImpl(); wa.initiate(resourceConfig, provider); return wa; }
@Override public void initiate(ResourceConfig resourceConfig) { initiate(resourceConfig, null); }
@Override public List<PathSegment> getPathSegments(String name) { return getPathSegments(name, true); }
public WebApplicationContext(WebApplicationImpl app, ContainerRequest request, ContainerResponse response) { this.app = app; this.isTraceEnabled = app.isTracingEnabled(); this.request = request; this.response = response; this.responseFilters = Collections.EMPTY_LIST; if (isTracingEnabled()) { getProperties().put(TraceInformation.class.getName(), new TraceInformation(this)); } }
private WebApplicationContext handleMatchResourceRequest(URI u) { final WebApplicationContext oldContext = (WebApplicationContext)context.get(); final WebApplicationContext newContext = oldContext.createMatchResourceContext(u); context.set(newContext); try { _handleRequest(newContext, newContext.getContainerRequest()); return newContext; } finally { context.set(oldContext); } }
@Override public void handleRequest(ContainerRequest request, ContainerResponse response) throws IOException { final WebApplicationContext localContext = new WebApplicationContext(this, request, response); context.set(localContext); try { _handleRequest(localContext, request, response); } finally { PerRequestFactory.destroy(localContext); closeableFactory.close(localContext); context.set(null); } }
/* package */ void initiateResource(Class c) { getUriRules(c); getOrCreateResourceComponentProvider(c, true); }
public void init(ProviderServices providerServices) { for (ExceptionMapper em : providerServices.getProviders(ExceptionMapper.class)) { Class<? extends Throwable> c = getExceptionType(em.getClass()); if (c != null) { emts.add(new ExceptionMapperType(em, c)); } } }
public WebApplication createWebApplication() throws ContainerException { return new WebApplicationImpl(); }
@Override public UriRules<UriRule> getRules(Class resourceClass) { return app.getUriRules(resourceClass); }
@Override public MultivaluedMap<String, String> getPathParameters() { return getPathParameters(true); }
public ApplicationHolder getApplication(ProviderFactory pf) { return new ApplicationHolder(pf); }
@Override public List<String> getMatchedURIs() { return getMatchedURIs(true); }
public ExceptionMapper find(Class<? extends Throwable> c) { int distance = Integer.MAX_VALUE; ExceptionMapper selectedEm = null; for (ExceptionMapperType emt : emts) { int d = distance(c, emt.c); if (d < distance) { distance = d; selectedEm = emt.em; if (distance == 0) break; } } return selectedEm; }
/* package */ ResourceComponentProvider getResourceComponentProvider(final Class c) { return getOrCreateResourceComponentProvider(c, false); }
@SuppressWarnings("unchecked") private Class<? extends Throwable> getExceptionType(Class<? extends ExceptionMapper> c) { Class<?> t = getType(c); if (Throwable.class.isAssignableFrom(t)) return (Class<? extends Throwable>)t; // TODO log warning return null; }
@Override public void trace(String message) { if (!isTracingEnabled()) return; request.trace(message); }
@Override public Object getResource(Class resourceClass) { return app.getResourceComponentProvider(resourceClass).getInstance(this); }
@Override public void handleRequest(ContainerRequest request, ContainerResponseWriter responseWriter) throws IOException { final ContainerResponse response = new ContainerResponse( this, request, responseWriter); handleRequest(request, response); }
/* package */ void initiateResource(AbstractResource ar) { initiateResource(ar.getResourceClass()); }