test_class.declarator: testPrivileges
test_class.modifier: private
test_class.original_string: private Privilege[] testPrivileges;
test_class.type: Privilege[]
test_class.var_name: testPrivileges
test_class.file: oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACLTest.java
test_class.identifier: ImmutableACLTest
test_class.superclass: extends AbstractAccessControlListTest
test_case.body: @Test
      public void testHashCode() throws Exception {
          RestrictionProvider rp = getRestrictionProvider();
          ACE ace1 = createEntry(false, PrivilegeConstants.JCR_VERSION_MANAGEMENT);
          ACE ace2 = createEntry(true, PrivilegeConstants.JCR_READ, PrivilegeConstants.JCR_ADD_CHILD_NODES);
          ACE ace2b = createEntry(true, PrivilegeConstants.REP_READ_NODES, PrivilegeConstants.REP_READ_PROPERTIES, PrivilegeConstants.JCR_ADD_CHILD_NODES);
  
          JackrabbitAccessControlList acl = createACL(ace1, ace2);
          JackrabbitAccessControlList repoAcl = createACL((String) null, ace1, ace2);
  
          int hc = acl.hashCode();
          assertTrue(hc == createACL(ace1, ace2).hashCode());
          assertTrue(hc == createACL(ace1, ace2b).hashCode());
  
          assertTrue(repoAcl.hashCode() == createACL((String) null, ace1, ace2b).hashCode());
  
          assertFalse(hc == createACL(ace2, ace1).hashCode());
          assertFalse(hc == repoAcl.hashCode());
          assertFalse(hc == createEmptyACL().hashCode());
          assertFalse(hc == createACL("/anotherPath", ace1, ace2).hashCode());
          assertFalse(hc == new TestACL("/anotherPath", rp, getNamePathMapper(), ace1, ace2).hashCode());
          assertFalse(hc == new TestACL("/anotherPath", rp, getNamePathMapper(), ace1, ace2).hashCode());
          assertFalse(hc == new TestACL("/anotherPath", rp, getNamePathMapper()).hashCode());
          assertFalse(hc == new TestACL(getTestPath(), rp, getNamePathMapper(), ace1, ace2).hashCode());
      }
test_case.class_method_signature: ImmutableACLTest.testHashCode()
test_case.full_signature: @Test public void testHashCode()
test_case.identifier: testHashCode
test_case.invocations: getRestrictionProvider createEntry createEntry createEntry createACL createACL hashCode assertTrue hashCode createACL assertTrue hashCode createACL assertTrue hashCode hashCode createACL assertFalse hashCode createACL assertFalse hashCode assertFalse hashCode createEmptyACL assertFalse hashCode createACL assertFalse hashCode getNamePathMapper assertFalse hashCode getNamePathMapper assertFalse hashCode getNamePathMapper assertFalse hashCode getTestPath getNamePathMapper
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testHashCode()
focal_class.declarator: entries
focal_class.modifier: private final
focal_class.original_string: private final List<JackrabbitAccessControlEntry> entries;
focal_class.type: List<JackrabbitAccessControlEntry>
focal_class.var_name: entries
focal_class.declarator: restrictionProvider
focal_class.modifier: private final
focal_class.original_string: private final RestrictionProvider restrictionProvider;
focal_class.type: RestrictionProvider
focal_class.var_name: restrictionProvider
focal_class.declarator: hashCode
focal_class.modifier: private
focal_class.original_string: private int hashCode;
focal_class.type: int
focal_class.var_name: hashCode
focal_class.file: oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java
focal_class.identifier: ImmutableACL
focal_class.class_method_signature: ImmutableACL.ImmutableACL(@Nullable String oakPath,
                          @NotNull List<? extends JackrabbitAccessControlEntry> entries,
                          @NotNull RestrictionProvider restrictionProvider,
                          @NotNull NamePathMapper namePathMapper)
focal_class.full_signature: public  ImmutableACL(@Nullable String oakPath,
                          @NotNull List<? extends JackrabbitAccessControlEntry> entries,
                          @NotNull RestrictionProvider restrictionProvider,
                          @NotNull NamePathMapper namePathMapper)
focal_class.identifier: ImmutableACL
focal_class.modifiers: public
focal_class.parameters: (@Nullable String oakPath,
                          @NotNull List<? extends JackrabbitAccessControlEntry> entries,
                          @NotNull RestrictionProvider restrictionProvider,
                          @NotNull NamePathMapper namePathMapper)
focal_class.signature:  ImmutableACL(@Nullable String oakPath,
                          @NotNull List<? extends JackrabbitAccessControlEntry> entries,
                          @NotNull RestrictionProvider restrictionProvider,
                          @NotNull NamePathMapper namePathMapper)
