49a0fde2195a058eff015d82dd9ba019a0bd3680
[mdsal.git] / singleton-service / mdsal-singleton-common-api / src / site / asciidoc / 04_classClusterSingletonServiceProvider.plantuml
1 ["plantuml", "04_classClusterSingletonServiceProvider", "svg"]
2
3 ------------
4 @startuml
5
6   interface "AutoCloseable" as auto {
7     +void close();
8   }
9
10   interface "GenericEntityOwnershipListener" as eosList {
11     +void ownershipChanged(EntityOwnershipChange ownershipChange);
12   }
13
14   interface "ClusterSingletonServiceProvider" as cssProvider {
15     ClusterSingletonServiceRegistration registerClusterSingletonService(ClusterSingletonService);
16   }
17
18   abstract "AbstractClusterSingletonServiceProviderImpl" as acssProviderImpl {
19     +final void initializeProvider();
20     +final ClusterSingletonServiceRegistration registerClusterSingletonService(ClusterSingletonService);
21     +final void ownershipChanged(OwnershipChange);
22     +final void close();
23     #abstract EntityOwnershipListenerRegistration registerListener(String entityType, GenericEntityOwnershipService service);
24     #abstract GenericEntity createEntity(String entityType, String entityIdentifier);
25     #abstract String getServiceIdentifierFromEntity(GenericEntity entity);
26     #final void cleaningProvider(Throwable t);
27   }
28
29   class "DOMClusterSingletonServiceProviderImpl" as domCssProviderImpl {
30     #final DOMEntity createEntity(String entityType, String entityIdentifier);
31     #final DOMEntityOwnershipListenerRegistration registerListener(String type, DOMEntityOwnershipService eos);
32     #final String getServiceIdentifierFromEntity(DOMEntity entity);
33   }
34
35   class "ClusterSingletonServiceProviderImpl" as cssProviderImpl {
36     #final Entity createEntity(String type, String ident);
37     #final EntityOwnershipListenerRegistration registerListener(String type, EntityOwnershipService eos);
38     #final String getServiceIdentifierFromEntity(Entity entity);
39   }
40
41   cssProvider --|> auto
42   acssProviderImpl --|> cssProvider
43   acssProviderImpl --|> eosList
44   cssProviderImpl --|> acssProviderImpl
45   domCssProviderImpl --|> acssProviderImpl
46
47 @enduml
48 ------------