GenModel genModel = parameter;
genModel = parameter.getGenModel();
boolean canGenerate = new CodegenGeneratorAdapter(parameter).canGenerate("org.eclipse.emf.codegen.ecore.genmodel.generator.TestsProject");
canGenerate = canGenerate && (!genModel.sameModelTestsProject());
return canGenerate;