class BasicObjectPermissionArgumentVoter implements AccessDecisionVoter<Object>, AfterInvocationProvider {

    @Override
    public boolean supports(Class clazz) {
        return MethodInvocation.class.isAssignableFrom(clazz)
                || ObjectPermission.class.isAssignableFrom(clazz) || Collection.class.isAssignableFrom(clazz);
    }

}