Probably you can cache it by AnnotationInstance, so maybe something 
like this instead:

class AnnotationProxyBuilder {
    private final Map annotationProxyMap = new ...;

    public <T> T getAnnotationProxy(final AnnotationInstance 
annotationInstance, final Class<T> annotationClass) {
        T annotationProxy = (T) annotationProxyMap.get( 
annotationInstance );
        if ( annotationProxy == null ) {
            annotationProxy = buildAnnotationProxy( annotationInstance, 
annotationClass );
            annotationProxyMap.put( annotationInstance, annotationProxy 
);
        }
        return annotationProxy;
    }

    private <T> T buildAnnotationProxy(final AnnotationInstance 
annotationInstance, final Class<T> annotationClass) {
        // as before...
    }
}



--
st...@hibernate.org
http://hibernate.org
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to