@Override public BindingResult<T> bind(ArgumentConversionContext<T> argument, HttpRequest<?> source) { MutableConvertibleValues<Object> parameters = source.getAttributes(); AnnotationMetadata annotationMetadata = argument.getAnnotationMetadata(); String parameterName = annotationMetadata.getValue(RequestAttribute.class, String.class).orElse(argument.getArgument().getName()); return doBind(argument, parameters, parameterName); }
@Override public BindingResult<T> bind(ArgumentConversionContext<T> argument, HttpRequest<?> source) { ConvertibleValues<io.micronaut.http.cookie.Cookie> parameters = source.getCookies(); AnnotationMetadata annotationMetadata = argument.getAnnotationMetadata(); String parameterName = annotationMetadata.getValue(CookieValue.class, String.class) .orElse(argument.getArgument().getName()); return doBind(argument, parameters, parameterName); }
@Override public BindingResult<T> bind(ArgumentConversionContext<T> argument, HttpRequest<?> source) { ConvertibleMultiValues<String> parameters = source.getHeaders(); AnnotationMetadata annotationMetadata = argument.getAnnotationMetadata(); String parameterName = annotationMetadata.getValue(Header.class, String.class).orElse(argument.getArgument().getName()); return doBind(argument, parameters, parameterName); }
/** * @param name The property name * @param entries The entries * @param conversionContext The conversion context * @return The subproperties */ protected Properties resolveSubProperties(String name, Map<String, Object> entries, ArgumentConversionContext<?> conversionContext) { // special handling for maps for resolving sub keys Properties properties = new Properties(); AnnotationMetadata annotationMetadata = conversionContext.getAnnotationMetadata(); StringConvention keyConvention = annotationMetadata.getValue(MapFormat.class, "keyFormat", StringConvention.class) .orElse(StringConvention.RAW); String prefix = name + '.'; entries.entrySet().stream() .filter(map -> map.getKey().startsWith(prefix)) .forEach(entry -> { Object value = entry.getValue(); if (value != null) { String key = entry.getKey().substring(prefix.length()); key = keyConvention.format(key); properties.put(key, resolvePlaceHoldersIfNecessary(value.toString())); } }); return properties; }
/** * @param name The property name * @param entries The entries * @param conversionContext The conversion context * @return The subproperties */ protected Properties resolveSubProperties(String name, Map<String, Object> entries, ArgumentConversionContext<?> conversionContext) { // special handling for maps for resolving sub keys Properties properties = new Properties(); AnnotationMetadata annotationMetadata = conversionContext.getAnnotationMetadata(); StringConvention keyConvention = annotationMetadata.getValue(MapFormat.class, "keyFormat", StringConvention.class) .orElse(StringConvention.RAW); String prefix = name + '.'; entries.entrySet().stream() .filter(map -> map.getKey().startsWith(prefix)) .forEach(entry -> { Object value = entry.getValue(); if (value != null) { String key = entry.getKey().substring(prefix.length()); key = keyConvention.format(key); properties.put(key, resolvePlaceHoldersIfNecessary(value.toString())); } }); return properties; }
/** * @param name The property name * @param entries The entries * @param conversionContext The conversion context * @return The submap */ protected Map<String, Object> resolveSubMap(String name, Map<String, Object> entries, ArgumentConversionContext<?> conversionContext) { // special handling for maps for resolving sub keys AnnotationMetadata annotationMetadata = conversionContext.getAnnotationMetadata(); StringConvention keyConvention = annotationMetadata.getValue(MapFormat.class, "keyFormat", StringConvention.class).orElse(StringConvention.RAW); MapFormat.MapTransformation transformation = annotationMetadata.getValue( MapFormat.class, "transformation", MapFormat.MapTransformation.class) .orElse(conversionContext.isAnnotationPresent(Property.class) ? MapFormat.MapTransformation.FLAT : MapFormat.MapTransformation.NESTED); return resolveSubMap(name, entries, conversionContext, keyConvention, transformation); }
AnnotationMetadata annotationMetadata = conversionContext.getAnnotationMetadata(); StringConvention keyConvention = annotationMetadata.getValue(MapFormat.class, "keyFormat", StringConvention.class).orElse(StringConvention.RAW); String prefix = name + '.';
@Override public BindingResult<Object> bind(ArgumentConversionContext<Object> context, HttpRequest<?> source) { final AnnotationMetadata annotationMetadata = context.getAnnotationMetadata(); final boolean required = annotationMetadata.getValue("required", boolean.class).orElse(true); final String name = annotationMetadata.getValue(RequestAttribute.class, String.class).orElseGet(() -> annotationMetadata.getValue(RequestAttribute.class, "name", String.class).orElse(context.getArgument().getName()) ); return new BindingResult<Object>() { @Override public Optional<Object> getValue() { return source.getAttributes().get(name, context); } @Override public boolean isSatisfied() { return !required; } }; } }
@Override public BindingResult<T> bind(ArgumentConversionContext<T> argument, HttpRequest<?> source) { ConvertibleMultiValues<String> parameters = source.getHeaders(); AnnotationMetadata annotationMetadata = argument.getAnnotationMetadata(); String parameterName = annotationMetadata.getValue(Header.class, String.class).orElse(argument.getArgument().getName()); return doBind(argument, parameters, parameterName); }
@Override public BindingResult<T> bind(ArgumentConversionContext<T> argument, HttpRequest<?> source) { ConvertibleValues<io.micronaut.http.cookie.Cookie> parameters = source.getCookies(); AnnotationMetadata annotationMetadata = argument.getAnnotationMetadata(); String parameterName = annotationMetadata.getValue(CookieValue.class, String.class) .orElse(argument.getArgument().getName()); return doBind(argument, parameters, parameterName); }