test_class.declarator: root
test_class.modifier: private
test_class.original_string: private Root root;
test_class.type: Root
test_class.var_name: root
test_class.declarator: defaultConfig
test_class.modifier: private
test_class.original_string: private ConfigurationParameters defaultConfig;
test_class.type: ConfigurationParameters
test_class.var_name: defaultConfig
test_class.declarator: defaultUserPath
test_class.modifier: private
test_class.original_string: private String defaultUserPath;
test_class.type: String
test_class.var_name: defaultUserPath
test_class.declarator: defaultGroupPath
test_class.modifier: private
test_class.original_string: private String defaultGroupPath;
test_class.type: String
test_class.var_name: defaultGroupPath
test_class.declarator: customOptions
test_class.modifier: private
test_class.original_string: private Map<String, Object> customOptions;
test_class.type: Map<String, Object>
test_class.var_name: customOptions
test_class.declarator: customUserPath = "/home/users"
test_class.modifier: private
test_class.original_string: private String customUserPath = "/home/users";
test_class.type: String
test_class.var_name: customUserPath
test_class.declarator: customGroupPath = "/home/groups"
test_class.modifier: private
test_class.original_string: private String customGroupPath = "/home/groups";
test_class.type: String
test_class.var_name: customGroupPath
test_class.file: oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserProviderTest.java
test_class.identifier: UserProviderTest
test_case.body: @Test
      public void testCreateWithCollidingFolder() throws Exception {
          Tree ut = mock(Tree.class);
  
          Tree t = mock(Tree.class);
          when(t.getParent()).thenReturn(t);
          when(t.exists()).thenReturn(true);
          when(t.isRoot()).thenReturn(true);
          when(t.hasChild("uid")).thenReturn(true, false);
          when(t.addChild("uid")).thenReturn(ut);
          when(t.getChild(anyString())).thenReturn(t);
          when(t.getPath()).thenReturn(UserConstants.DEFAULT_USER_PATH);
          when(t.getProperty(JCR_PRIMARYTYPE)).thenReturn(PropertyStates.createProperty(JCR_PRIMARYTYPE, NT_REP_AUTHORIZABLE_FOLDER, Type.NAME));
  
          Root r = when(mock(Root.class).getTree(anyString())).thenReturn(t).getMock();
          when(r.getContentSession()).thenReturn(root.getContentSession());
  
          UserProvider up = new UserProvider(r, ConfigurationParameters.EMPTY);
          Tree tree = up.createUser("uid", null);
          assertSame(ut, tree);
      }
