addressBookService !== null) { return $this->addressBookService; } $userFactory = $this->userServicesFactory; return $this->addressBookService = new AddressBookService( $userFactory->createUserAccountService(), $userFactory->createUserAssignmentService(), $this->createAddressBookDirectoryGateway(), $this->createAddressBookCustomFieldGateway(), $this->createAddressBookAvatarGateway() ); } public function createAddressBookDirectoryGateway(): AddressBookDirectoryGateway { if ($this->addressBookDirectoryGateway !== null) { return $this->addressBookDirectoryGateway; } $directoryFactory = $this->directoryServicesFactory; return $this->addressBookDirectoryGateway = new AddressBookDirectoryGateway( $directoryFactory->createTenantService(), $directoryFactory->createDepartmentService(), $directoryFactory->createRoleService(), $directoryFactory->createDirectoryScopeGateway() ); } public function createAddressBookCustomFieldGateway(): AddressBookCustomFieldGateway { return $this->addressBookCustomFieldGateway ??= new AddressBookCustomFieldGateway( $this->customFieldServicesFactory->createUserCustomFieldValueService() ); } public function createAddressBookAvatarGateway(): AddressBookAvatarGateway { return $this->addressBookAvatarGateway ??= new AddressBookAvatarGateway( $this->userServicesFactory->createUserAvatarService() ); } }