private PermissionHandler getHandlerForResource(Object resource) { PermissionHandler handler = null; if (resource.getClass().isAnnotationPresent(PermissionsHandledBy.class)) { Class<? extends PermissionHandler> handlerClass = resource.getClass().getAnnotation(PermissionsHandledBy.class).value(); if (handlerClass != PermissionHandler.class) { try { handler = handlerClass.newInstance(); classHandlers.put(resource.getClass(), handler); } catch (Exception ex) { throw new RuntimeException("Error instantiating IdentifierStrategy for object " + resource, ex); } } } for (PermissionHandler s : registeredHandlers) { if (s.canHandle(resource.getClass())) { handler = s; Class<?> resourceClassKey = resource.getClass(); if (Class.class.isInstance(resource)) { resourceClassKey = (Class<?>) resource; } classHandlers.put(resourceClassKey, handler); break; } } return handler; }
private PermissionHandler getHandlerForResource(Object resource) { PermissionHandler handler = null; if (resource.getClass().isAnnotationPresent(PermissionsHandledBy.class)) { Class<? extends PermissionHandler> handlerClass = resource.getClass().getAnnotation(PermissionsHandledBy.class).value(); if (handlerClass != PermissionHandler.class) { try { handler = handlerClass.newInstance(); classHandlers.put(resource.getClass(), handler); } catch (Exception ex) { throw new RuntimeException("Error instantiating IdentifierStrategy for object " + resource, ex); } } } for (PermissionHandler s : registeredHandlers) { if (s.canHandle(resource.getClass())) { handler = s; Class<?> resourceClassKey = resource.getClass(); if (Class.class.isInstance(resource)) { resourceClassKey = (Class<?>) resource; } classHandlers.put(resourceClassKey, handler); break; } } return handler; }