test_case.class_method_signature: UserProviderTest.testCreateWithCollidingFolder()
test_case.full_signature: @Test public void testCreateWithCollidingFolder()
test_case.identifier: testCreateWithCollidingFolder
test_case.invocations: mock mock thenReturn when getParent thenReturn when exists thenReturn when isRoot thenReturn when hasChild thenReturn when addChild thenReturn when getChild anyString thenReturn when getPath thenReturn when getProperty createProperty getMock thenReturn when getTree mock anyString thenReturn when getContentSession getContentSession createUser assertSame
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCreateWithCollidingFolder()
focal_class.declarator: log = LoggerFactory.getLogger(UserProvider.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory.getLogger(UserProvider.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: DELIMITER = "/"
focal_class.modifier: private static final
focal_class.original_string: private static final String DELIMITER = "/";
focal_class.type: String
focal_class.var_name: DELIMITER
focal_class.declarator: defaultDepth
focal_class.modifier: private final
focal_class.original_string: private final int defaultDepth;
focal_class.type: int
focal_class.var_name: defaultDepth
focal_class.declarator: groupPath
focal_class.modifier: private final
focal_class.original_string: private final String groupPath;
focal_class.type: String
focal_class.var_name: groupPath
focal_class.declarator: userPath
focal_class.modifier: private final
focal_class.original_string: private final String userPath;
focal_class.type: String
focal_class.var_name: userPath
focal_class.file: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java
focal_class.identifier: UserProvider
focal_class.class_method_signature: UserProvider.UserProvider(@NotNull Root root, @NotNull ConfigurationParameters config)
focal_class.full_signature:   UserProvider(@NotNull Root root, @NotNull ConfigurationParameters config)
focal_class.identifier: UserProvider
focal_class.parameters: (@NotNull Root root, @NotNull ConfigurationParameters config)
focal_class.signature:  UserProvider(@NotNull Root root, @NotNull ConfigurationParameters config)
focal_class.class_method_signature: UserProvider.createUser(@NotNull String userID, @Nullable String intermediateJcrPath)
focal_class.full_signature: @NotNull Tree createUser(@NotNull String userID, @Nullable String intermediateJcrPath)
focal_class.identifier: createUser
focal_class.modifiers: @NotNull
focal_class.parameters: (@NotNull String userID, @Nullable String intermediateJcrPath)
focal_class.return: Tree
focal_class.signature: Tree createUser(@NotNull String userID, @Nullable String intermediateJcrPath)
focal_class.class_method_signature: UserProvider.createGroup(@NotNull String groupID, @Nullable String intermediateJcrPath)
focal_class.full_signature: @NotNull Tree createGroup(@NotNull String groupID, @Nullable String intermediateJcrPath)
focal_class.identifier: createGroup
focal_class.modifiers: @NotNull
focal_class.parameters: (@NotNull String groupID, @Nullable String intermediateJcrPath)
focal_class.return: Tree
focal_class.signature: Tree createGroup(@NotNull String groupID, @Nullable String intermediateJcrPath)
focal_class.class_method_signature: UserProvider.createSystemUser(@NotNull String userID, @Nullable String intermediateJcrPath)
focal_class.full_signature: @NotNull Tree createSystemUser(@NotNull String userID, @Nullable String intermediateJcrPath)
focal_class.identifier: createSystemUser
focal_class.modifiers: @NotNull
focal_class.parameters: (@NotNull String userID, @Nullable String intermediateJcrPath)
focal_class.return: Tree
focal_class.signature: Tree createSystemUser(@NotNull String userID, @Nullable String intermediateJcrPath)
focal_class.class_method_signature: UserProvider.getAuthorizable(@NotNull String authorizableId)
focal_class.full_signature: @Nullable Tree getAuthorizable(@NotNull String authorizableId)
focal_class.identifier: getAuthorizable
focal_class.modifiers: @Nullable
focal_class.parameters: (@NotNull String authorizableId)
focal_class.return: Tree
focal_class.signature: Tree getAuthorizable(@NotNull String authorizableId)
focal_class.class_method_signature: UserProvider.getAuthorizableByPath(@NotNull String authorizableOakPath)
focal_class.full_signature: @Nullable Tree getAuthorizableByPath(@NotNull String authorizableOakPath)
focal_class.identifier: getAuthorizableByPath
focal_class.modifiers: @Nullable
focal_class.parameters: (@NotNull String authorizableOakPath)
focal_class.return: Tree
focal_class.signature: Tree getAuthorizableByPath(@NotNull String authorizableOakPath)
focal_class.class_method_signature: UserProvider.getAuthorizableByPrincipal(@NotNull Principal principal)
focal_class.full_signature: @Nullable Tree getAuthorizableByPrincipal(@NotNull Principal principal)
focal_class.identifier: getAuthorizableByPrincipal
focal_class.modifiers: @Nullable
focal_class.parameters: (@NotNull Principal principal)
focal_class.return: Tree
focal_class.signature: Tree getAuthorizableByPrincipal(@NotNull Principal principal)
focal_class.class_method_signature: UserProvider.createAuthorizableNode(@NotNull String authorizableId,
                                          @NotNull String ntName,
                                          @Nullable String intermediatePath)
focal_class.full_signature: private Tree createAuthorizableNode(@NotNull String authorizableId,
                                          @NotNull String ntName,
                                          @Nullable String intermediatePath)
focal_class.identifier: createAuthorizableNode
focal_class.modifiers: private
focal_class.parameters: (@NotNull String authorizableId,
                                          @NotNull String ntName,
                                          @Nullable String intermediatePath)
focal_class.return: Tree
focal_class.signature: Tree createAuthorizableNode(@NotNull String authorizableId,
                                          @NotNull String ntName,
                                          @Nullable String intermediatePath)
focal_class.class_method_signature: UserProvider.createFolderNodes(@NotNull String nodeName,
                                     boolean isGroup,
                                     @Nullable String intermediatePath)
focal_class.full_signature: private Tree createFolderNodes(@NotNull String nodeName,
                                     boolean isGroup,
                                     @Nullable String intermediatePath)
focal_class.identifier: createFolderNodes
focal_class.modifiers: private
focal_class.parameters: (@NotNull String nodeName,
                                     boolean isGroup,
                                     @Nullable String intermediatePath)
focal_class.return: Tree
focal_class.signature: Tree createFolderNodes(@NotNull String nodeName,
                                     boolean isGroup,
                                     @Nullable String intermediatePath)
focal_class.class_method_signature: UserProvider.getFolderPath(@NotNull String nodeName,
                                   @Nullable String intermediatePath,
                                   @NotNull String authRoot)
focal_class.full_signature: @NotNull private String getFolderPath(@NotNull String nodeName,
                                   @Nullable String intermediatePath,
                                   @NotNull String authRoot)
focal_class.identifier: getFolderPath
focal_class.modifiers: @NotNull private
focal_class.parameters: (@NotNull String nodeName,
                                   @Nullable String intermediatePath,
                                   @NotNull String authRoot)
focal_class.return: String
focal_class.signature: String getFolderPath(@NotNull String nodeName,
                                   @Nullable String intermediatePath,
                                   @NotNull String authRoot)
focal_class.class_method_signature: UserProvider.getNodeName(@NotNull String authorizableId)
focal_class.full_signature: private String getNodeName(@NotNull String authorizableId)
focal_class.identifier: getNodeName
focal_class.modifiers: private
focal_class.parameters: (@NotNull String authorizableId)
focal_class.return: String
focal_class.signature: String getNodeName(@NotNull String authorizableId)
focal_class.superclass: extends AuthorizableBaseProvider
focal_method.body: @NotNull
      Tree createUser(@NotNull String userID, @Nullable String intermediateJcrPath) throws RepositoryException {
          return createAuthorizableNode(userID, NT_REP_USER, intermediateJcrPath);
      }
focal_method.class_method_signature: UserProvider.createUser(@NotNull String userID, @Nullable String intermediateJcrPath)
focal_method.full_signature: @NotNull Tree createUser(@NotNull String userID, @Nullable String intermediateJcrPath)
focal_method.identifier: createUser
focal_method.invocations: createAuthorizableNode
focal_method.modifiers: @NotNull
focal_method.parameters: (@NotNull String userID, @Nullable String intermediateJcrPath)
focal_method.return: Tree
focal_method.signature: Tree createUser(@NotNull String userID, @Nullable String intermediateJcrPath)