focal_class.class_method_signature: ImmutableACL.ImmutableACL(@NotNull AbstractAccessControlList accessControlList)
focal_class.full_signature: public  ImmutableACL(@NotNull AbstractAccessControlList accessControlList)
focal_class.identifier: ImmutableACL
focal_class.modifiers: public
focal_class.parameters: (@NotNull AbstractAccessControlList accessControlList)
focal_class.signature:  ImmutableACL(@NotNull AbstractAccessControlList accessControlList)
focal_class.class_method_signature: ImmutableACL.removeAccessControlEntry(AccessControlEntry ace)
focal_class.full_signature: @Override public void removeAccessControlEntry(AccessControlEntry ace)
focal_class.identifier: removeAccessControlEntry
focal_class.modifiers: @Override public
focal_class.parameters: (AccessControlEntry ace)
focal_class.return: void
focal_class.signature: void removeAccessControlEntry(AccessControlEntry ace)
focal_class.class_method_signature: ImmutableACL.addEntry(@NotNull Principal principal, @NotNull Privilege[] privileges,
                              boolean isAllow, @Nullable Map<String, Value> restrictions)
focal_class.full_signature: @Override public boolean addEntry(@NotNull Principal principal, @NotNull Privilege[] privileges,
                              boolean isAllow, @Nullable Map<String, Value> restrictions)
focal_class.identifier: addEntry
focal_class.modifiers: @Override public
focal_class.parameters: (@NotNull Principal principal, @NotNull Privilege[] privileges,
                              boolean isAllow, @Nullable Map<String, Value> restrictions)
focal_class.return: boolean
focal_class.signature: boolean addEntry(@NotNull Principal principal, @NotNull Privilege[] privileges,
                              boolean isAllow, @Nullable Map<String, Value> restrictions)
focal_class.class_method_signature: ImmutableACL.addEntry(@NotNull Principal principal, @NotNull Privilege[] privileges, boolean isAllow, @Nullable Map<String, Value> restrictions, @Nullable Map<String, Value[]> mvRestrictions)
focal_class.full_signature: @Override public boolean addEntry(@NotNull Principal principal, @NotNull Privilege[] privileges, boolean isAllow, @Nullable Map<String, Value> restrictions, @Nullable Map<String, Value[]> mvRestrictions)
focal_class.identifier: addEntry
focal_class.modifiers: @Override public
focal_class.parameters: (@NotNull Principal principal, @NotNull Privilege[] privileges, boolean isAllow, @Nullable Map<String, Value> restrictions, @Nullable Map<String, Value[]> mvRestrictions)
focal_class.return: boolean
focal_class.signature: boolean addEntry(@NotNull Principal principal, @NotNull Privilege[] privileges, boolean isAllow, @Nullable Map<String, Value> restrictions, @Nullable Map<String, Value[]> mvRestrictions)
focal_class.class_method_signature: ImmutableACL.orderBefore(@NotNull AccessControlEntry srcEntry, @Nullable AccessControlEntry destEntry)
focal_class.full_signature: @Override public void orderBefore(@NotNull AccessControlEntry srcEntry, @Nullable AccessControlEntry destEntry)
focal_class.identifier: orderBefore
focal_class.modifiers: @Override public
focal_class.parameters: (@NotNull AccessControlEntry srcEntry, @Nullable AccessControlEntry destEntry)
focal_class.return: void
focal_class.signature: void orderBefore(@NotNull AccessControlEntry srcEntry, @Nullable AccessControlEntry destEntry)
focal_class.class_method_signature: ImmutableACL.getEntries()
focal_class.full_signature: @NotNull @Override public List<JackrabbitAccessControlEntry> getEntries()
focal_class.identifier: getEntries
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: ()
focal_class.return: List<JackrabbitAccessControlEntry>
focal_class.signature: List<JackrabbitAccessControlEntry> getEntries()
focal_class.class_method_signature: ImmutableACL.getRestrictionProvider()
focal_class.full_signature: @NotNull @Override public RestrictionProvider getRestrictionProvider()
focal_class.identifier: getRestrictionProvider
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: ()
focal_class.return: RestrictionProvider
focal_class.signature: RestrictionProvider getRestrictionProvider()
focal_class.class_method_signature: ImmutableACL.hashCode()
focal_class.full_signature: @Override public int hashCode()
focal_class.identifier: hashCode
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int hashCode()
focal_class.class_method_signature: ImmutableACL.equals(Object obj)
focal_class.full_signature: @Override public boolean equals(Object obj)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object obj)
focal_class.return: boolean
focal_class.signature: boolean equals(Object obj)
focal_class.superclass: extends AbstractAccessControlList
focal_method.body: @Override
      public int hashCode() {
          if (hashCode == 0) {
              hashCode = Objects.hashCode(getOakPath(), entries);
          }
          return hashCode;
      }
focal_method.class_method_signature: ImmutableACL.hashCode()
focal_method.full_signature: @Override public int hashCode()
focal_method.identifier: hashCode
focal_method.invocations: hashCode getOakPath
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: int
focal_method.signature: int hashCode()