test_class.declarator: USER_ID_VALUE = "testUserId"
test_class.modifier: private static final
test_class.original_string: private static final String USER_ID_VALUE = "testUserId";
test_class.type: String
test_class.var_name: USER_ID_VALUE
test_class.declarator: NAMESPACE_VALUE = "testNamespace"
test_class.modifier: private static final
test_class.original_string: private static final String NAMESPACE_VALUE = "testNamespace";
test_class.type: String
test_class.var_name: NAMESPACE_VALUE
test_class.declarator: USER_NAMESPACE_AUTHORIZATION_ID = 10L
test_class.modifier: private static final
test_class.original_string: private static final long USER_NAMESPACE_AUTHORIZATION_ID = 10L;
test_class.type: long
test_class.var_name: USER_NAMESPACE_AUTHORIZATION_ID
test_class.declarator: NAMESPACE_PERMISSIONS = ImmutableList.of(NamespacePermissionEnum.READ)
test_class.modifier: private static final
test_class.original_string: private static final List<NamespacePermissionEnum> NAMESPACE_PERMISSIONS = ImmutableList.of(NamespacePermissionEnum.READ);
test_class.type: List<NamespacePermissionEnum>
test_class.var_name: NAMESPACE_PERMISSIONS
test_class.declarator: USER_NAMESPACE_AUTHORIZATION_KEY = new UserNamespaceAuthorizationKey(USER_ID_VALUE, NAMESPACE_VALUE)
test_class.modifier: private static final
test_class.original_string: private static final UserNamespaceAuthorizationKey USER_NAMESPACE_AUTHORIZATION_KEY = new UserNamespaceAuthorizationKey(USER_ID_VALUE, NAMESPACE_VALUE);
test_class.type: UserNamespaceAuthorizationKey
test_class.var_name: USER_NAMESPACE_AUTHORIZATION_KEY
test_class.declarator: USER_NAMESPACE_AUTHORIZATION_CREATE_REQUEST =
          new UserNamespaceAuthorizationCreateRequest(USER_NAMESPACE_AUTHORIZATION_KEY, NAMESPACE_PERMISSIONS)
test_class.modifier: private static final
test_class.original_string: private static final UserNamespaceAuthorizationCreateRequest USER_NAMESPACE_AUTHORIZATION_CREATE_REQUEST =
          new UserNamespaceAuthorizationCreateRequest(USER_NAMESPACE_AUTHORIZATION_KEY, NAMESPACE_PERMISSIONS);
test_class.type: UserNamespaceAuthorizationCreateRequest
test_class.var_name: USER_NAMESPACE_AUTHORIZATION_CREATE_REQUEST
test_class.declarator: USER_NAMESPACE_AUTHORIZATION_UPDATE_REQUEST =
          new UserNamespaceAuthorizationUpdateRequest(NAMESPACE_PERMISSIONS)
test_class.modifier: private static final
test_class.original_string: private static final UserNamespaceAuthorizationUpdateRequest USER_NAMESPACE_AUTHORIZATION_UPDATE_REQUEST =
          new UserNamespaceAuthorizationUpdateRequest(NAMESPACE_PERMISSIONS);
test_class.type: UserNamespaceAuthorizationUpdateRequest
test_class.var_name: USER_NAMESPACE_AUTHORIZATION_UPDATE_REQUEST
test_class.declarator: NAMESPACE_ENTITY = new NamespaceEntity()
      {{
          setCode(NAMESPACE_VALUE);
      }}
test_class.modifier: private static final
test_class.original_string: private static final NamespaceEntity NAMESPACE_ENTITY = new NamespaceEntity()
      {{
          setCode(NAMESPACE_VALUE);
      }};
test_class.type: NamespaceEntity
test_class.var_name: NAMESPACE_ENTITY
test_class.declarator: USER_NAMESPACE_AUTHORIZATION_ENTITY = new UserNamespaceAuthorizationEntity()
      {{
          setId(USER_NAMESPACE_AUTHORIZATION_ID);
          setUserId(USER_ID_VALUE);
          setNamespace(NAMESPACE_ENTITY);
          setReadPermission(true);
      }}
