test_class.declarator: privilegeManager
test_class.modifier: private
test_class.original_string: private PrivilegeManagerImpl privilegeManager;
test_class.type: PrivilegeManagerImpl
test_class.var_name: privilegeManager
test_class.file: oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeManagerImplTest.java
test_class.identifier: PrivilegeManagerImplTest
test_class.superclass: extends AbstractSecurityTest
test_case.body: @Test
      public void testRegisterAggregated() throws Exception {
          privilegeManager.registerPrivilege("test:customPrivilege", false, new String[] { "jcr:read", "jcr:write" });
      }
test_case.class_method_signature: PrivilegeManagerImplTest.testRegisterAggregated()
test_case.full_signature: @Test public void testRegisterAggregated()
test_case.identifier: testRegisterAggregated
test_case.invocations: registerPrivilege
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testRegisterAggregated()
focal_class.declarator: log = LoggerFactory.getLogger(PrivilegeManagerImpl.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory.getLogger(PrivilegeManagerImpl.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: root
focal_class.modifier: private final
focal_class.original_string: private final Root root;
focal_class.type: Root
focal_class.var_name: root
focal_class.declarator: namePathMapper
focal_class.modifier: private final
focal_class.original_string: private final NamePathMapper namePathMapper;
focal_class.type: NamePathMapper
focal_class.var_name: namePathMapper
focal_class.file: oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeManagerImpl.java
focal_class.identifier: PrivilegeManagerImpl
focal_class.interfaces: implements PrivilegeManager
focal_class.class_method_signature: PrivilegeManagerImpl.PrivilegeManagerImpl(Root root, NamePathMapper namePathMapper)
focal_class.full_signature:   PrivilegeManagerImpl(Root root, NamePathMapper namePathMapper)
focal_class.identifier: PrivilegeManagerImpl
focal_class.parameters: (Root root, NamePathMapper namePathMapper)
focal_class.signature:  PrivilegeManagerImpl(Root root, NamePathMapper namePathMapper)
focal_class.class_method_signature: PrivilegeManagerImpl.getRegisteredPrivileges()
focal_class.full_signature: @NotNull @Override public Privilege[] getRegisteredPrivileges()
focal_class.identifier: getRegisteredPrivileges
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: ()
focal_class.return: Privilege[]
focal_class.signature: Privilege[] getRegisteredPrivileges()
focal_class.class_method_signature: PrivilegeManagerImpl.getPrivilege(@NotNull String privilegeName)
focal_class.full_signature: @NotNull @Override public Privilege getPrivilege(@NotNull String privilegeName)
focal_class.identifier: getPrivilege
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (@NotNull String privilegeName)
focal_class.return: Privilege
focal_class.signature: Privilege getPrivilege(@NotNull String privilegeName)
focal_class.class_method_signature: PrivilegeManagerImpl.registerPrivilege(@NotNull String privilegeName, boolean isAbstract,
                                         @Nullable String[] declaredAggregateNames)
focal_class.full_signature: @NotNull @Override public Privilege registerPrivilege(@NotNull String privilegeName, boolean isAbstract,
                                         @Nullable String[] declaredAggregateNames)
focal_class.identifier: registerPrivilege
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (@NotNull String privilegeName, boolean isAbstract,
                                         @Nullable String[] declaredAggregateNames)
focal_class.return: Privilege
focal_class.signature: Privilege registerPrivilege(@NotNull String privilegeName, boolean isAbstract,
                                         @Nullable String[] declaredAggregateNames)
focal_class.class_method_signature: PrivilegeManagerImpl.getWriteRoot()
focal_class.full_signature: @NotNull private Root getWriteRoot()
focal_class.identifier: getWriteRoot
focal_class.modifiers: @NotNull private
focal_class.parameters: ()
focal_class.return: Root
focal_class.signature: Root getWriteRoot()
focal_class.class_method_signature: PrivilegeManagerImpl.getOakNames(@Nullable String[] jcrNames)
focal_class.full_signature: @NotNull private Set<String> getOakNames(@Nullable String[] jcrNames)
focal_class.identifier: getOakNames
focal_class.modifiers: @NotNull private
focal_class.parameters: (@Nullable String[] jcrNames)
focal_class.return: Set<String>
focal_class.signature: Set<String> getOakNames(@Nullable String[] jcrNames)
focal_class.class_method_signature: PrivilegeManagerImpl.getOakName(@Nullable String jcrName)
focal_class.full_signature: @NotNull private String getOakName(@Nullable String jcrName)
focal_class.identifier: getOakName
focal_class.modifiers: @NotNull private
focal_class.parameters: (@Nullable String jcrName)
focal_class.return: String
focal_class.signature: String getOakName(@Nullable String jcrName)
focal_class.class_method_signature: PrivilegeManagerImpl.getPrivilege(@NotNull PrivilegeDefinition definition)
focal_class.full_signature: @NotNull private Privilege getPrivilege(@NotNull PrivilegeDefinition definition)
focal_class.identifier: getPrivilege
focal_class.modifiers: @NotNull private
focal_class.parameters: (@NotNull PrivilegeDefinition definition)
focal_class.return: Privilege
focal_class.signature: Privilege getPrivilege(@NotNull PrivilegeDefinition definition)
focal_class.class_method_signature: PrivilegeManagerImpl.getPrivilegeDefinitions()
focal_class.full_signature: @NotNull private PrivilegeDefinition[] getPrivilegeDefinitions()
focal_class.identifier: getPrivilegeDefinitions
focal_class.modifiers: @NotNull private
focal_class.parameters: ()
focal_class.return: PrivilegeDefinition[]
focal_class.signature: PrivilegeDefinition[] getPrivilegeDefinitions()
focal_class.class_method_signature: PrivilegeManagerImpl.getPrivilegeDefinition(@NotNull String oakName)
focal_class.full_signature: @Nullable private PrivilegeDefinition getPrivilegeDefinition(@NotNull String oakName)
focal_class.identifier: getPrivilegeDefinition
focal_class.modifiers: @Nullable private
focal_class.parameters: (@NotNull String oakName)
focal_class.return: PrivilegeDefinition
focal_class.signature: PrivilegeDefinition getPrivilegeDefinition(@NotNull String oakName)
focal_class.class_method_signature: PrivilegeManagerImpl.getReader()
focal_class.full_signature: @NotNull private PrivilegeDefinitionReader getReader()
focal_class.identifier: getReader
focal_class.modifiers: @NotNull private
focal_class.parameters: ()
focal_class.return: PrivilegeDefinitionReader
focal_class.signature: PrivilegeDefinitionReader getReader()
focal_method.body: @NotNull
      @Override
      public Privilege registerPrivilege(@NotNull String privilegeName, boolean isAbstract,
                                         @Nullable String[] declaredAggregateNames) throws RepositoryException {
          if (root.hasPendingChanges()) {
              throw new InvalidItemStateException("Attempt to register a new privilege while there are pending changes.");
          }
          if (privilegeName == null || privilegeName.isEmpty()) {
              throw new RepositoryException("Invalid privilege name " + privilegeName);
          }
          PrivilegeDefinition definition = new ImmutablePrivilegeDefinition(getOakName(privilegeName), isAbstract, getOakNames(declaredAggregateNames));
          PrivilegeDefinitionWriter writer = new PrivilegeDefinitionWriter(getWriteRoot());
          writer.writeDefinition(definition);
  
          // refresh the current root to make sure the definition is visible
          root.refresh();
          return getPrivilege(definition);
      }
focal_method.class_method_signature: PrivilegeManagerImpl.registerPrivilege(@NotNull String privilegeName, boolean isAbstract,
                                         @Nullable String[] declaredAggregateNames)
focal_method.full_signature: @NotNull @Override public Privilege registerPrivilege(@NotNull String privilegeName, boolean isAbstract,
                                         @Nullable String[] declaredAggregateNames)
focal_method.identifier: registerPrivilege
focal_method.invocations: hasPendingChanges isEmpty getOakName getOakNames getWriteRoot writeDefinition refresh getPrivilege
focal_method.modifiers: @NotNull @Override public
focal_method.parameters: (@NotNull String privilegeName, boolean isAbstract,
                                         @Nullable String[] declaredAggregateNames)
focal_method.return: Privilege
focal_method.signature: Privilege registerPrivilege(@NotNull String privilegeName, boolean isAbstract,
                                         @Nullable String[] declaredAggregateNames)