Example usage for com.google.common.reflect Parameter getType

List of usage examples for com.google.common.reflect Parameter getType

Introduction

In this page you can find the example usage for com.google.common.reflect Parameter getType.

Prototype

public TypeToken<?> getType() 

Source Link

Document

Returns the type of the parameter.

Usage

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;
}