private Collection < MethodMetadata < ? , ? > > getMethodMetadataOfType ( AnnotatedType annotatedType , Collection < AnnotatedMethod > annotatedMethods ) { Collection < MethodMetadata < ? , ? > > methodMetadataOfType = new ArrayList <> ( ) ; // Collect the getter methods as they provide annotations holding meta // information also to be applied to setters for ( AnnotatedMethod annotatedMethod : annotatedMethods ) { MethodMetadata < ? , ? > methodMetadata ; ImplementedBy implementedBy = annotatedMethod . getAnnotation ( ImplementedBy . class ) ; ResultOf resultOf = annotatedMethod . getAnnotation ( ResultOf . class ) ; if ( implementedBy != null ) { methodMetadata = new ImplementedByMethodMetadata <> ( annotatedMethod , implementedBy . value ( ) , metadataFactory . createImplementedByMetadata ( annotatedMethod ) ) ; } else if ( resultOf != null ) { methodMetadata = createResultOfMetadata ( annotatedMethod , resultOf ) ; } else if ( annotatedMethod instanceof PropertyMethod ) { PropertyMethod propertyMethod = ( PropertyMethod ) annotatedMethod ; Transient transientAnnotation = propertyMethod . getAnnotationOfProperty ( Transient . class ) ; if ( transientAnnotation != null ) { methodMetadata = new TransientPropertyMethodMetadata ( propertyMethod ) ; } else { methodMetadata = createPropertyMethodMetadata ( annotatedType , propertyMethod ) ; } } else { methodMetadata = new UnsupportedOperationMethodMetadata ( ( UserMethod ) annotatedMethod ) ; } methodMetadataOfType . add ( methodMetadata ) ; } return methodMetadataOfType ; }
Return the collection of method metadata from the given collection of annotated methods .