@startuml

title Tenant Component (nosql)

skinparam linetype ortho

interface ApiConstants
interface TenantService
interface TenantServiceSPI

class AbstractRestResource {
#switchTenant()
}
class AbstractServiceClient
class An2ApiException
class CreateTenantPojo
class Cx1TenantService
class GetTenantPojo
class InitializingBean
class NoSuchTenantException
class TenantExistsException
class TenantService
class TenantServiceClient
class TenantServiceImpl
class TenantServiceIT
class TenantServiceRestV1
class VersionCheckException


AbstractRestResource <|-- TenantServiceRestV1 : extends
AbstractServiceClient <|-- TenantServiceClient : extends
An2ApiException <|-- NoSuchTenantException : extends
An2ApiException <|-- TenantExistsException : extends
An2ApiException <|-- VersionCheckException : extends
ApiConstants <|.. TenantServiceImpl : uses
CreateTenantPojo <.. TenantServiceClient : uses
CreateTenantPojo <.. TenantServiceRestV1 : uses
GetTenantPojo <.. TenantServiceClient : uses
GetTenantPojo <.. TenantServiceRestV1 : uses
InitializingBean <|.. TenantServiceImpl : implements
NoSuchTenantException <.. AbstractRestResource : uses
TenantService <.. AbstractRestResource : uses
TenantService <|.. TenantServiceClient : implements
TenantService <|.. TenantServiceImpl : implements
TenantService <|.. TenantServiceRestV1 : uses
TenantServiceClient <.. TenantServiceIT : uses
TenantServiceSPI <.. Cx1TenantService : implements
TenantServiceSPI <.. TenantServiceImpl : uses


@enduml