Example usage for com.google.common.reflect Invokable getParameters

List of usage examples for com.google.common.reflect Invokable getParameters

Introduction

In this page you can find the example usage for com.google.common.reflect Invokable getParameters.

Prototype

public final ImmutableList<Parameter> getParameters() 

Source Link

Document

Returns all declared parameters of this Invokable .

Usage

From source file:org.jclouds.reflect.Invocation.java

/**
 * invocation without arguments.//from   w  ww .j av a2  s . c o m
 * 
 * @throws IllegalArgumentException
 *            if in invokable requires arguments
 */
public static Invocation create(Invokable<?, ?> invokable) {
    checkArgument(
            invokable.getParameters().size() == 0
                    || (invokable.getParameters().size() == 1 && invokable.isVarArgs()),
            "please specify arguments to %s", invokable);
    return create(invokable, ImmutableList.of());
}

From source file:org.jclouds.rest.internal.RestAnnotationProcessor.java

private static Collection<Parameter> parametersWithAnnotation(Invokable<?, ?> invokable,
        final Class<? extends Annotation> annotationType) {
    return filter(invokable.getParameters(), new Predicate<Parameter>() {
        public boolean apply(Parameter in) {
            return in.isAnnotationPresent(annotationType);
        }/*from  w  ww. j  a v a2  s  .c om*/
    });
}

From source file:org.cebolla.repositories.AbstractFakeRepository.java

/**
 * For internal use only//from w ww .j a  v a2  s. com
 */
@SuppressWarnings("serial")
public Class<?> getEntityType() {
    TypeToken<AbstractFakeRepository<EntityType>> token = new TypeToken<AbstractFakeRepository<EntityType>>(
            getClass()) {
    };
    Invokable<AbstractFakeRepository<EntityType>, Object> invokable = token.method(getAddMethod());
    return invokable.getParameters().get(0).getType().getRawType();
}

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 v a  2 s  .co  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  .  jav a  2s  .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());
        }/*from  ww  w .  j  a  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

private EventualProvider<?> providerFor(Invokable<T, ?> method, Errors methodErrors) {
    Annotation[] annotations = method.getAnnotations();

    verifyMethodAccessibility(methodErrors, method, source);

    @Nullable/*from   w w w .  j av  a2  s  .  c o m*/
    Annotation bindingAnnotation = Annotations.findBindingAnnotation(methodErrors, method, annotations);

    verifyAbsenseOfScopeAnnotation(methodErrors, annotations, source);

    List<Dependency<ListenableFuture<?>>> dependencies = Lists
            .newArrayListWithCapacity(method.getParameters().size());

    for (Parameter parameter : method.getParameters()) {
        dependencies.add(extractDependency(methodErrors, parameter));
    }

    Key<ListenableFuture<?>> bindingKey;
    boolean exposedBinding = method.isAnnotationPresent(Exposed.class);

    if (isVoid(method)) {
        bindingKey = futureKey(TypeToken.of(Boolean.class), new BlackholedAnnotation());
        exposedBinding = false;
    } else {
        bindingKey = futureKey(method.getReturnType(), bindingAnnotation);
    }

    return new EventualProvider<>(method, exposedBinding, dependencies, bindingKey, scopeAnnotation, source);
}

From source file:com.google.cloud.dataflow.sdk.util.ApiSurface.java

private void addExposedTypes(Invokable<?, ?> invokable, Class<?> cause) {
    addExposedTypes(invokable.getReturnType(), cause);
    for (Annotation annotation : invokable.getAnnotations()) {
        logger.debug("Adding exposed types from {}, which is an annotation on invokable {}", annotation,
                invokable);//from   w  ww  .ja  v  a2s  .c  o m
        addExposedTypes(annotation.annotationType(), cause);
    }
    for (Parameter parameter : invokable.getParameters()) {
        logger.debug("Adding exposed types from {}, which is a parameter on invokable {}", parameter,
                invokable);
        addExposedTypes(parameter, cause);
    }
    for (TypeToken<?> exceptionType : invokable.getExceptionTypes()) {
        logger.debug("Adding exposed types from {}, which is an exception type on invokable {}", exceptionType,
                invokable);
        addExposedTypes(exceptionType, cause);
    }
}

From source file:org.apache.beam.sdk.util.ApiSurface.java

private void addExposedTypes(Invokable<?, ?> invokable, Class<?> cause) {
    addExposedTypes(invokable.getReturnType(), cause);
    for (Annotation annotation : invokable.getAnnotations()) {
        LOG.debug("Adding exposed types from {}, which is an annotation on invokable {}", annotation,
                invokable);//ww  w  . j  a  v a  2s . c  o m
        addExposedTypes(annotation.annotationType(), cause);
    }
    for (Parameter parameter : invokable.getParameters()) {
        LOG.debug("Adding exposed types from {}, which is a parameter on invokable {}", parameter, invokable);
        addExposedTypes(parameter, cause);
    }
    for (TypeToken<?> exceptionType : invokable.getExceptionTypes()) {
        LOG.debug("Adding exposed types from {}, which is an exception type on invokable {}", exceptionType,
                invokable);
        addExposedTypes(exceptionType, cause);
    }
}