digraph {
node [
shape=record
style=filled
fillcolor=gray95
]
<#list classes as cls>
<#if cls.tag()??>
${cls.name()} [label = <{«${cls.tag()}»
${cls.name()}}>]
<#else>
${cls.name()} [label = "${cls.name()}"]
#if>
#list>
<#if extends??>
<#list extends as relation>
<#if relation.impl()>
edge [dir=forward arrowtail=empty arrowhead=empty style="dashed"]
<#else>
edge [dir=forward arrowtail=empty arrowhead=empty style=""]
#if>
${relation.from()} -> ${relation.to()}
#list>
#if>
<#if assocs??>
<#list assocs as assoc>
<#if assoc.partOf()>
edge [dir=both arrowtail=odiamond arrowhead=vee style="" headlabel="${assoc.head()}"]
<#else>
edge [dir=forward arrowtail=empty arrowhead=vee style="" headlabel="${assoc.head()}"]
#if>
${assoc.from()} -> ${assoc.to()}
#list>
#if>
}