public AnnotationSource<?> addAnnotation(AnnotationTargetSource annotationTargetSource, Annotation annotation) { AnnotationSource<?> newAnnotationSource = annotationTargetSource.addAnnotation(); newAnnotationSource.setName(annotation.getClassName()); AnnotationDefinition annotationDefinition = annotation.getAnnotationDefinition(); if (!annotationDefinition.isMarker()) { for (AnnotationValuePairDefinition memberDefinition : annotationDefinition.getValuePairs()) { Object value = annotation.getValue(memberDefinition.getName()); if (value != null) { addMemberValue(newAnnotationSource, memberDefinition, value); } } } return newAnnotationSource; }