#**##set( $class = $elem )
#**##set( $name = $class.Name )
#**##set( $interface = $utility.isInterface($class) )
#**##set( $abstract = $class.isAbstract() || $interface )
#**##set( $children = $utility.indent("  ",$!children) )
#**##set( $superClass = $class.SuperClass )
#**### missing final, static, vivibility, strictfp
#**##if($class.hasKeyInStereotypes("enum"))
#*   *#<eClassifiers xsi:type="ecore:EEnum" name="$name">
#*   *#$!children##
#*   *#</eClassifiers>
#**##else
#*   *#<eClassifiers xsi:type=##
#*   *##if(!$class.hasKeyInStereotypes("type"))
#*      *#"ecore:EClass" name="$name" abstract="$abstract" interface="$interface" eSuperTypes="##
#*      *##if( $superClass )## bug in EMF: list should not start with interface if superclasses exist
#*         *#$utility.getEMFTypeAsString($superClass, $engine)##
#*      *##else
#*         *##set( $firstClass = true )
#*      *##end
#*      *##foreach( $superInterface in $class.iteratorOfSuperClasses() )
#*         *##if( $superInterface.fullClassName != "org.eclipse.emf.ecore.EObject" )
#*            *##if( !$superInterface.equals($superClass) )
#*               *##if( $firstClass )
#*                  *##set( $firstClass = false )
#*               *##else
#*                  *# ##
#*               *##end
#*               *#$utility.getEMFTypeAsString($superInterface, $engine)##
#*            *##end
#*         *##end
#*         *#
#*      *##end
#*      *#"##
#*   *##else
#*      *#"ecore:EDataType" name="$name"##
#*   *##end
#*   *#>
#*   *##parse("$lang/default:classDiag/class/annotations.vm" )
#*   *#$!children##
#*   *#  <eOperations name="removeYou"/>
#*   *#</eClassifiers>
#**##end