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