if (paramValProvider.getSource().equals(Parameter.Source.ENTITY)) { entityProviderIndex = index++; continue;
@Override public int hashCode() { int result = annotations != null ? Arrays.hashCode(annotations) : 0; result = 31 * result + (sourceAnnotation != null ? sourceAnnotation.hashCode() : 0); result = 31 * result + (source != null ? source.hashCode() : 0); result = 31 * result + (sourceName != null ? sourceName.hashCode() : 0); result = 31 * result + (encoded ? 1 : 0); result = 31 * result + (defaultValue != null ? defaultValue.hashCode() : 0); result = 31 * result + (rawType != null ? rawType.hashCode() : 0); result = 31 * result + (type != null ? type.hashCode() : 0); return result; } }
if (paramValProvider.getSource().equals(Parameter.Source.ENTITY)) { entityProviderIndex = index++; continue;
if (paramValProvider.getSource().equals(Parameter.Source.ENTITY)) { entityProviderIndex = index++; continue;
if (paramValProvider.getSource().equals(Parameter.Source.ENTITY)) { entityProviderIndex = index++; continue;
/** * Gets a method parameter (or a parameter field) name, if the violation raised in it. */ private static Optional<String> getMemberName(ConstraintViolation<?> violation, Invocable invocable) { final int size = Iterables.size(violation.getPropertyPath()); if (size < 2) { return Optional.empty(); } final Path.Node parent = Iterables.get(violation.getPropertyPath(), size - 2); final Path.Node member = Iterables.getLast(violation.getPropertyPath()); switch (parent.getKind()) { case PARAMETER: // Constraint violation most likely failed with a BeanParam final List<Parameter> parameters = invocable.getParameters(); final Parameter param = parameters.get(parent.as(Path.ParameterNode.class).getParameterIndex()); // Extract the failing *Param annotation inside the Bean Param if (param.getSource().equals(Parameter.Source.BEAN_PARAM)) { final Field field = FieldUtils.getField(param.getRawType(), member.getName(), true); return JerseyParameterNameProvider.getParameterNameFromAnnotations(field.getDeclaredAnnotations()); } break; case METHOD: return Optional.of(member.getName()); default: break; } return Optional.empty(); }
if (paramValProvider.getSource().equals(Parameter.Source.ENTITY)) { entityProviderIndex = index++; continue;
/** * 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; } }
/** * Create new parameter model by overriding {@link Parameter.Source source} * of the original parameter model. * * @param original original parameter model. * @param source new overriding parameter source. * @return source-overridden copy of the original parameter. */ public static Parameter overrideSource(Parameter original, Parameter.Source source) { return new Parameter( original.annotations, original.sourceAnnotation, source, source.name(), original.rawType, original.type, original.encoded, original.defaultValue); }
/** * Create new parameter model by overriding {@link Parameter.Source source} * of the original parameter model. * * @param original original parameter model. * @param source new overriding parameter source. * @return source-overridden copy of the original parameter. */ public static Parameter overrideSource(Parameter original, Parameter.Source source) { return new Parameter( original.annotations, original.sourceAnnotation, source, source.name(), original.rawType, original.type, original.encoded, original.defaultValue); }
/** * Create new parameter model by overriding {@link Parameter.Source source} * of the original parameter model. * * @param original original parameter model. * @param source new overriding parameter source. * @return source-overridden copy of the original parameter. */ public static Parameter overrideSource(Parameter original, Parameter.Source source) { return new Parameter( original.annotations, original.sourceAnnotation, source, source.name(), original.rawType, original.type, original.encoded, original.defaultValue); }
/** * 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 Path.Node parent = Iterables.get(violation.getPropertyPath(), 1, 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)) { return Optional.of(Joiner.on('.').join(Iterables.skip(violation.getPropertyPath(), 2))); } } return Optional.empty(); }
/** * Create new parameter model by overriding {@link Parameter.Source source} * of the original parameter model. * * @param original original parameter model. * @param source new overriding parameter source. * @return source-overridden copy of the original parameter. */ public static Parameter overrideSource(Parameter original, Parameter.Source source) { return new Parameter( original.annotations, original.sourceAnnotation, source, source.name(), original.rawType, original.type, original.encoded, original.defaultValue); }
@Override public int hashCode() { int result = annotations != null ? Arrays.hashCode(annotations) : 0; result = 31 * result + (sourceAnnotation != null ? sourceAnnotation.hashCode() : 0); result = 31 * result + (source != null ? source.hashCode() : 0); result = 31 * result + (sourceName != null ? sourceName.hashCode() : 0); result = 31 * result + (encoded ? 1 : 0); result = 31 * result + (defaultValue != null ? defaultValue.hashCode() : 0); result = 31 * result + (rawType != null ? rawType.hashCode() : 0); result = 31 * result + (type != null ? type.hashCode() : 0); return result; } }
@Override public int hashCode() { int result = annotations != null ? Arrays.hashCode(annotations) : 0; result = 31 * result + (sourceAnnotation != null ? sourceAnnotation.hashCode() : 0); result = 31 * result + (source != null ? source.hashCode() : 0); result = 31 * result + (sourceName != null ? sourceName.hashCode() : 0); result = 31 * result + (encoded ? 1 : 0); result = 31 * result + (defaultValue != null ? defaultValue.hashCode() : 0); result = 31 * result + (rawType != null ? rawType.hashCode() : 0); result = 31 * result + (type != null ? type.hashCode() : 0); return result; } }
@Override public int hashCode() { int result = annotations != null ? Arrays.hashCode(annotations) : 0; result = 31 * result + (sourceAnnotation != null ? sourceAnnotation.hashCode() : 0); result = 31 * result + (source != null ? source.hashCode() : 0); result = 31 * result + (sourceName != null ? sourceName.hashCode() : 0); result = 31 * result + (encoded ? 1 : 0); result = 31 * result + (defaultValue != null ? defaultValue.hashCode() : 0); result = 31 * result + (rawType != null ? rawType.hashCode() : 0); result = 31 * result + (type != null ? type.hashCode() : 0); return result; } }
@Override public int hashCode() { int result = annotations != null ? Arrays.hashCode(annotations) : 0; result = 31 * result + (sourceAnnotation != null ? sourceAnnotation.hashCode() : 0); result = 31 * result + (source != null ? source.hashCode() : 0); result = 31 * result + (sourceName != null ? sourceName.hashCode() : 0); result = 31 * result + (encoded ? 1 : 0); result = 31 * result + (defaultValue != null ? defaultValue.hashCode() : 0); result = 31 * result + (rawType != null ? rawType.hashCode() : 0); result = 31 * result + (type != null ? type.hashCode() : 0); return result; } }
if (paramValProvider.getSource().equals(Parameter.Source.ENTITY)) { entityProviderIndex = index++; continue;
/** * Create new parameter model by overriding {@link Parameter.Source source} * of the original parameter model. * * @param original original parameter model. * @param source new overriding parameter source. * @return source-overridden copy of the original parameter. */ public static Parameter overrideSource(Parameter original, Parameter.Source source) { return new Parameter( original.annotations, original.sourceAnnotation, source, source.name(), original.rawType, original.type, original.encoded, original.defaultValue); }
@Override public int hashCode() { int result = annotations != null ? Arrays.hashCode(annotations) : 0; result = 31 * result + (sourceAnnotation != null ? sourceAnnotation.hashCode() : 0); result = 31 * result + (source != null ? source.hashCode() : 0); result = 31 * result + (sourceName != null ? sourceName.hashCode() : 0); result = 31 * result + (encoded ? 1 : 0); result = 31 * result + (defaultValue != null ? defaultValue.hashCode() : 0); result = 31 * result + (rawType != null ? rawType.hashCode() : 0); result = 31 * result + (type != null ? type.hashCode() : 0); return result; } }