package org.eclipse.gmf.codegen.util; import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator; import org.eclipse.gmf.codegen.util.Generator; import org.eclipse.gmf.common.UnexpectedBehaviourException; import org.eclipse.gmf.internal.common.codegen.CodeFormatterFactory; public class GeneratorWithXtend2 extends Generator { private CodegenEmittersWithXtend2 myEmitters; public GeneratorWithXtend2(GenEditorGenerator genModel) { this(genModel, new CodegenEmittersWithXtend2(genModel)); } public GeneratorWithXtend2(GenEditorGenerator genModel, CodegenEmittersWithXtend2 codegenEmitters) { this(genModel, codegenEmitters, CodeFormatterFactory.DEFAULT); } public GeneratorWithXtend2(GenEditorGenerator genModel, CodegenEmittersWithXtend2 codegenEmitters, CodeFormatterFactory codeFormatterFactory) { super(genModel, codegenEmitters, codeFormatterFactory); myEmitters = codegenEmitters; } protected void customRun() throws InterruptedException, UnexpectedBehaviourException { try { super.customRun(); } finally { hookGenerationCompleted(); } } protected CodegenEmittersWithXtend2 getEmitters() { return myEmitters; } protected void hookGenerationCompleted() { myEmitters.disposeEmitters(); } }