@Internal
    private static void pushAnnotationAttributes(Type declaringType, ClassVisitor declaringClassWriter, GeneratorAdapter generatorAdapter, Map<? extends CharSequence, Object> annotationData, Map<String, GeneratorAdapter> loadTypeMethods) {
        int totalSize = annotationData.size() * 2;
        // start a new array
        pushNewArray(generatorAdapter, Object.class, totalSize);
        int i = 0;
        for (Map.Entry<? extends CharSequence, Object> entry : annotationData.entrySet()) {
            // use the property name as the key
            String memberName = entry.getKey().toString();
            pushStoreStringInArray(generatorAdapter, i++, totalSize, memberName);
            // use the property type as the value
            Object value = entry.getValue();
            pushStoreInArray(generatorAdapter, i++, totalSize, () ->
                    pushValue(declaringType, declaringClassWriter, generatorAdapter, value, loadTypeMethods)
            );
        }
        // invoke the AbstractBeanDefinition.createMap method
        generatorAdapter.invokeStatic(Type.getType(AnnotationUtil.class), METHOD_MAP_OF);
    }
@ Internal private static void pushAnnotationAttributes ( Type declaringType , ClassVisitor declaringClassWriter , GeneratorAdapter generatorAdapter , Map < ? extends CharSequence , Object > annotationData , Map < String , GeneratorAdapter > loadTypeMethods ) { int totalSize = annotationData . size ( ) * 2 ; pushNewArray ( generatorAdapter , Object . class , totalSize ) ; int i = 0 ; for ( Map . Entry < ? extends CharSequence , Object > entry : annotationData . entrySet ( ) ) { String memberName = entry . getKey ( ) . toString ( ) ; pushStoreStringInArray ( generatorAdapter , i ++ , totalSize , memberName ) ; Object value = entry . getValue ( ) ; pushStoreInArray ( generatorAdapter , i ++ , totalSize , ( ) -> pushValue ( declaringType , declaringClassWriter , generatorAdapter , value , loadTypeMethods ) ) ; } generatorAdapter . invokeStatic ( Type . getType ( AnnotationUtil . class ) , METHOD_MAP_OF ) ; }
Writes annotation attributes to the given generator.

@param declaringClassWriter The declaring class
@param generatorAdapter     The generator adapter
@param annotationData       The annotation data
@param loadTypeMethods      Generated methods that load types