private void configureOptionalExpanders(Class<?> targetType, Method method, MethodMetadata metadata, int index, FluentIterable<Class<?>> paramAnnotations, Class<? extends Expander> emptyExpanderClass, Class<? extends Expander> nullExpanderClass) { if (paramAnnotations.contains(HeaderParam.class)) { metadata.indexToExpanderClass().put(index, emptyExpanderClass); } else if (paramAnnotations.contains(QueryParam.class)) { metadata.indexToExpanderClass().put(index, nullExpanderClass); } else if (paramAnnotations.contains(PathParam.class)) { throw new RuntimeException(String.format( "Cannot use Java8 Optionals with PathParams. (Class: %s, Method: %s, Param: arg%d)", targetType.getName(), method.getName(), index)); } }
private void configureOptionalExpanders(Class<?> targetType, Method method, MethodMetadata metadata, int index, FluentIterable<Class<?>> paramAnnotations, Class<? extends Expander> emptyExpanderClass, Class<? extends Expander> nullExpanderClass) { if (paramAnnotations.contains(HeaderParam.class)) { metadata.indexToExpanderClass().put(index, emptyExpanderClass); } else if (paramAnnotations.contains(QueryParam.class)) { metadata.indexToExpanderClass().put(index, nullExpanderClass); } else if (paramAnnotations.contains(PathParam.class)) { throw new RuntimeException(String.format( "Cannot use Java8 Optionals with PathParams. (Class: %s, Method: %s, Param: arg%d)", targetType.getName(), method.getName(), index)); } }
private void configureOptionalExpanders(Class<?> targetType, Method method, MethodMetadata metadata, int index, FluentIterable<Class<?>> paramAnnotations, Class<? extends Expander> emptyExpanderClass, Class<? extends Expander> nullExpanderClass) { if (paramAnnotations.contains(HeaderParam.class)) { metadata.indexToExpanderClass().put(index, emptyExpanderClass); } else if (paramAnnotations.contains(QueryParam.class)) { metadata.indexToExpanderClass().put(index, nullExpanderClass); } else if (paramAnnotations.contains(PathParam.class)) { throw new RuntimeException(String.format( "Cannot use Java8 Optionals with PathParams. (Class: %s, Method: %s, Param: arg%d)", targetType.getName(), method.getName(), index)); } }
BuildTemplateByResolvingArgs(final MethodMetadata metadata) { this.metadata = metadata; if (metadata.indexToExpander() != null) { indexToExpander.putAll(metadata.indexToExpander()); return; } if (metadata.indexToExpanderClass().isEmpty()) { return; } for (final Map.Entry<Integer, Class<? extends Param.Expander>> indexToExpanderClass : metadata .indexToExpanderClass().entrySet()) { try { indexToExpander.put( indexToExpanderClass.getKey(), indexToExpanderClass.getValue().newInstance()); } catch (final InstantiationException | IllegalAccessException exception) { throw new IllegalStateException(exception); } } }
private BuildTemplateByResolvingArgs(MethodMetadata metadata) { this.metadata = metadata; if (metadata.indexToExpander() != null) { indexToExpander.putAll(metadata.indexToExpander()); return; } if (metadata.indexToExpanderClass().isEmpty()) { return; } for (Entry<Integer, Class<? extends Expander>> indexToExpanderClass : metadata .indexToExpanderClass().entrySet()) { try { indexToExpander .put(indexToExpanderClass.getKey(), indexToExpanderClass.getValue().newInstance()); } catch (InstantiationException e) { throw new IllegalStateException(e); } catch (IllegalAccessException e) { throw new IllegalStateException(e); } } }
@Override protected void processMetadata(Class<?> targetType, Method method, MethodMetadata metadata) { Class<?>[] parameterTypes = method.getParameterTypes(); Annotation[][] annotations = method.getParameterAnnotations(); for (int i = 0; i < parameterTypes.length; i++) { Class<?> cls = parameterTypes[i]; if (cls.equals(com.google.common.base.Optional.class)) { FluentIterable<Class<?>> paramAnnotations = FluentIterable.from(Lists.newArrayList(annotations[i])).transform(EXTRACT_CLASS); if (paramAnnotations.contains(HeaderParam.class)) { metadata.indexToExpanderClass().put(i, GuavaEmptyOptionalExpander.class); } else if (paramAnnotations.contains(QueryParam.class)) { metadata.indexToExpanderClass().put(i, GuavaNullOptionalExpander.class); } else if (paramAnnotations.contains(PathParam.class)) { throw new RuntimeException(String.format( "Cannot use Guava Optionals with PathParams. (Class: %s, Method: %s, Param: arg%d)", targetType.getName(), method.getName(), i)); } } } }
@Override protected void processMetadata(Class<?> targetType, Method method, MethodMetadata metadata) { Class<?>[] parameterTypes = method.getParameterTypes(); Annotation[][] annotations = method.getParameterAnnotations(); for (int i = 0; i < parameterTypes.length; i++) { Class<?> cls = parameterTypes[i]; if (cls.equals(com.google.common.base.Optional.class)) { FluentIterable<Class<?>> paramAnnotations = FluentIterable.from(Lists.newArrayList(annotations[i])).transform(EXTRACT_CLASS); if (paramAnnotations.contains(HeaderParam.class)) { metadata.indexToExpanderClass().put(i, GuavaEmptyOptionalExpander.class); } else if (paramAnnotations.contains(QueryParam.class)) { metadata.indexToExpanderClass().put(i, GuavaNullOptionalExpander.class); } else if (paramAnnotations.contains(PathParam.class)) { throw new RuntimeException(String.format( "Cannot use Guava Optionals with PathParams. (Class: %s, Method: %s, Param: arg%d)", targetType.getName(), method.getName(), i)); } } } }
@Override protected void processMetadata(Class<?> targetType, Method method, MethodMetadata metadata) { Class<?>[] parameterTypes = method.getParameterTypes(); Annotation[][] annotations = method.getParameterAnnotations(); for (int i = 0; i < parameterTypes.length; i++) { Class<?> cls = parameterTypes[i]; if (cls.equals(Optional.class)) { FluentIterable<Class<?>> paramAnnotations = FluentIterable.from(Lists.newArrayList(annotations[i])).transform(EXTRACT_CLASS); if (paramAnnotations.contains(HeaderParam.class)) { metadata.indexToExpanderClass().put(i, GuavaEmptyOptionalExpander.class); } else if (paramAnnotations.contains(QueryParam.class)) { metadata.indexToExpanderClass().put(i, GuavaNullOptionalExpander.class); } else if (paramAnnotations.contains(PathParam.class)) { throw new RuntimeException(String.format( "Cannot use Guava Optionals with PathParams. (Class: %s, Method: %s, Param: arg%d)", targetType.getName(), method.getName(), i)); } } } }
@Override protected void processMetadata(Class<?> targetType, Method method, MethodMetadata metadata) { Class<?>[] parameterTypes = method.getParameterTypes(); Annotation[][] annotations = method.getParameterAnnotations(); for (int i = 0; i < parameterTypes.length; i++) { Class<?> cls = parameterTypes[i]; if (cls.equals(Optional.class)) { FluentIterable<Class<?>> paramAnnotations = FluentIterable.from(Lists.newArrayList(annotations[i])).transform(EXTRACT_CLASS); if (paramAnnotations.contains(HeaderParam.class)) { metadata.indexToExpanderClass().put(i, GuavaEmptyOptionalExpander.class); } else if (paramAnnotations.contains(QueryParam.class)) { metadata.indexToExpanderClass().put(i, GuavaNullOptionalExpander.class); } else if (paramAnnotations.contains(PathParam.class)) { throw new RuntimeException(String.format( "Cannot use Guava Optionals with PathParams. (Class: %s, Method: %s, Param: arg%d)", targetType.getName(), method.getName(), i)); } } } }
Class<? extends Param.Expander> expander = ((Param) annotation).expander(); if (expander != Param.ToStringExpander.class) { data.indexToExpanderClass().put(paramIndex, expander);