@ Override public Object intercept ( Object obj , Method method , Object [ ] args , MethodProxy proxy ) throws Throwable { if ( method . getName ( ) . equals ( "annotationType" ) ) { return annotationType ; } else if ( method . getName ( ) . equals ( "toString" ) ) { return toString ( ) ; } else if ( method . getName ( ) . equals ( "equals" ) ) { return annotationEquals ( args [ 0 ] ) ; } else if ( method . getName ( ) . equals ( "hashCode" ) ) { return proxy . hashCode ( ) ; } else { return attributeData . get ( method . getName ( ) ) ; } }
Intercept all methods calls .