test_class.modifier: private static final
test_class.original_string: private static final UserNamespaceAuthorizationEntity USER_NAMESPACE_AUTHORIZATION_ENTITY = new UserNamespaceAuthorizationEntity()
      {{
          setId(USER_NAMESPACE_AUTHORIZATION_ID);
          setUserId(USER_ID_VALUE);
          setNamespace(NAMESPACE_ENTITY);
          setReadPermission(true);
      }};
test_class.type: UserNamespaceAuthorizationEntity
test_class.var_name: USER_NAMESPACE_AUTHORIZATION_ENTITY
test_class.declarator: USER_AUTHORIZATIONS = new UserAuthorizations()
      {{
          setUserId("currentUser");
      }}
test_class.modifier: private static final
test_class.original_string: private static final UserAuthorizations USER_AUTHORIZATIONS = new UserAuthorizations()
      {{
          setUserId("currentUser");
      }};
test_class.type: UserAuthorizations
test_class.var_name: USER_AUTHORIZATIONS
test_class.declarator: userNamespaceAuthorizationService = new UserNamespaceAuthorizationServiceImpl()
test_class.modifier: @InjectMocks
      private
test_class.original_string: @InjectMocks
      private UserNamespaceAuthorizationService userNamespaceAuthorizationService = new UserNamespaceAuthorizationServiceImpl();
test_class.type: UserNamespaceAuthorizationService
test_class.var_name: userNamespaceAuthorizationService
test_class.declarator: alternateKeyHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private AlternateKeyHelper alternateKeyHelper;
test_class.type: AlternateKeyHelper
test_class.var_name: alternateKeyHelper
test_class.declarator: currentUserService
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private CurrentUserService currentUserService;
test_class.type: CurrentUserService
test_class.var_name: currentUserService
test_class.declarator: namespaceDaoHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private NamespaceDaoHelper namespaceDaoHelper;
test_class.type: NamespaceDaoHelper
test_class.var_name: namespaceDaoHelper
test_class.declarator: userNamespaceAuthorizationDao
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private UserNamespaceAuthorizationDao userNamespaceAuthorizationDao;
test_class.type: UserNamespaceAuthorizationDao
test_class.var_name: userNamespaceAuthorizationDao
test_class.declarator: userNamespaceAuthorizationHelper
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private UserNamespaceAuthorizationHelper userNamespaceAuthorizationHelper;
test_class.type: UserNamespaceAuthorizationHelper
test_class.var_name: userNamespaceAuthorizationHelper
test_class.declarator: messageNotificationEventService
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private MessageNotificationEventService messageNotificationEventService;
test_class.type: MessageNotificationEventService
test_class.var_name: messageNotificationEventService
test_class.file: herd-code/herd-service/src/test/java/org/finra/herd/service/impl/UserNamespaceAuthorizationServiceImplTest.java
test_class.identifier: UserNamespaceAuthorizationServiceImplTest
test_case.body: @Test
      public void testCreateUserNamespaceAuthorizationHappyPath()
      {
          when(alternateKeyHelper.validateStringParameter("namespace", NAMESPACE_VALUE)).thenReturn(NAMESPACE_VALUE);
          when(alternateKeyHelper.validateStringParameter("user id", USER_ID_VALUE)).thenReturn(USER_ID_VALUE);
          when(userNamespaceAuthorizationDao.getUserNamespaceAuthorizationByKey(USER_NAMESPACE_AUTHORIZATION_KEY)).thenReturn(null);
          when(namespaceDaoHelper.getNamespaceEntity(NAMESPACE_VALUE)).thenReturn(NAMESPACE_ENTITY);
          when(userNamespaceAuthorizationDao.saveAndRefresh(any())).thenReturn(USER_NAMESPACE_AUTHORIZATION_ENTITY);
          when(userNamespaceAuthorizationHelper.getNamespacePermissions(USER_NAMESPACE_AUTHORIZATION_ENTITY)).thenReturn(NAMESPACE_PERMISSIONS);
  
          UserNamespaceAuthorization userNamespaceAuthorization =
              userNamespaceAuthorizationService.createUserNamespaceAuthorization(USER_NAMESPACE_AUTHORIZATION_CREATE_REQUEST);
  
          assertEquals(USER_NAMESPACE_AUTHORIZATION_ID, userNamespaceAuthorization.getId());
          assertEquals(USER_NAMESPACE_AUTHORIZATION_KEY, userNamespaceAuthorization.getUserNamespaceAuthorizationKey());
          assertEquals(NAMESPACE_PERMISSIONS, userNamespaceAuthorization.getNamespacePermissions());
  
          verify(alternateKeyHelper).validateStringParameter("namespace", NAMESPACE_VALUE);
          verify(alternateKeyHelper).validateStringParameter("user id", USER_ID_VALUE);
          verify(namespaceDaoHelper).getNamespaceEntity(NAMESPACE_VALUE);
          verify(userNamespaceAuthorizationDao).getUserNamespaceAuthorizationByKey(USER_NAMESPACE_AUTHORIZATION_KEY);
          verify(userNamespaceAuthorizationDao).saveAndRefresh(any(UserNamespaceAuthorizationEntity.class));
          verify(messageNotificationEventService).processUserNamespaceAuthorizationChangeNotificationEvent(USER_NAMESPACE_AUTHORIZATION_KEY);
          verify(userNamespaceAuthorizationHelper).getNamespacePermissions(USER_NAMESPACE_AUTHORIZATION_ENTITY);
  
          verifyNoMoreInteractionsHelper();
      }
