gener build gener object child object parent todo implement formed rule uml circular inherit allow self parent includ self child generaliz element parent generaliz element child parent illeg argument except item differ generaliz element generaliz element child generaliz element child generaliz element parent generaliz element parent check element aren link opposit wai todo implement formed rule uml circular inherit allow self parent includ self gener gen parent gener gen parent equal child illeg argument except gener exist opposit direct todo formed rule uml generaliz element parent gener element leaf self parent leaf parent leaf illeg argument except parent leaf todo formed rule uml root gener self root impli self gener child root illeg argument except child root namespac ns child namespac ns model impl model manag helper read ns child namespac ns namespac child ns model impl model manag helper read ns illeg argument except valid writeabl namespac gener gen creat gener ns ref outermost gen set parent parent gen set child child gen set namespac ns gen 