1 // Author:  Vadim Nasardinov
2 
3 import java.util.List;
4 import java.util.Map;
5 
6 /**
7  * @assoc "1..1" - "0..n" Adapter
8  * @assoc "" - "0..n" ObjectType
9  * @assoc "" - "0..n" ObjectMap
10  * @assoc "" - "0..n" Table
11  * @assoc "" - "0..n" DataOperation
12  **/
13 class Root {
14     private Map m_adapters;
15     private List m_types;
16     private List m_maps;
17     private List m_tables;
18     private List m_ops;
19 
getAdapter(Class klass)20     public Adapter getAdapter(Class klass) {}
21 }
22 
23 class Adapter {
getRoot()24     public Root getRoot();
25 }
26 
27 abstract class Element {
getRoot()28     Root getRoot() {}
29 }
30 
31 class ObjectType extends Element {}
32 
33 /**
34  * @has "1..1" - "1..1" ObjectType
35  **/
36 class ObjectMap extends Element {
37     private ObjectType m_type;
38 }
39 
40 class Table extends Element {}
41 
42 class DataOperation extends Element {}
43