test_class.file: oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterTest.java
test_class.identifier: UserImporterTest
test_class.interfaces: implements UserConstants
test_class.superclass: extends UserImporterBaseTest
test_case.body: @Test(expected = IllegalStateException.class)
      public void testHandlePropInfoNotInitialized() throws Exception {
          importer.handlePropInfo(createUserTree(), mock(PropInfo.class), mock(PropertyDefinition.class));
      }
test_case.class_method_signature: UserImporterTest.testHandlePropInfoNotInitialized()
test_case.full_signature: @Test(expected = IllegalStateException.class) public void testHandlePropInfoNotInitialized()
test_case.identifier: testHandlePropInfoNotInitialized
test_case.invocations: handlePropInfo createUserTree mock mock
test_case.modifiers: @Test(expected = IllegalStateException.class) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testHandlePropInfoNotInitialized()
focal_class.declarator: log = LoggerFactory.getLogger(UserImporter.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory.getLogger(UserImporter.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: importBehavior
focal_class.modifier: private final
focal_class.original_string: private final int importBehavior;
focal_class.type: int
focal_class.var_name: importBehavior
focal_class.declarator: root
focal_class.modifier: private
focal_class.original_string: private Root root;
focal_class.type: Root
focal_class.var_name: root
focal_class.declarator: namePathMapper
focal_class.modifier: private
focal_class.original_string: private NamePathMapper namePathMapper;
focal_class.type: NamePathMapper
focal_class.var_name: namePathMapper
focal_class.declarator: referenceTracker
focal_class.modifier: private
focal_class.original_string: private ReferenceChangeTracker referenceTracker;
focal_class.type: ReferenceChangeTracker
focal_class.var_name: referenceTracker
focal_class.declarator: userManager
focal_class.modifier: private
focal_class.original_string: private UserManagerImpl userManager;
focal_class.type: UserManagerImpl
focal_class.var_name: userManager
focal_class.declarator: identifierManager
focal_class.modifier: private
focal_class.original_string: private IdentifierManager identifierManager;
focal_class.type: IdentifierManager
focal_class.var_name: identifierManager
focal_class.declarator: initialized = false
focal_class.modifier: private
focal_class.original_string: private boolean initialized = false;
focal_class.type: boolean
focal_class.var_name: initialized
focal_class.declarator: currentMembership
focal_class.modifier: private
focal_class.original_string: private Membership currentMembership;
focal_class.type: Membership
focal_class.var_name: currentMembership
focal_class.declarator: memberships = new HashMap<>()
focal_class.modifier: private
focal_class.original_string: private Map<String, Membership> memberships = new HashMap<>();
focal_class.type: Map<String, Membership>
focal_class.var_name: memberships
focal_class.declarator: currentPw
focal_class.modifier: private
focal_class.original_string: private String currentPw;
focal_class.type: String
focal_class.var_name: currentPw
focal_class.declarator: principals = new HashMap<>()
focal_class.modifier: private
focal_class.original_string: private Map<String, Principal> principals = new HashMap<>();
focal_class.type: Map<String, Principal>
focal_class.var_name: principals
focal_class.file: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
focal_class.identifier: UserImporter
focal_class.interfaces: implements ProtectedPropertyImporter, ProtectedNodeImporter, UserConstants
focal_class.class_method_signature: UserImporter.UserImporter(ConfigurationParameters config)
focal_class.full_signature:   UserImporter(ConfigurationParameters config)
focal_class.identifier: UserImporter
focal_class.parameters: (ConfigurationParameters config)
focal_class.signature:  UserImporter(ConfigurationParameters config)
focal_class.class_method_signature: UserImporter.init(@NotNull Session session, @NotNull Root root, @NotNull NamePathMapper namePathMapper,
              boolean isWorkspaceImport, int uuidBehavior,
              @NotNull ReferenceChangeTracker referenceTracker, @NotNull SecurityProvider securityProvider)
focal_class.full_signature: @Override public boolean init(@NotNull Session session, @NotNull Root root, @NotNull NamePathMapper namePathMapper,
              boolean isWorkspaceImport, int uuidBehavior,
              @NotNull ReferenceChangeTracker referenceTracker, @NotNull SecurityProvider securityProvider)
focal_class.identifier: init
focal_class.modifiers: @Override public
focal_class.parameters: (@NotNull Session session, @NotNull Root root, @NotNull NamePathMapper namePathMapper,
              boolean isWorkspaceImport, int uuidBehavior,
              @NotNull ReferenceChangeTracker referenceTracker, @NotNull SecurityProvider securityProvider)
focal_class.return: boolean
focal_class.signature: boolean init(@NotNull Session session, @NotNull Root root, @NotNull NamePathMapper namePathMapper,
              boolean isWorkspaceImport, int uuidBehavior,
              @NotNull ReferenceChangeTracker referenceTracker, @NotNull SecurityProvider securityProvider)
focal_class.class_method_signature: UserImporter.canInitUserManager(@NotNull JackrabbitSession session, boolean isWorkspaceImport)
focal_class.full_signature: private static boolean canInitUserManager(@NotNull JackrabbitSession session, boolean isWorkspaceImport)
focal_class.identifier: canInitUserManager
focal_class.modifiers: private static
focal_class.parameters: (@NotNull JackrabbitSession session, boolean isWorkspaceImport)
focal_class.return: boolean
focal_class.signature: boolean canInitUserManager(@NotNull JackrabbitSession session, boolean isWorkspaceImport)
focal_class.class_method_signature: UserImporter.handlePropInfo(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.full_signature: @Override public boolean handlePropInfo(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.identifier: handlePropInfo
focal_class.modifiers: @Override public
focal_class.parameters: (@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.return: boolean
focal_class.signature: boolean handlePropInfo(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.class_method_signature: UserImporter.propertiesCompleted(@NotNull Tree protectedParent)
focal_class.full_signature: @Override public void propertiesCompleted(@NotNull Tree protectedParent)
focal_class.identifier: propertiesCompleted
focal_class.modifiers: @Override public
focal_class.parameters: (@NotNull Tree protectedParent)
focal_class.return: void
focal_class.signature: void propertiesCompleted(@NotNull Tree protectedParent)
focal_class.class_method_signature: UserImporter.processReferences()
focal_class.full_signature: @Override public void processReferences()
focal_class.identifier: processReferences
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void processReferences()
focal_class.class_method_signature: UserImporter.start(@NotNull Tree protectedParent)
focal_class.full_signature: @Override public boolean start(@NotNull Tree protectedParent)
focal_class.identifier: start
focal_class.modifiers: @Override public
focal_class.parameters: (@NotNull Tree protectedParent)
focal_class.return: boolean
focal_class.signature: boolean start(@NotNull Tree protectedParent)
focal_class.class_method_signature: UserImporter.startChildInfo(@NotNull NodeInfo childInfo, @NotNull List<PropInfo> propInfos)
focal_class.full_signature: @Override public void startChildInfo(@NotNull NodeInfo childInfo, @NotNull List<PropInfo> propInfos)
focal_class.identifier: startChildInfo
focal_class.modifiers: @Override public
focal_class.parameters: (@NotNull NodeInfo childInfo, @NotNull List<PropInfo> propInfos)
focal_class.return: void
focal_class.signature: void startChildInfo(@NotNull NodeInfo childInfo, @NotNull List<PropInfo> propInfos)
focal_class.class_method_signature: UserImporter.endChildInfo()
focal_class.full_signature: @Override public void endChildInfo()
focal_class.identifier: endChildInfo
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void endChildInfo()
focal_class.class_method_signature: UserImporter.end(@NotNull Tree protectedParent)
focal_class.full_signature: @Override public void end(@NotNull Tree protectedParent)
focal_class.identifier: end
focal_class.modifiers: @Override public
focal_class.parameters: (@NotNull Tree protectedParent)
focal_class.return: void
focal_class.signature: void end(@NotNull Tree protectedParent)
focal_class.class_method_signature: UserImporter.getMembership(@NotNull String authId)
focal_class.full_signature: @NotNull private Membership getMembership(@NotNull String authId)
focal_class.identifier: getMembership
focal_class.modifiers: @NotNull private
focal_class.parameters: (@NotNull String authId)
focal_class.return: Membership
focal_class.signature: Membership getMembership(@NotNull String authId)
focal_class.class_method_signature: UserImporter.checkInitialized()
focal_class.full_signature: private void checkInitialized()
focal_class.identifier: checkInitialized
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void checkInitialized()
focal_class.class_method_signature: UserImporter.isValid(@NotNull PropertyDefinition definition, @NotNull String oakNodeTypeName, boolean multipleStatus)
focal_class.full_signature: private boolean isValid(@NotNull PropertyDefinition definition, @NotNull String oakNodeTypeName, boolean multipleStatus)
focal_class.identifier: isValid
focal_class.modifiers: private
focal_class.parameters: (@NotNull PropertyDefinition definition, @NotNull String oakNodeTypeName, boolean multipleStatus)
focal_class.return: boolean
focal_class.signature: boolean isValid(@NotNull PropertyDefinition definition, @NotNull String oakNodeTypeName, boolean multipleStatus)
focal_class.class_method_signature: UserImporter.importAuthorizableId(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.full_signature: private boolean importAuthorizableId(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.identifier: importAuthorizableId
focal_class.modifiers: private
focal_class.parameters: (@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.return: boolean
focal_class.signature: boolean importAuthorizableId(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.class_method_signature: UserImporter.importPrincipalName(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.full_signature: private boolean importPrincipalName(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.identifier: importPrincipalName
focal_class.modifiers: private
focal_class.parameters: (@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.return: boolean
focal_class.signature: boolean importPrincipalName(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.class_method_signature: UserImporter.importPassword(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.full_signature: private boolean importPassword(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.identifier: importPassword
focal_class.modifiers: private
focal_class.parameters: (@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.return: boolean
focal_class.signature: boolean importPassword(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.class_method_signature: UserImporter.importImpersonators(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.full_signature: private boolean importImpersonators(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.identifier: importImpersonators
focal_class.modifiers: private
focal_class.parameters: (@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.return: boolean
focal_class.signature: boolean importImpersonators(@NotNull Tree parent, @NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.class_method_signature: UserImporter.importDisabled(@NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.full_signature: private boolean importDisabled(@NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.identifier: importDisabled
focal_class.modifiers: private
focal_class.parameters: (@NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.return: boolean
focal_class.signature: boolean importDisabled(@NotNull Authorizable a, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.class_method_signature: UserImporter.isMemberNode(@NotNull Tree tree)
focal_class.full_signature: private static boolean isMemberNode(@NotNull Tree tree)
focal_class.identifier: isMemberNode
focal_class.modifiers: private static
focal_class.parameters: (@NotNull Tree tree)
focal_class.return: boolean
focal_class.signature: boolean isMemberNode(@NotNull Tree tree)
focal_class.class_method_signature: UserImporter.isMemberReferencesListNode(@NotNull Tree tree)
focal_class.full_signature: private static boolean isMemberReferencesListNode(@NotNull Tree tree)
focal_class.identifier: isMemberReferencesListNode
focal_class.modifiers: private static
focal_class.parameters: (@NotNull Tree tree)
focal_class.return: boolean
focal_class.signature: boolean isMemberReferencesListNode(@NotNull Tree tree)
focal_class.class_method_signature: UserImporter.isPwdNode(@NotNull Tree tree)
focal_class.full_signature: private static boolean isPwdNode(@NotNull Tree tree)
focal_class.identifier: isPwdNode
focal_class.modifiers: private static
focal_class.parameters: (@NotNull Tree tree)
focal_class.return: boolean
focal_class.signature: boolean isPwdNode(@NotNull Tree tree)
focal_class.class_method_signature: UserImporter.importPwdNodeProperty(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.full_signature: private static boolean importPwdNodeProperty(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.identifier: importPwdNodeProperty
focal_class.modifiers: private static
focal_class.parameters: (@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.return: boolean
focal_class.signature: boolean importPwdNodeProperty(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_class.class_method_signature: UserImporter.isCacheNode(@NotNull Tree tree)
focal_class.full_signature: private static boolean isCacheNode(@NotNull Tree tree)
focal_class.identifier: isCacheNode
focal_class.modifiers: private static
focal_class.parameters: (@NotNull Tree tree)
focal_class.return: boolean
focal_class.signature: boolean isCacheNode(@NotNull Tree tree)
focal_class.class_method_signature: UserImporter.handleFailure(String msg)
focal_class.full_signature: private void handleFailure(String msg)
focal_class.identifier: handleFailure
focal_class.modifiers: private
focal_class.parameters: (String msg)
focal_class.return: void
focal_class.signature: void handleFailure(String msg)
focal_method.body: @Override
      public boolean handlePropInfo(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def) throws RepositoryException {
          checkInitialized();
  
          if (isPwdNode(parent)) {
              // overwrite any properties generated underneath the rep:pwd node
              // by "UserManagerImpl#setPassword" by the properties defined by
              // the XML to be imported. see OAK-1943 for the corresponding discussion.
              return importPwdNodeProperty(parent, propInfo, def);
          } else {
              Authorizable a = userManager.getAuthorizable(parent);
              if (a == null) {
                  log.debug("Cannot handle protected PropInfo {}. Node {} doesn't represent an Authorizable.", propInfo, parent);
                  return false;
              }
  
              String propName = propInfo.getName();
              if (REP_AUTHORIZABLE_ID.equals(propName)) {
                  return importAuthorizableId(parent, a, propInfo, def);
              } else if (REP_PRINCIPAL_NAME.equals(propName)) {
                  return importPrincipalName(parent, a, propInfo, def);
              } else if (REP_PASSWORD.equals(propName)) {
                  return importPassword(parent, a, propInfo, def);
              } else if (REP_IMPERSONATORS.equals(propName)) {
                  return importImpersonators(parent, a, propInfo, def);
              } else if (REP_DISABLED.equals(propName)) {
                  return importDisabled(a, propInfo, def);
              } else if (REP_MEMBERS.equals(propName)) {
                  if (!a.isGroup() || !isValid(def, NT_REP_MEMBER_REFERENCES, true)) {
                      return false;
                  }
                  // since group-members are references to user/groups that potentially
                  // are to be imported later on -> postpone processing to the end.
                  // see -> process References
                  getMembership(a.getPath()).addMembers(propInfo.getTextValues());
                  return true;
  
              } // another protected property -> return false
          }
  
          // neither rep:pwd nor authorizable node -> not covered by this importer.
          return false;
      }
focal_method.class_method_signature: UserImporter.handlePropInfo(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_method.full_signature: @Override public boolean handlePropInfo(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_method.identifier: handlePropInfo
focal_method.invocations: checkInitialized isPwdNode importPwdNodeProperty getAuthorizable debug getName equals importAuthorizableId equals importPrincipalName equals importPassword equals importImpersonators equals importDisabled equals isGroup isValid addMembers getMembership getPath getTextValues
focal_method.modifiers: @Override public
focal_method.parameters: (@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)
focal_method.return: boolean
focal_method.signature: boolean handlePropInfo(@NotNull Tree parent, @NotNull PropInfo propInfo, @NotNull PropertyDefinition def)