public static List < AnnotationResolver > getAnnotationResolvers ( GeneratorContext context , TreeLogger logger ) { // do this only the first time call if ( null == _annotationResolversRequested ) { // call additional AnnotationResolvers if there are some configured try { for ( String className : context . getPropertyOracle ( ) . getConfigurationProperty ( "org.fusesource.restygwt.annotationresolver" ) . getValues ( ) ) { logger . log ( TreeLogger . INFO , "classname to resolve: " + className ) ; Class < ? > clazz ; try { clazz = Class . forName ( className ) ; } catch ( ClassNotFoundException e ) { throw new RuntimeException ( "could not resolve class " + className + " " + e . getMessage ( ) ) ; } if ( null != clazz ) { try { logger . log ( TreeLogger . INFO , "add annotationresolver: " + clazz . getName ( ) ) ; addAnnotationResolver ( ( AnnotationResolver ) clazz . newInstance ( ) ) ; } catch ( InstantiationException e ) { throw new RuntimeException ( "could not instanciate class " + className + " " + e . getMessage ( ) ) ; } catch ( IllegalAccessException e ) { throw new RuntimeException ( "could not access class " + className + " " + e . getMessage ( ) ) ; } } else { throw new RuntimeException ( "could not create instance for classname " + className ) ; } } } catch ( BadPropertyValueException ignored ) { /* * ignored since there is no * * <set-configuration-property name="org.fusesource.restygwt.annotationresolver" * value="org.fusesource.restygwt.rebind.ModelChangeAnnotationResolver"/> */ logger . log ( TreeLogger . DEBUG , "no additional annotationresolvers found" ) ; } } // return a copy List < AnnotationResolver > ret = new ArrayList < AnnotationResolver > ( ) ; ret . addAll ( annotationResolvers ) ; return _annotationResolversRequested = ret ; }
access all annotationresolvers that are registered