code: private <A extends Annotation> AnnotationConverter<A> getConverter(Annotation annotation) {
  		MappingOption mappingOption = annotation.annotationType().getAnnotation( MappingOption.class );
  		if ( mappingOption == null ) {
  			return null;
  		}
  
  		// wrong type would be a programming error of the annotation developer
  		@SuppressWarnings("unchecked")
  		Class<? extends AnnotationConverter<A>> converterClass = (Class<? extends AnnotationConverter<A>>) mappingOption.value();
  
  		try {
  			return converterClass.newInstance();
  		}
  		catch (Exception e) {
  			throw log.cannotConvertAnnotation( converterClass, e );
  		}
  	}
docs: Returns a converter instance for the given annotation.
  
  @param annotation the annotation
  @return a converter instance or {@code null} if the given annotation is no option annotation