List of usage examples for com.google.common.reflect Parameter getType
public TypeToken<?> getType()
From source file:org.jclouds.rest.config.SyncToAsyncHttpInvocationModule.java
/** * for portability with {@link Class#getMethod(String, Class...)} *//*from w w w .ja v a 2 s . c om*/ private static Class<?>[] getParameterTypes(Invokable<?, ?> in) { return toArray( transform(checkNotNull(in, "invokable").getParameters(), new Function<Parameter, Class<?>>() { public Class<?> apply(Parameter input) { return input.getType().getRawType(); } }), Class.class); }
From source file:org.jclouds.reflect.Reflection2.java
protected static List<Class<?>> toClasses(ImmutableList<Parameter> params) { return Lists.transform(params, new Function<Parameter, Class<?>>() { public Class<?> apply(Parameter input) { return input.getType().getRawType(); }/*from w w w.j a va 2s . com*/ }); }
From source file:org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory.java
private <T> Map<String, ParameterReader<?>> getParameterReaders(Gson context, Invokable<T, T> deserializationCtor) { Builder<String, ParameterReader<?>> result = ImmutableMap.builder(); for (Parameter param : deserializationCtor.getParameters()) { TypeAdapter<?> adapter = context.getAdapter(TypeToken.get(param.getType().getType())); String parameterName = constructorFieldNamingPolicy.translateName(deserializationCtor, param.hashCode());//from w w w.j a va 2 s . c o m checkArgument(parameterName != null, deserializationCtor + " parameter " + 0 + " failed to be named by " + constructorFieldNamingPolicy); @SuppressWarnings({ "rawtypes", "unchecked" }) ParameterReader<?> parameterReader = new ParameterReader(param.hashCode(), parameterName, adapter); result.put(parameterReader.name, parameterReader); } return result.build(); }
From source file:org.apache.beam.sdk.values.TypeDescriptor.java
/** * Returns a list of argument types for the given method, which must * be a part of the class./*from w w w .j av a 2 s . co m*/ */ public List<TypeDescriptor<?>> getArgumentTypes(Method method) { Invokable<?, ?> typedMethod = token.method(method); List<TypeDescriptor<?>> argTypes = Lists.newArrayList(); for (Parameter parameter : typedMethod.getParameters()) { argTypes.add(new SimpleTypeDescriptor<>(parameter.getType())); } return argTypes; }
From source file:org.immutables.eventual.Providers.java
private boolean eligibilityVerified(Invokable<T, Object> method, Errors errors) { List<TypeToken<?>> primitiveTypes = Lists.newArrayList(); for (Parameter parameter : method.getParameters()) { if (parameter.getType().isPrimitive()) { primitiveTypes.add(parameter.getType()); }/* w w w .ja v a 2 s .c o m*/ } if (method.getReturnType().isPrimitive() && !isVoid(method)) { primitiveTypes.add(method.getReturnType()); } if (!primitiveTypes.isEmpty()) { errors.addMessage( "Incompartible eventual provider method '%s'" + "\n\tSignature has primitive types: %s." + " Please use boxed types instead", method.getName(), Joiner.on(", ").join(primitiveTypes)); } return primitiveTypes.isEmpty(); }
From source file:org.immutables.eventual.Providers.java
Dependency<ListenableFuture<?>> extractDependency(Errors methodErrors, Parameter parameter) { @Nullable//from w w w.j a v a2 s .com Annotation bindingAnnotation = Annotations.findBindingAnnotation(methodErrors, parameter.getDeclaringInvokable(), parameter.getAnnotations()); return Dependency.get(futureKey(parameter.getType(), bindingAnnotation)); }
From source file:com.google.cloud.dataflow.sdk.util.ApiSurface.java
private void addExposedTypes(Parameter parameter, Class<?> cause) { logger.debug("Adding exposed types from {}, which is the type of parameter {}", parameter.getType(), parameter);/* www.j a v a2s. c o m*/ addExposedTypes(parameter.getType(), cause); for (Annotation annotation : parameter.getAnnotations()) { logger.debug("Adding exposed types from {}, which is an annotation on parameter {}", annotation, parameter); addExposedTypes(annotation.annotationType(), cause); } }
From source file:org.apache.beam.sdk.util.ApiSurface.java
private void addExposedTypes(Parameter parameter, Class<?> cause) { LOG.debug("Adding exposed types from {}, which is the type of parameter {}", parameter.getType(), parameter);//from w ww. j a va 2s .com addExposedTypes(parameter.getType(), cause); for (Annotation annotation : parameter.getAnnotations()) { LOG.debug("Adding exposed types from {}, which is an annotation on parameter {}", annotation, parameter); addExposedTypes(annotation.annotationType(), cause); } }
From source file:org.jclouds.rest.internal.RestAnnotationProcessor.java
private GeneratedHttpRequest decorateRequest(GeneratedHttpRequest request) throws NegativeArraySizeException { Invocation invocation = request.getInvocation(); List<Object> args = request.getInvocation().getArgs(); Set<Parameter> binderOrWrapWith = ImmutableSet .copyOf(concat(parametersWithAnnotation(invocation.getInvokable(), BinderParam.class), parametersWithAnnotation(invocation.getInvokable(), WrapWith.class))); OUTER: for (Parameter entry : binderOrWrapWith) { int position = entry.hashCode(); boolean shouldBreak = false; Binder binder;//w ww.ja v a 2 s . c o m if (entry.isAnnotationPresent(BinderParam.class)) binder = injector.getInstance(entry.getAnnotation(BinderParam.class).value()); else binder = injector.getInstance(BindToJsonPayloadWrappedWith.Factory.class) .create(entry.getAnnotation(WrapWith.class).value()); Object arg = args.size() >= position + 1 ? args.get(position) : null; if (args.size() >= position + 1 && arg != null) { Class<?> parameterType = entry.getType().getRawType(); Class<? extends Object> argType = arg.getClass(); if (!argType.isArray() && parameterType.isArray()) {// TODO: && // invocation.getInvokable().isVarArgs()) // { int arrayLength = args.size() - invocation.getInvokable().getParameters().size() + 1; if (arrayLength == 0) break OUTER; arg = (Object[]) Array.newInstance(arg.getClass(), arrayLength); System.arraycopy(args.toArray(), position, arg, 0, arrayLength); shouldBreak = true; } else if (argType.isArray() && parameterType.isArray()) {// TODO: // && // invocation.getInvokable().isVarArgs()) // { } else { if (arg.getClass().isArray()) { Object[] payloadArray = (Object[]) arg; arg = payloadArray.length > 0 ? payloadArray[0] : null; } } if (arg != null) { request = binder.bindToRequest(request, arg); } if (shouldBreak) break OUTER; } else { if (position + 1 == invocation.getInvokable().getParameters().size() && entry.getType().isArray())// TODO: // && // invocation.getInvokable().isVarArgs()) continue OUTER; if (entry.isAnnotationPresent(Nullable.class)) { continue OUTER; } checkNotNull(arg, invocation.getInvokable().getName() + " parameter " + (position + 1)); } } return request; }