@Override public Function<ContainerRequest, AsyncResponse> getValueProvider(final Parameter parameter) { if (parameter.getSource() != Parameter.Source.SUSPENDED) { return null; } if (!AsyncResponse.class.isAssignableFrom(parameter.getRawType())) { return null; } return containerRequest -> asyncContextProvider.get(); }
@Override public boolean requiresEntity() { for (Parameter p : getParameters()) { if (Parameter.Source.ENTITY == p.getSource()) { return true; } } return false; }
@Override public Function<ContainerRequest, AsyncResponse> getValueProvider(final Parameter parameter) { if (parameter.getSource() != Parameter.Source.SUSPENDED) { return null; } if (!AsyncResponse.class.isAssignableFrom(parameter.getRawType())) { return null; } return containerRequest -> asyncContextProvider.get(); }
@Override public boolean requiresEntity() { for (Parameter p : getParameters()) { if (Parameter.Source.ENTITY == p.getSource()) { return true; } } return false; }
@Override public boolean requiresEntity() { for (Parameter p : getParameters()) { if (Parameter.Source.ENTITY == p.getSource()) { return true; } } return false; }
@Override public boolean requiresEntity() { for (Parameter p : getParameters()) { if (Parameter.Source.ENTITY == p.getSource()) { return true; } } return false; }
/** * Get an injected value provider for the parameter. May return {@code null} * in case the parameter is not supported by the value provider. * * @param parameter parameter requesting the value provider instance. * @return injected parameter value supplier. Returns {@code null} if parameter * is not supported. */ @Override public final Function<ContainerRequest, ?> getValueProvider(Parameter parameter) { if (!compatibleSources.contains(parameter.getSource())) { // not compatible return null; } return createValueProvider(parameter); }
/** * Get an injected value provider for the parameter. May return {@code null} * in case the parameter is not supported by the value provider. * * @param parameter parameter requesting the value provider instance. * @return injected parameter value supplier. Returns {@code null} if parameter * is not supported. */ @Override public final Function<ContainerRequest, ?> getValueProvider(Parameter parameter) { if (!compatibleSources.contains(parameter.getSource())) { // not compatible return null; } return createValueProvider(parameter); }
private Param generateParam(final org.glassfish.jersey.server.model.Resource resource, final org.glassfish.jersey.server.model.ResourceMethod method, final Parameter param) { try { if (param.getSource() == Parameter.Source.ENTITY || param.getSource() == Parameter.Source.CONTEXT) { return null; } return _wadlGenerator.createParam(resource, method, param); } catch (Exception e) { throw new ProcessingException(LocalizationMessages.ERROR_WADL_BUILDER_GENERATION_PARAM(param, resource, method), e); } }
private Param generateParam(final org.glassfish.jersey.server.model.Resource resource, final org.glassfish.jersey.server.model.ResourceMethod method, final Parameter param) { try { if (param.getSource() == Parameter.Source.ENTITY || param.getSource() == Parameter.Source.CONTEXT) { return null; } return _wadlGenerator.createParam(resource, method, param); } catch (Exception e) { throw new ProcessingException(LocalizationMessages.ERROR_WADL_BUILDER_GENERATION_PARAM(param, resource, method), e); } }
private Parameter getEntityParam(final Invocable invocable) { for (final Parameter parameter : invocable.getParameters()) { if (parameter.getSource() == Parameter.Source.ENTITY && !ContainerRequestContext.class.isAssignableFrom(parameter.getRawType())) { // there's at most one entity parameter return parameter; } } return null; }
private Parameter getEntityParam(final Invocable invocable) { for (final Parameter parameter : invocable.getParameters()) { if (parameter.getSource() == Parameter.Source.ENTITY && !ContainerRequestContext.class.isAssignableFrom(parameter.getRawType())) { // there's at most one entity parameter return parameter; } } return null; }
/** * Determines if constraint violation occurred in the request entity. If it did, return a client * friendly string representation of where the error occurred (eg. "patient.name") */ public static Optional<String> isRequestEntity(ConstraintViolation<?> violation, Invocable invocable) { final Collection<Path.Node> propertyPath = Lists.of(violation.getPropertyPath()); final Path.Node parent = propertyPath.stream() .skip(1L) .findFirst() .orElse(null); if (parent == null) { return Optional.empty(); } final List<Parameter> parameters = invocable.getParameters(); if (parent.getKind() == ElementKind.PARAMETER) { final Parameter param = parameters.get(parent.as(Path.ParameterNode.class).getParameterIndex()); if (param.getSource().equals(Parameter.Source.UNKNOWN)) { final String path = propertyPath.stream() .skip(2L) .map(Path.Node::toString) .collect(Collectors.joining(".")); return Optional.of(path); } } return Optional.empty(); }
private void fillInputTypesFromWorkers(final Set<MediaType> effectiveInputTypes, final Invocable invocableMethod) { for (Parameter p : invocableMethod.getParameters()) { if (p.getSource() == Parameter.Source.ENTITY) { effectiveInputTypes.addAll(workers.getMessageBodyReaderMediaTypesByType(p.getRawType())); // there's at most one entity parameter break; } } }
private void fillInputTypesFromWorkers(final Set<MediaType> effectiveInputTypes, final Invocable invocableMethod) { for (Parameter p : invocableMethod.getParameters()) { if (p.getSource() == Parameter.Source.ENTITY) { effectiveInputTypes.addAll(workers.getMessageBodyReaderMediaTypesByType(p.getRawType())); // there's at most one entity parameter break; } } }
/** * Given a set of constraint violations and a Jersey {@link Invocable} where the constraint * occurred, determine the HTTP Status code for the response. A return value violation is an * internal server error, an invalid request body is unprocessable entity, and any params that * are invalid means a bad request */ public static <T extends ConstraintViolation<?>> int determineStatus(Set<T> violations, Invocable invocable) { if (violations.size() > 0) { final ConstraintViolation<?> violation = violations.iterator().next(); for (Path.Node node : violation.getPropertyPath()) { switch (node.getKind()) { case RETURN_VALUE: return 500; case PARAMETER: // Now determine if the parameter is the request entity final int index = node.as(Path.ParameterNode.class).getParameterIndex(); final Parameter parameter = invocable.getParameters().get(index); return parameter.getSource().equals(Parameter.Source.UNKNOWN) ? 422 : 400; default: continue; } } } // This shouldn't hit, but if it does, we'll return a unprocessable entity return 422; } }
@Override public Function<ContainerRequest, ?> getValueProvider(final Parameter parameter) { Source paramSource = parameter.getSource(); if (paramSource == Parameter.Source.CONTEXT) { return containerRequest -> resolver.get().resolve(getInjectee(parameter)); } return null; }
@Override public Function<ContainerRequest, ?> getValueProvider(final Parameter parameter) { Source paramSource = parameter.getSource(); if (paramSource == Parameter.Source.CONTEXT) { return containerRequest -> resolver.get().resolve(getInjectee(parameter)); } return null; }
private List<MediaType> getEffectiveInputTypes(final ResourceMethod resourceMethod) { if (!resourceMethod.getConsumedTypes().isEmpty()) { return resourceMethod.getConsumedTypes(); } List<MediaType> result = new LinkedList<>(); if (workers != null) { for (Parameter p : resourceMethod.getInvocable().getParameters()) { if (p.getSource() == Parameter.Source.ENTITY) { result.addAll(workers.getMessageBodyReaderMediaTypes( p.getRawType(), p.getType(), p.getDeclaredAnnotations())); } } } return result.isEmpty() ? StarTypeList : result; }
private List<MediaType> getEffectiveInputTypes(final ResourceMethod resourceMethod) { if (!resourceMethod.getConsumedTypes().isEmpty()) { return resourceMethod.getConsumedTypes(); } List<MediaType> result = new LinkedList<>(); if (workers != null) { for (Parameter p : resourceMethod.getInvocable().getParameters()) { if (p.getSource() == Parameter.Source.ENTITY) { result.addAll(workers.getMessageBodyReaderMediaTypes( p.getRawType(), p.getType(), p.getDeclaredAnnotations())); } } } return result.isEmpty() ? StarTypeList : result; }