package custTemplates

import org.eclipse.app4mc.amalthea.model.Amalthea
import templates.M2T_Output_Transformer

class CustTransformer extends M2T_Output_Transformer {
	/**
	 * Creates output with a "template only" style (like Xpand/Xtend).
	 */
	  override String generateOutput1(Amalthea amalthea) '''
		 Customer template
		 «super.generateOutput1(amalthea)»
	'''


	/**
	 * Creates output with a combination of template and functions.
	 * This allows a more flexible use of utility functions and lambdas.
	 */
	override String generateOutput2(Amalthea amalthea) '''
	Customer template
	«super.generateOutput2(amalthea)»
	'''
}