/** * Inject any {@link org.glassfish.jersey.linking.InjectLink} annotated fields in the supplied entity and * recursively process its fields. * * @param entity the entity object returned by the resource method * @param uriInfo the uriInfo for the request * @param rmc the ResourceMappingContext used for building URIs * @param rlcc the ResourceLinkContributionContext used to find link contributors */ void processLinks(T entity, UriInfo uriInfo, ResourceMappingContext rmc, ResourceLinkContributionContext rlcc) { Set<Object> processed = new HashSet<Object>(); Object resource = uriInfo.getMatchedResources().get(0); processLinks(entity, resource, entity, processed, uriInfo, rmc, rlcc); }
public static StringBuilder append(StringBuilder sb, UriInfo uriInfo, HttpHeaders httpHeaders) { sb.append("\n UriInfo:"); sb.append("\n Absolute path : ").append(uriInfo.getAbsolutePath()); sb.append("\n Base URI : ").append(uriInfo.getBaseUri()); sb.append("\n Mathced resources : ").append(uriInfo.getMatchedResources().toString()); sb.append("\n Matched URIs : ").append(uriInfo.getMatchedURIs().toString()); sb.append("\n Path : ").append(uriInfo.getPath()); sb.append("\n Path parameters:\n"); dumpMultivaluedMap(sb, uriInfo.getPathParameters()); sb.append(" Path segments : ").append(uriInfo.getPathSegments().toString()); sb.append("\n Query parameters:\n"); dumpMultivaluedMap(sb, uriInfo.getQueryParameters()); sb.append(" Request URI : ").append(uriInfo.getRequestUri()); sb.append("\n\n HttpHeaders:\n"); dumpMultivaluedMap(sb, httpHeaders.getRequestHeaders()); return sb; }
List<String> getLinkHeaderValues(Object entity, UriInfo uriInfo, ResourceMappingContext rmc) { final List<Object> matchedResources = uriInfo.getMatchedResources(); if (!matchedResources.isEmpty()) { final Object resource = matchedResources.get(0); final List<String> headerValues = new ArrayList<>(); for (LinkHeaderDescriptor desc : instanceDescriptor.getLinkHeaders()) { if (ELLinkBuilder.evaluateCondition(desc.getCondition(), entity, resource, entity)) { String headerValue = getLinkHeaderValue(desc, entity, resource, uriInfo, rmc); headerValues.add(headerValue); } } return headerValues; } return Collections.emptyList(); }
@Override @SuppressWarnings("unchecked") public void filter(ContainerRequestContext request, ContainerResponseContext response) { final Object entity = response.getEntity(); if (entity != null && !uriInfo.getMatchedResources().isEmpty()) { Class<?> entityClass = entity.getClass(); HeaderProcessor lhp = new HeaderProcessor(entityClass); lhp.processLinkHeaders(entity, uriInfo, rmc, response.getHeaders()); FieldProcessor lp = new FieldProcessor(entityClass); lp.processLinks(entity, uriInfo, rmc, rlcc); } } }
public Object aroundReadFrom(ReaderInterceptorContext readerInterceptorContext) throws IOException, WebApplicationException { Object resource = uriInfo.getMatchedResources().get(0);
public ResolvedViewable resolveViewable(Viewable v, UriInfo ui) { if (v.isTemplateNameAbsolute()) { return resolveAbsoluteViewable(v); } else if (v.getResolvingClass() != null) { return resolveRelativeViewable(v, v.getResolvingClass()); } else { final List<Object> mrs = ui.getMatchedResources(); if (mrs == null || mrs.size() == 0) throw new TemplateContextException("There is no last matching resource available"); return resolveRelativeViewable(v, mrs.get(0).getClass()); } }
@Override public List<Object> getMatchedResources() { return delegate.getMatchedResources(); } }
@Override public List<Object> getMatchedResources() { return this.core.getMatchedResources(); } }
@Override @NotNull public List<Object> getMatchedResources() { return this.info.getMatchedResources(); }
public class Filter implements ContainerResponseFilter { @Context UriInfo uriInfo; @Context ExtendedUriInfo extendedUriInfo; @Override public ContainerResponse filter(ContainerRequest request, ContainerResponse response) { System.out.println(uriInfo.getMatchedResources().get(0).getClass()); System.out.println(extendedUriInfo.getMatchedMethod().toString()); return response; } }
public List<Object> getMatchedResources() { return get().getMatchedResources(); }
private Class getEffectiveClass(Viewable t) { if (t.getContextClass() != null) { return t.getContextClass(); } return uriInfo.getMatchedResources().get(0).getClass(); }
@Override public void filter(ContainerRequestContext requestContext) throws IOException { UriInfo uriInfo = requestContext.getUriInfo(); if(uriInfo.getMatchedResources().isEmpty()) { logger.debug("No resources matched {}", uriInfo.getPath()); return; } if(resourceInfo == null || resourceInfo.getResourceClass() == null) { logger.debug("No resource info: {}", resourceInfo); return; } Object resource = uriInfo.getMatchedResources().get(0); checkAuthorizations(requestContext, resource); }
@Override public void writeTo(String resolvedPath, Viewable viewable, OutputStream out) throws IOException { // Commit the status and headers to the HttpServletResponse out.flush(); configuration.setClassForTemplateLoading(uriInfo.getMatchedResources().get(0).getClass(), "/"); final Template template = configuration.getTemplate(resolvedPath); try { template.process(viewable.getModel(), new OutputStreamWriter(out)); } catch(TemplateException te) { throw new ContainerException(te); } } }
@GET @Path("matched/resources") public Object getMatchedResources() { return concat(uriInfo.getMatchedResources()); }
@GET @Path("/matched-resources") @Produces("text/plain") public String getMatchedResources(@Context UriInfo ui) { List<String> list = new ArrayList<>(); for (Object obj : ui.getMatchedResources()) { list.add(obj.toString()); } return list.toString(); }
@GET @Path("/matched-resources") @Produces("text/plain") public String getMatchedResources(@Context UriInfo ui) { List<String> list = new ArrayList<>(); for (Object obj : ui.getMatchedResources()) { list.add(obj.toString()); } return list.toString(); }
@Override public void filter(ContainerRequestContext context) throws IOException { List<Object> matched = context.getUriInfo().getMatchedResources(); if (matched.size() == 2 && ApplicationController.ApplicationControllerSub.class == matched.get(0) && ApplicationController.class == matched.get(1)) { context.getHeaders().putSingle("ApplicationInfo", "FilteredApplicationInfo"); } }
public ResolvedViewable resolveViewable(Viewable v, UriInfo ui) { if (v.isTemplateNameAbsolute()) { return resolveAbsoluteViewable(v); } else if (v.getResolvingClass() != null) { return resolveRelativeViewable(v, v.getResolvingClass()); } else { final List<Object> mrs = ui.getMatchedResources(); if (mrs == null || mrs.size() == 0) throw new TemplateContextException("There is no last matching resource available"); return resolveRelativeViewable(v, mrs.get(0).getClass()); } }
public ResolvedViewable resolveViewable(Viewable v, UriInfo ui) { if (v.isTemplateNameAbsolute()) { return resolveAbsoluteViewable(v); } else if (v.getResolvingClass() != null) { return resolveRelativeViewable(v, v.getResolvingClass()); } else { final List<Object> mrs = ui.getMatchedResources(); if (mrs == null || mrs.size() == 0) throw new TemplateContextException("There is no last matching resource available"); return resolveRelativeViewable(v, mrs.get(0).getClass()); } }