@@ -48,13 +48,21 @@ protected void validate(Element element, ElementValidation validation) {
4848 @ Override
4949 public void process (Element element , EComponentHolder holder ) throws Exception {
5050 TypeElement annotatedElement = holder .getAnnotatedElement ();
51- String delegateClassName = annotatedElement .getQualifiedName ().toString () + "PermissionsDispatcher" ;
52- AbstractJClass delegateClass = getJClass (delegateClassName );
53- PermissionDispatcherHolder permissionDispatcherHolder = holder .getPluginHolder (new PermissionDispatcherHolder (holder ));
51+ if (annotatedElementHasRuntimePermissions (annotatedElement )) {
52+ String delegateClassName = annotatedElement .getQualifiedName ().toString () + "PermissionsDispatcher" ;
53+ AbstractJClass delegateClass = getJClass (delegateClassName );
54+ PermissionDispatcherHolder permissionDispatcherHolder = holder .getPluginHolder (new PermissionDispatcherHolder (holder ));
55+
56+ setDispatcherCallbacks (element , delegateClass , permissionDispatcherHolder );
57+ JFieldVar dispatcherCalledField = permissionDispatcherHolder .getPermissionDispatcherCalledField ();
58+ setPermissionMethods (element , holder , delegateClass , dispatcherCalledField );
59+ }
60+ }
5461
55- setDispatcherCallbacks (element , delegateClass , permissionDispatcherHolder );
56- JFieldVar dispatcherCalledField = permissionDispatcherHolder .getPermissionDispatcherCalledField ();
57- setPermissionMethods (element , holder , delegateClass , dispatcherCalledField );
62+ private boolean annotatedElementHasRuntimePermissions (TypeElement annotatedElement ) {
63+ return annotatedElement .getAnnotationMirrors ().stream ()
64+ .map (annotationMirror -> annotationMirror .getAnnotationType ().asElement ().getSimpleName ().toString ())
65+ .anyMatch (annotation -> annotation .contains ("RuntimePermissions" ));
5866 }
5967
6068 private void setPermissionMethods (Element element , EComponentHolder holder , AbstractJClass delegateClass , JFieldVar dispatcherCalledField ) {
0 commit comments