com.groupbyinc.flux.common.inject.internal.ProviderMethodsModule.class Maven / Gradle / Ivy
???? 4 @com/groupbyinc/flux/common/inject/internal/ProviderMethodsModule java/lang/Object (com/groupbyinc/flux/common/inject/Module ProviderMethodsModule.java delegate Ljava/lang/Object; typeLiteral /Lcom/groupbyinc/flux/common/inject/TypeLiteral; 2Lcom/groupbyinc/flux/common/inject/TypeLiteral<*>; (Ljava/lang/Object;)V ()V
java/util/Objects requireNonNull 8(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
getClass ()Ljava/lang/Class;
-com/groupbyinc/flux/common/inject/TypeLiteral get B(Ljava/lang/Class;)Lcom/groupbyinc/flux/common/inject/TypeLiteral; ! "
#
% this BLcom/groupbyinc/flux/common/inject/internal/ProviderMethodsModule; forModule V(Lcom/groupbyinc/flux/common/inject/Module;)Lcom/groupbyinc/flux/common/inject/Module; forObject >(Ljava/lang/Object;)Lcom/groupbyinc/flux/common/inject/Module; + ,
- module *Lcom/groupbyinc/flux/common/inject/Module; .com/groupbyinc/flux/common/inject/util/Modules 1 EMPTY_MODULE 3 0 2 4
6 object configure -(Lcom/groupbyinc/flux/common/inject/Binder;)V getProviderMethods <(Lcom/groupbyinc/flux/common/inject/Binder;)Ljava/util/List; ; <
= java/util/List ? iterator ()Ljava/util/Iterator; A B @ C java/util/Iterator E hasNext ()Z G H F I next ()Ljava/lang/Object; K L F M 9com/groupbyinc/flux/common/inject/internal/ProviderMethod O 9 :
P Q providerMethod >Lcom/groupbyinc/flux/common/inject/internal/ProviderMethod<*>; ;Lcom/groupbyinc/flux/common/inject/internal/ProviderMethod; binder *Lcom/groupbyinc/flux/common/inject/Binder; java/util/ArrayList X
Y java/lang/Class [
getMethods ()[Ljava/lang/reflect/Method; ] ^
\ _ [Ljava/lang/reflect/Method; a *com/groupbyinc/flux/common/inject/Provides c java/lang/reflect/Method e
getAnnotation 4(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; g h
f i createProviderMethod ?(Lcom/groupbyinc/flux/common/inject/Binder;Ljava/lang/reflect/Method;)Lcom/groupbyinc/flux/common/inject/internal/ProviderMethod; k l
m add (Ljava/lang/Object;)Z o p @ q
getSuperclass s
\ t method Ljava/lang/reflect/Method; c Ljava/lang/Class<*>; Ljava/lang/Class; result PLjava/util/List;>; Ljava/util/List; (com/groupbyinc/flux/common/inject/Binder ~
withSource >(Ljava/lang/Object;)Lcom/groupbyinc/flux/common/inject/Binder; ? ? ? 1com/groupbyinc/flux/common/inject/internal/Errors ?
? 6 java/util/HashSet ?
? getParameterTypes ,(Ljava/lang/reflect/Member;)Ljava/util/List; ? ?
? getParameterAnnotations %()[[Ljava/lang/annotation/Annotation; ? ?
f ?
java/util/Set ? #[[Ljava/lang/annotation/Annotation; ? size ()I ? ? @ ? (I)Ljava/lang/Object; ! ? @ ? getKey ?(Lcom/groupbyinc/flux/common/inject/internal/Errors;Lcom/groupbyinc/flux/common/inject/TypeLiteral;Ljava/lang/reflect/Member;[Ljava/lang/annotation/Annotation;)Lcom/groupbyinc/flux/common/inject/Key; ? ?
? 0com/groupbyinc/flux/common/inject/spi/Dependency ? [(Lcom/groupbyinc/flux/common/inject/Key;)Lcom/groupbyinc/flux/common/inject/spi/Dependency; ! ?
? ? ? q getProvider U(Lcom/groupbyinc/flux/common/inject/Key;)Lcom/groupbyinc/flux/common/inject/Provider; ? ? ?
getReturnType K(Ljava/lang/reflect/Method;)Lcom/groupbyinc/flux/common/inject/TypeLiteral; ? ?
? getAnnotations $()[Ljava/lang/annotation/Annotation; ? ?
f ? 6com/groupbyinc/flux/common/inject/internal/Annotations ? findScopeAnnotation h(Lcom/groupbyinc/flux/common/inject/internal/Errors;[Ljava/lang/annotation/Annotation;)Ljava/lang/Class; ? ?
? ? getMessages ()Ljava/util/List; ? ?
? ? %com/groupbyinc/flux/common/inject/Key ? -com/groupbyinc/flux/common/inject/spi/Message ? addError 2(Lcom/groupbyinc/flux/common/inject/spi/Message;)V ? ? ? java/util/Collections ? unmodifiableSet (Ljava/util/Set;)Ljava/util/Set; ? ?
? ? ?(Lcom/groupbyinc/flux/common/inject/Key;Ljava/lang/reflect/Method;Ljava/lang/Object;Ljava/util/Set;Ljava/util/List;Ljava/lang/Class;)V
?
P ? key *Lcom/groupbyinc/flux/common/inject/Key<*>; 'Lcom/groupbyinc/flux/common/inject/Key; i I message /Lcom/groupbyinc/flux/common/inject/spi/Message; errors 3Lcom/groupbyinc/flux/common/inject/internal/Errors; dependencies FLjava/util/Set;>; Ljava/util/Set; parameterProviders ALjava/util/List;>; parameterTypes DLjava/util/List;>; parameterAnnotations
returnType 4Lcom/groupbyinc/flux/common/inject/TypeLiteral; ,Lcom/groupbyinc/flux/common/inject/Key; scopeAnnotation 5Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>; findBindingAnnotation ?(Lcom/groupbyinc/flux/common/inject/internal/Errors;Ljava/lang/reflect/Member;[Ljava/lang/annotation/Annotation;)Ljava/lang/annotation/Annotation; ? ?
? ? X(Lcom/groupbyinc/flux/common/inject/TypeLiteral;)Lcom/groupbyinc/flux/common/inject/Key; ! ?
? ? java/lang/annotation/Annotation ? y(Lcom/groupbyinc/flux/common/inject/TypeLiteral;Ljava/lang/annotation/Annotation;)Lcom/groupbyinc/flux/common/inject/Key; ! ?
? ? type member Ljava/lang/reflect/Member; annotations "[Ljava/lang/annotation/Annotation; bindingAnnotation !Ljava/lang/annotation/Annotation; equals o hashCode ? ?
? Signature Code LocalVariableTable LineNumberTable
StackMapTable LocalVariableTypeTable |(Lcom/groupbyinc/flux/common/inject/Binder;)Ljava/util/List;>; ?(Lcom/groupbyinc/flux/common/inject/Binder;Ljava/lang/reflect/Method;)Lcom/groupbyinc/flux/common/inject/internal/ProviderMethod; ?(Lcom/groupbyinc/flux/common/inject/internal/Errors;Lcom/groupbyinc/flux/common/inject/TypeLiteral;Ljava/lang/reflect/Member;[Ljava/lang/annotation/Annotation;)Lcom/groupbyinc/flux/common/inject/Key;
SourceFile 1
?
? ] *? *+? ? **? ? ? $? &? ? ' ( ? 3 4 5 6 ) * ? / *? .? ? / 0 ? <