List of usage examples for com.google.common.reflect Invokable getParameters
public final ImmutableList<Parameter> getParameters()
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); } }