test_case.class_method_signature: UserNamespaceAuthorizationServiceImplTest.testCreateUserNamespaceAuthorizationHappyPath()
test_case.full_signature: @Test public void testCreateUserNamespaceAuthorizationHappyPath()
test_case.identifier: testCreateUserNamespaceAuthorizationHappyPath
test_case.invocations: thenReturn when validateStringParameter thenReturn when validateStringParameter thenReturn when getUserNamespaceAuthorizationByKey thenReturn when getNamespaceEntity thenReturn when saveAndRefresh any thenReturn when getNamespacePermissions createUserNamespaceAuthorization assertEquals getId assertEquals getUserNamespaceAuthorizationKey assertEquals getNamespacePermissions validateStringParameter verify validateStringParameter verify getNamespaceEntity verify getUserNamespaceAuthorizationByKey verify saveAndRefresh verify any processUserNamespaceAuthorizationChangeNotificationEvent verify getNamespacePermissions verify verifyNoMoreInteractionsHelper
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCreateUserNamespaceAuthorizationHappyPath()
focal_class.declarator: alternateKeyHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private AlternateKeyHelper alternateKeyHelper;
focal_class.type: AlternateKeyHelper
focal_class.var_name: alternateKeyHelper
focal_class.declarator: currentUserService
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private CurrentUserService currentUserService;
focal_class.type: CurrentUserService
focal_class.var_name: currentUserService
focal_class.declarator: namespaceDaoHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private NamespaceDaoHelper namespaceDaoHelper;
focal_class.type: NamespaceDaoHelper
focal_class.var_name: namespaceDaoHelper
focal_class.declarator: userNamespaceAuthorizationDao
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private UserNamespaceAuthorizationDao userNamespaceAuthorizationDao;
focal_class.type: UserNamespaceAuthorizationDao
focal_class.var_name: userNamespaceAuthorizationDao
focal_class.declarator: userNamespaceAuthorizationHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private UserNamespaceAuthorizationHelper userNamespaceAuthorizationHelper;
focal_class.type: UserNamespaceAuthorizationHelper
focal_class.var_name: userNamespaceAuthorizationHelper
focal_class.declarator: messageNotificationEventService
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private MessageNotificationEventService messageNotificationEventService;
focal_class.type: MessageNotificationEventService
focal_class.var_name: messageNotificationEventService
focal_class.file: herd-code/herd-service/src/main/java/org/finra/herd/service/impl/UserNamespaceAuthorizationServiceImpl.java
focal_class.identifier: UserNamespaceAuthorizationServiceImpl
focal_class.interfaces: implements UserNamespaceAuthorizationService
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.createUserNamespaceAuthorization(UserNamespaceAuthorizationCreateRequest request)
focal_class.full_signature: @PublishNotificationMessages @NamespacePermission(fields = "#request?.userNamespaceAuthorizationKey?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public UserNamespaceAuthorization createUserNamespaceAuthorization(UserNamespaceAuthorizationCreateRequest request)
focal_class.identifier: createUserNamespaceAuthorization
focal_class.modifiers: @PublishNotificationMessages @NamespacePermission(fields = "#request?.userNamespaceAuthorizationKey?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public
focal_class.parameters: (UserNamespaceAuthorizationCreateRequest request)
focal_class.return: UserNamespaceAuthorization
focal_class.signature: UserNamespaceAuthorization createUserNamespaceAuthorization(UserNamespaceAuthorizationCreateRequest request)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.updateUserNamespaceAuthorization(UserNamespaceAuthorizationKey key, UserNamespaceAuthorizationUpdateRequest request)
focal_class.full_signature: @PublishNotificationMessages @NamespacePermission(fields = "#key?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public UserNamespaceAuthorization updateUserNamespaceAuthorization(UserNamespaceAuthorizationKey key, UserNamespaceAuthorizationUpdateRequest request)
focal_class.identifier: updateUserNamespaceAuthorization
focal_class.modifiers: @PublishNotificationMessages @NamespacePermission(fields = "#key?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public
focal_class.parameters: (UserNamespaceAuthorizationKey key, UserNamespaceAuthorizationUpdateRequest request)
focal_class.return: UserNamespaceAuthorization
focal_class.signature: UserNamespaceAuthorization updateUserNamespaceAuthorization(UserNamespaceAuthorizationKey key, UserNamespaceAuthorizationUpdateRequest request)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.getUserNamespaceAuthorization(UserNamespaceAuthorizationKey key)
focal_class.full_signature: @NamespacePermission(fields = "#key?.namespace", permissions = NamespacePermissionEnum.READ) @Override public UserNamespaceAuthorization getUserNamespaceAuthorization(UserNamespaceAuthorizationKey key)
focal_class.identifier: getUserNamespaceAuthorization
focal_class.modifiers: @NamespacePermission(fields = "#key?.namespace", permissions = NamespacePermissionEnum.READ) @Override public
focal_class.parameters: (UserNamespaceAuthorizationKey key)
focal_class.return: UserNamespaceAuthorization
focal_class.signature: UserNamespaceAuthorization getUserNamespaceAuthorization(UserNamespaceAuthorizationKey key)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.deleteUserNamespaceAuthorization(UserNamespaceAuthorizationKey key)
focal_class.full_signature: @PublishNotificationMessages @NamespacePermission(fields = "#key?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public UserNamespaceAuthorization deleteUserNamespaceAuthorization(UserNamespaceAuthorizationKey key)
focal_class.identifier: deleteUserNamespaceAuthorization
focal_class.modifiers: @PublishNotificationMessages @NamespacePermission(fields = "#key?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public
focal_class.parameters: (UserNamespaceAuthorizationKey key)
focal_class.return: UserNamespaceAuthorization
focal_class.signature: UserNamespaceAuthorization deleteUserNamespaceAuthorization(UserNamespaceAuthorizationKey key)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.getUserNamespaceAuthorizationsByUserId(String userId)
focal_class.full_signature: @Override public UserNamespaceAuthorizations getUserNamespaceAuthorizationsByUserId(String userId)
focal_class.identifier: getUserNamespaceAuthorizationsByUserId
focal_class.modifiers: @Override public
focal_class.parameters: (String userId)
focal_class.return: UserNamespaceAuthorizations
focal_class.signature: UserNamespaceAuthorizations getUserNamespaceAuthorizationsByUserId(String userId)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.getUserNamespaceAuthorizationsByNamespace(String namespace)
focal_class.full_signature: @NamespacePermission(fields = "#namespace", permissions = NamespacePermissionEnum.READ) @Override public UserNamespaceAuthorizations getUserNamespaceAuthorizationsByNamespace(String namespace)
focal_class.identifier: getUserNamespaceAuthorizationsByNamespace
focal_class.modifiers: @NamespacePermission(fields = "#namespace", permissions = NamespacePermissionEnum.READ) @Override public
focal_class.parameters: (String namespace)
focal_class.return: UserNamespaceAuthorizations
focal_class.signature: UserNamespaceAuthorizations getUserNamespaceAuthorizationsByNamespace(String namespace)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.validateUserNamespaceAuthorizationCreateRequest(UserNamespaceAuthorizationCreateRequest request)
focal_class.full_signature: private void validateUserNamespaceAuthorizationCreateRequest(UserNamespaceAuthorizationCreateRequest request)
focal_class.identifier: validateUserNamespaceAuthorizationCreateRequest
focal_class.modifiers: private
focal_class.parameters: (UserNamespaceAuthorizationCreateRequest request)
focal_class.return: void
focal_class.signature: void validateUserNamespaceAuthorizationCreateRequest(UserNamespaceAuthorizationCreateRequest request)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.validateUserNamespaceAuthorizationUpdateRequest(UserNamespaceAuthorizationUpdateRequest request)
focal_class.full_signature: private void validateUserNamespaceAuthorizationUpdateRequest(UserNamespaceAuthorizationUpdateRequest request)
focal_class.identifier: validateUserNamespaceAuthorizationUpdateRequest
focal_class.modifiers: private
focal_class.parameters: (UserNamespaceAuthorizationUpdateRequest request)
focal_class.return: void
focal_class.signature: void validateUserNamespaceAuthorizationUpdateRequest(UserNamespaceAuthorizationUpdateRequest request)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.validateUserNamespaceAuthorizationKey(UserNamespaceAuthorizationKey key)
focal_class.full_signature: public void validateUserNamespaceAuthorizationKey(UserNamespaceAuthorizationKey key)
focal_class.identifier: validateUserNamespaceAuthorizationKey
focal_class.modifiers: public
focal_class.parameters: (UserNamespaceAuthorizationKey key)
focal_class.return: void
focal_class.signature: void validateUserNamespaceAuthorizationKey(UserNamespaceAuthorizationKey key)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.validateNamespacePermissions(List<NamespacePermissionEnum> namespacePermissions)
focal_class.full_signature: public void validateNamespacePermissions(List<NamespacePermissionEnum> namespacePermissions)
focal_class.identifier: validateNamespacePermissions
focal_class.modifiers: public
focal_class.parameters: (List<NamespacePermissionEnum> namespacePermissions)
focal_class.return: void
focal_class.signature: void validateNamespacePermissions(List<NamespacePermissionEnum> namespacePermissions)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.createUserNamespaceAuthorizationEntity(String userId, NamespaceEntity namespaceEntity,
          List<NamespacePermissionEnum> namespacePermissions)
focal_class.full_signature: private UserNamespaceAuthorizationEntity createUserNamespaceAuthorizationEntity(String userId, NamespaceEntity namespaceEntity,
          List<NamespacePermissionEnum> namespacePermissions)
focal_class.identifier: createUserNamespaceAuthorizationEntity
focal_class.modifiers: private
focal_class.parameters: (String userId, NamespaceEntity namespaceEntity,
          List<NamespacePermissionEnum> namespacePermissions)
focal_class.return: UserNamespaceAuthorizationEntity
focal_class.signature: UserNamespaceAuthorizationEntity createUserNamespaceAuthorizationEntity(String userId, NamespaceEntity namespaceEntity,
          List<NamespacePermissionEnum> namespacePermissions)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.updateNamespacePermissions(UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity,
          List<NamespacePermissionEnum> namespacePermissions)
focal_class.full_signature: private void updateNamespacePermissions(UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity,
          List<NamespacePermissionEnum> namespacePermissions)
focal_class.identifier: updateNamespacePermissions
focal_class.modifiers: private
focal_class.parameters: (UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity,
          List<NamespacePermissionEnum> namespacePermissions)
focal_class.return: void
focal_class.signature: void updateNamespacePermissions(UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity,
          List<NamespacePermissionEnum> namespacePermissions)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.createUserNamespaceAuthorizationsFromEntities(
          List<UserNamespaceAuthorizationEntity> userNamespaceAuthorizationEntities)
focal_class.full_signature: private List<UserNamespaceAuthorization> createUserNamespaceAuthorizationsFromEntities(
          List<UserNamespaceAuthorizationEntity> userNamespaceAuthorizationEntities)
focal_class.identifier: createUserNamespaceAuthorizationsFromEntities
focal_class.modifiers: private
focal_class.parameters: (
          List<UserNamespaceAuthorizationEntity> userNamespaceAuthorizationEntities)
focal_class.return: List<UserNamespaceAuthorization>
focal_class.signature: List<UserNamespaceAuthorization> createUserNamespaceAuthorizationsFromEntities(
          List<UserNamespaceAuthorizationEntity> userNamespaceAuthorizationEntities)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.createUserNamespaceAuthorizationFromEntity(UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity)
focal_class.full_signature: private UserNamespaceAuthorization createUserNamespaceAuthorizationFromEntity(UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity)
focal_class.identifier: createUserNamespaceAuthorizationFromEntity
focal_class.modifiers: private
focal_class.parameters: (UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity)
focal_class.return: UserNamespaceAuthorization
focal_class.signature: UserNamespaceAuthorization createUserNamespaceAuthorizationFromEntity(UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity)
focal_class.class_method_signature: UserNamespaceAuthorizationServiceImpl.getUserNamespaceAuthorizationEntity(UserNamespaceAuthorizationKey key)
focal_class.full_signature: private UserNamespaceAuthorizationEntity getUserNamespaceAuthorizationEntity(UserNamespaceAuthorizationKey key)
focal_class.identifier: getUserNamespaceAuthorizationEntity
focal_class.modifiers: private
focal_class.parameters: (UserNamespaceAuthorizationKey key)
focal_class.return: UserNamespaceAuthorizationEntity
focal_class.signature: UserNamespaceAuthorizationEntity getUserNamespaceAuthorizationEntity(UserNamespaceAuthorizationKey key)
focal_method.body: @PublishNotificationMessages
      @NamespacePermission(fields = "#request?.userNamespaceAuthorizationKey?.namespace", permissions = NamespacePermissionEnum.GRANT)
      @Override
      public UserNamespaceAuthorization createUserNamespaceAuthorization(UserNamespaceAuthorizationCreateRequest request)
      {
          // Validate and trim the request parameters.
          validateUserNamespaceAuthorizationCreateRequest(request);
  
          // Get the user namespace authorization key.
          UserNamespaceAuthorizationKey key = request.getUserNamespaceAuthorizationKey();
  
          // Ensure a user namespace authorization with the specified name doesn't already exist for the specified namespace.
          UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity = userNamespaceAuthorizationDao.getUserNamespaceAuthorizationByKey(key);
          if (userNamespaceAuthorizationEntity != null)
          {
              throw new AlreadyExistsException(String
                  .format("Unable to create user namespace authorization with user id \"%s\" and namespace \"%s\" because it already exists.", key.getUserId(),
                      key.getNamespace()));
          }
  
          // Retrieve and ensure that namespace exists with the specified user namespace authorization namespace code.
          NamespaceEntity namespaceEntity = namespaceDaoHelper.getNamespaceEntity(key.getNamespace());
  
          // Create and persist a new user namespace authorization entity from the request information.
          userNamespaceAuthorizationEntity = createUserNamespaceAuthorizationEntity(key.getUserId(), namespaceEntity, request.getNamespacePermissions());
  
          // Create a user namespace authorization change notification to be sent on create user namespace authorization event.
          messageNotificationEventService.processUserNamespaceAuthorizationChangeNotificationEvent(key);
  
          // Create and return the user namespace authorization object from the persisted entity.
          return createUserNamespaceAuthorizationFromEntity(userNamespaceAuthorizationEntity);
      }
focal_method.class_method_signature: UserNamespaceAuthorizationServiceImpl.createUserNamespaceAuthorization(UserNamespaceAuthorizationCreateRequest request)
focal_method.full_signature: @PublishNotificationMessages @NamespacePermission(fields = "#request?.userNamespaceAuthorizationKey?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public UserNamespaceAuthorization createUserNamespaceAuthorization(UserNamespaceAuthorizationCreateRequest request)
focal_method.identifier: createUserNamespaceAuthorization
focal_method.invocations: validateUserNamespaceAuthorizationCreateRequest getUserNamespaceAuthorizationKey getUserNamespaceAuthorizationByKey format getUserId getNamespace getNamespaceEntity getNamespace createUserNamespaceAuthorizationEntity getUserId getNamespacePermissions processUserNamespaceAuthorizationChangeNotificationEvent createUserNamespaceAuthorizationFromEntity
focal_method.modifiers: @PublishNotificationMessages @NamespacePermission(fields = "#request?.userNamespaceAuthorizationKey?.namespace", permissions = NamespacePermissionEnum.GRANT) @Override public
focal_method.parameters: (UserNamespaceAuthorizationCreateRequest request)
focal_method.return: UserNamespaceAuthorization
focal_method.signature: UserNamespaceAuthorization createUserNamespaceAuthorization(UserNamespaceAuthorizationCreateRequest request)