test_class.declarator: bitsProvider
test_class.modifier: private
test_class.original_string: private PrivilegeBitsProvider bitsProvider;
test_class.type: PrivilegeBitsProvider
test_class.var_name: bitsProvider
test_class.declarator: grantAll
test_class.modifier: private
test_class.original_string: private PermissionEntry grantAll;
test_class.type: PermissionEntry
test_class.var_name: grantAll
test_class.declarator: denyAll
test_class.modifier: private
test_class.original_string: private PermissionEntry denyAll;
test_class.type: PermissionEntry
test_class.var_name: denyAll
test_class.file: oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/ReadStatusTest.java
test_class.identifier: ReadStatusTest
test_class.superclass: extends AbstractSecurityTest
test_case.body: @Test
      public void testSkippedAllowed() {
          ReadStatus rs = ReadStatus.create(grantAll, Permissions.ALL, true);
  
          assertAllowed(rs, false);
          assertSame(rs, ReadStatus.create(grantAll, Permissions.READ, true));
      }
test_case.class_method_signature: ReadStatusTest.testSkippedAllowed()
test_case.full_signature: @Test public void testSkippedAllowed()
test_case.identifier: testSkippedAllowed
test_case.invocations: create assertAllowed assertSame create
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testSkippedAllowed()
focal_class.declarator: THIS = 1
focal_class.modifier: private static final
focal_class.original_string: private static final int THIS = 1;
focal_class.type: int
focal_class.var_name: THIS
focal_class.declarator: PROPERTIES = 2
focal_class.modifier: private static final
focal_class.original_string: private static final int PROPERTIES = 2;
focal_class.type: int
focal_class.var_name: PROPERTIES
focal_class.declarator: CHILD_NODES = 4
focal_class.modifier: private static final
focal_class.original_string: private static final int CHILD_NODES = 4;
focal_class.type: int
focal_class.var_name: CHILD_NODES
focal_class.declarator: THIS_PROPERTIES = THIS | PROPERTIES
focal_class.modifier: private static final
focal_class.original_string: private static final int THIS_PROPERTIES = THIS | PROPERTIES;
focal_class.type: int
focal_class.var_name: THIS_PROPERTIES
focal_class.declarator: ALL = THIS | PROPERTIES | CHILD_NODES
focal_class.modifier: private static final
focal_class.original_string: private static final int ALL = THIS | PROPERTIES | CHILD_NODES;
focal_class.type: int
focal_class.var_name: ALL
focal_class.declarator: ALLOW_THIS = new ReadStatus(THIS, true)
focal_class.modifier: private static final
focal_class.original_string: private static final ReadStatus ALLOW_THIS = new ReadStatus(THIS, true);
focal_class.type: ReadStatus
focal_class.var_name: ALLOW_THIS
focal_class.declarator: ALLOW_THIS_PROPERTIES = new ReadStatus(THIS_PROPERTIES, true)
focal_class.modifier: private static final
focal_class.original_string: private static final ReadStatus ALLOW_THIS_PROPERTIES = new ReadStatus(THIS_PROPERTIES, true);
focal_class.type: ReadStatus
focal_class.var_name: ALLOW_THIS_PROPERTIES
focal_class.declarator: ALLOW_ALL = new ReadStatus(ALL, true)
focal_class.modifier: static final
focal_class.original_string: static final ReadStatus ALLOW_ALL = new ReadStatus(ALL, true);
focal_class.type: ReadStatus
focal_class.var_name: ALLOW_ALL
focal_class.declarator: DENY_THIS = new ReadStatus(THIS, false)
focal_class.modifier: static final
focal_class.original_string: static final ReadStatus DENY_THIS = new ReadStatus(THIS, false);
focal_class.type: ReadStatus
focal_class.var_name: DENY_THIS
focal_class.declarator: DENY_THIS_PROPERTIES = new ReadStatus(THIS_PROPERTIES, false)
focal_class.modifier: private static final
focal_class.original_string: private static final ReadStatus DENY_THIS_PROPERTIES = new ReadStatus(THIS_PROPERTIES, false);
focal_class.type: ReadStatus
focal_class.var_name: DENY_THIS_PROPERTIES
focal_class.declarator: DENY_ALL = new ReadStatus(ALL, false)
focal_class.modifier: static final
focal_class.original_string: static final ReadStatus DENY_ALL = new ReadStatus(ALL, false);
focal_class.type: ReadStatus
focal_class.var_name: DENY_ALL
focal_class.declarator: READ_BITS = PrivilegeBits.BUILT_IN.get(PrivilegeConstants.JCR_READ)
focal_class.modifier: private static final
focal_class.original_string: private static final PrivilegeBits READ_BITS = PrivilegeBits.BUILT_IN.get(PrivilegeConstants.JCR_READ);
focal_class.type: PrivilegeBits
focal_class.var_name: READ_BITS
focal_class.declarator: READ_PROPERTIES_BITS = PrivilegeBits.BUILT_IN.get(PrivilegeConstants.REP_READ_PROPERTIES)
focal_class.modifier: private static final
focal_class.original_string: private static final PrivilegeBits READ_PROPERTIES_BITS = PrivilegeBits.BUILT_IN.get(PrivilegeConstants.REP_READ_PROPERTIES);
focal_class.type: PrivilegeBits
focal_class.var_name: READ_PROPERTIES_BITS
focal_class.declarator: status
focal_class.modifier: private final
focal_class.original_string: private final int status;
focal_class.type: int
focal_class.var_name: status
focal_class.declarator: isAllow
focal_class.modifier: private final
focal_class.original_string: private final boolean isAllow;
focal_class.type: boolean
focal_class.var_name: isAllow
focal_class.file: oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/ReadStatus.java
focal_class.identifier: ReadStatus
focal_class.class_method_signature: ReadStatus.ReadStatus(int status, boolean isAllow)
focal_class.full_signature: private  ReadStatus(int status, boolean isAllow)
focal_class.identifier: ReadStatus
focal_class.modifiers: private
focal_class.parameters: (int status, boolean isAllow)
focal_class.signature:  ReadStatus(int status, boolean isAllow)
focal_class.class_method_signature: ReadStatus.create(PermissionEntry pe, long permission, boolean skipped)
focal_class.full_signature: static ReadStatus create(PermissionEntry pe, long permission, boolean skipped)
focal_class.identifier: create
focal_class.modifiers: static
focal_class.parameters: (PermissionEntry pe, long permission, boolean skipped)
focal_class.return: ReadStatus
focal_class.signature: ReadStatus create(PermissionEntry pe, long permission, boolean skipped)
focal_class.class_method_signature: ReadStatus.allowsThis()
focal_class.full_signature:  boolean allowsThis()
focal_class.identifier: allowsThis
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean allowsThis()
focal_class.class_method_signature: ReadStatus.allowsProperties()
focal_class.full_signature:  boolean allowsProperties()
focal_class.identifier: allowsProperties
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean allowsProperties()
focal_class.class_method_signature: ReadStatus.allowsAll()
focal_class.full_signature:  boolean allowsAll()
focal_class.identifier: allowsAll
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean allowsAll()
focal_method.body: static ReadStatus create(PermissionEntry pe, long permission, boolean skipped) {
          /*
          best effort: read status is only calculated if
          - no permission entries have been filtered out (e.g. an entry that
            only applies to certain properties and thus not to the target tree itself)
          - the target does not define access control content
          - the matching entry doesn't contain any restrictions
          */
          if (skipped || permission == Permissions.READ_ACCESS_CONTROL || pe.restriction != RestrictionPattern.EMPTY) {
              return (pe.isAllow) ? ALLOW_THIS : DENY_THIS;
          } else {
              if (pe.privilegeBits.includes(READ_BITS)) {
                  return (pe.isAllow) ? ALLOW_ALL : DENY_ALL;
              } else if (pe.privilegeBits.includes(READ_PROPERTIES_BITS)) {
                  return (pe.isAllow) ? ALLOW_THIS_PROPERTIES : DENY_THIS_PROPERTIES;
              } else {
                  return (pe.isAllow) ? ALLOW_THIS : DENY_THIS;
              }
          }
      }
focal_method.class_method_signature: ReadStatus.create(PermissionEntry pe, long permission, boolean skipped)
focal_method.full_signature: static ReadStatus create(PermissionEntry pe, long permission, boolean skipped)
focal_method.identifier: create
focal_method.invocations: includes includes
focal_method.modifiers: static
focal_method.parameters: (PermissionEntry pe, long permission, boolean skipped)
focal_method.return: ReadStatus
focal_method.signature: ReadStatus create(PermissionEntry pe, long permission, boolean skipped)