public AnnotatedType<X> create() {
      Map<Constructor<?>, Map<Integer, AnnotationStore>> constructorParameterAnnnotations = new HashMap<Constructor<?>, Map<Integer, AnnotationStore>>();
      Map<Constructor<?>, AnnotationStore> constructorAnnotations = new HashMap<Constructor<?>, AnnotationStore>();
      Map<Method, Map<Integer, AnnotationStore>> methodParameterAnnnotations = new HashMap<Method, Map<Integer, AnnotationStore>>();
      Map<Method, AnnotationStore> methodAnnotations = new HashMap<Method, AnnotationStore>();
      Map<Field, AnnotationStore> fieldAnnotations = new HashMap<Field, AnnotationStore>();

      for (Entry<Field, AnnotationBuilder> field : fields.entrySet()) {
         fieldAnnotations.put(field.getKey(), field.getValue().create());
      }

      for (Entry<Method, AnnotationBuilder> method : methods.entrySet()) {
         methodAnnotations.put(method.getKey(), method.getValue().create());
      }
      for (Entry<Method, Map<Integer, AnnotationBuilder>> parameters : methodParameters.entrySet()) {
         Map<Integer, AnnotationStore> parameterAnnotations = new HashMap<Integer, AnnotationStore>();
         methodParameterAnnnotations.put(parameters.getKey(), parameterAnnotations);
         for (Entry<Integer, AnnotationBuilder> parameter : parameters.getValue().entrySet()) {
            parameterAnnotations.put(parameter.getKey(), parameter.getValue().create());
         }
      }

      for (Entry<Constructor<?>, AnnotationBuilder> constructor : constructors.entrySet()) {
         constructorAnnotations.put(constructor.getKey(), constructor.getValue().create());
      }
      for (Entry<Constructor<?>, Map<Integer, AnnotationBuilder>> parameters : constructorParameters.entrySet()) {
         Map<Integer, AnnotationStore> parameterAnnotations = new HashMap<Integer, AnnotationStore>();
         constructorParameterAnnnotations.put(parameters.getKey(), parameterAnnotations);
         for (Entry<Integer, AnnotationBuilder> parameter : parameters.getValue().entrySet()) {
            parameterAnnotations.put(parameter.getKey(), parameter.getValue().create());
         }
      }

      return new AnnotatedTypeImpl<X>(javaClass, typeAnnotations.create(), fieldAnnotations, methodAnnotations, methodParameterAnnnotations, constructorAnnotations, constructorParameterAnnnotations, fieldTypes, methodParameterTypes, constructorParameterTypes);
   }
public AnnotatedType < X > create ( ) { Map < Constructor < ? > , Map < Integer , AnnotationStore > > constructorParameterAnnnotations = new HashMap < Constructor < ? > , Map < Integer , AnnotationStore > > ( ) ; Map < Constructor < ? > , AnnotationStore > constructorAnnotations = new HashMap < Constructor < ? > , AnnotationStore > ( ) ; Map < Method , Map < Integer , AnnotationStore > > methodParameterAnnnotations = new HashMap < Method , Map < Integer , AnnotationStore > > ( ) ; Map < Method , AnnotationStore > methodAnnotations = new HashMap < Method , AnnotationStore > ( ) ; Map < Field , AnnotationStore > fieldAnnotations = new HashMap < Field , AnnotationStore > ( ) ; for ( Entry < Field , AnnotationBuilder > field : fields . entrySet ( ) ) { fieldAnnotations . put ( field . getKey ( ) , field . getValue ( ) . create ( ) ) ; } for ( Entry < Method , AnnotationBuilder > method : methods . entrySet ( ) ) { methodAnnotations . put ( method . getKey ( ) , method . getValue ( ) . create ( ) ) ; } for ( Entry < Method , Map < Integer , AnnotationBuilder > > parameters : methodParameters . entrySet ( ) ) { Map < Integer , AnnotationStore > parameterAnnotations = new HashMap < Integer , AnnotationStore > ( ) ; methodParameterAnnnotations . put ( parameters . getKey ( ) , parameterAnnotations ) ; for ( Entry < Integer , AnnotationBuilder > parameter : parameters . getValue ( ) . entrySet ( ) ) { parameterAnnotations . put ( parameter . getKey ( ) , parameter . getValue ( ) . create ( ) ) ; } } for ( Entry < Constructor < ? > , AnnotationBuilder > constructor : constructors . entrySet ( ) ) { constructorAnnotations . put ( constructor . getKey ( ) , constructor . getValue ( ) . create ( ) ) ; } for ( Entry < Constructor < ? > , Map < Integer , AnnotationBuilder > > parameters : constructorParameters . entrySet ( ) ) { Map < Integer , AnnotationStore > parameterAnnotations = new HashMap < Integer , AnnotationStore > ( ) ; constructorParameterAnnnotations . put ( parameters . getKey ( ) , parameterAnnotations ) ; for ( Entry < Integer , AnnotationBuilder > parameter : parameters . getValue ( ) . entrySet ( ) ) { parameterAnnotations . put ( parameter . getKey ( ) , parameter . getValue ( ) . create ( ) ) ; } } return new AnnotatedTypeImpl < X > ( javaClass , typeAnnotations . create ( ) , fieldAnnotations , methodAnnotations , methodParameterAnnnotations , constructorAnnotations , constructorParameterAnnnotations , fieldTypes , methodParameterTypes , constructorParameterTypes ) ; }
Create an {@link AnnotatedType}. Any public members present on the
underlying class and not overridden by the builder will be automatically
added.