package edithelpers

import org.eclipse.gmf.codegen.gmfgen.GenDiagram
import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode
import com.google.inject.Inject
import org.eclipse.gmf.codegen.gmfgen.ElementType

class plugin {
	@Inject edithelper helper;
	
def main(GenDiagram it)'''
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
	<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
«FOR f : topLevelNodes.filter(n | n.elementType != null)»«registerHelperAdvice(f)»«ENDFOR»
	</extension>
	<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
		<binding context="«editorGen.plugin.ID».TypeContext">
«FOR f : topLevelNodes.filter(n | n.elementType != null)»«registerHelperAdvice(f)»«registerHelperAdviceBinding(f)»«ENDFOR»
		</binding>
	</extension>
</plugin>
'''

def registerHelperAdvice(GenTopLevelNode it) '''
		<metamodel nsURI="«modelFacet.metaClass.genPackage.getEcorePackage().nsURI»">
			<adviceBinding
				class="«helper.className(elementType)»"
				id="«id(elementType)»"
				inheritance="none"
				typeId="«elementType.uniqueIdentifier»"/>
		</metamodel>
'''

def id(ElementType it)'''«uniqueIdentifier»_ExternalAdvice'''

def registerHelperAdviceBinding(GenTopLevelNode it)'''
			<advice ref="«id(elementType)»"/>
'''
}