package org.xrepl.generator;
import java.util.List;
import org.apache.log4j.Logger;
import org.eclipse.emf.mwe.core.issues.Issues;
import org.eclipse.xpand2.XpandExecutionContext;
import org.eclipse.xtext.Grammar;
import org.eclipse.xtext.GrammarUtil;
import org.eclipse.xtext.generator.AbstractGeneratorFragment;
import org.eclipse.xtext.generator.Naming;
import com.google.common.collect.Lists;
public class Junit4Fragment extends AbstractGeneratorFragment {
private static final Logger log = Logger.getLogger(Junit4Fragment.class);
private String projectName;
public void setReplProjectName(String projectName) {
this.projectName = projectName;
}
@Override
public void generate(Grammar grammar, XpandExecutionContext ctx) {
if (getNaming().getPathTestProject()!=null) {
if (log.isInfoEnabled()) {
log.info("generating Junit4 Test support classes");
}
super.generate(grammar, ctx);
} else {
log.warn("skip execution of '"+getClass().getName()+"' due to missing configuration");
}
}
@Override
protected List<Object> getParameters(Grammar grammar) {
return Lists.<Object>newArrayList(this);
}
@Override
public void checkConfiguration(Issues issues) {
super.checkConfiguration(issues);
if (getNaming().getPathTestProject()==null) {
issues.addWarning("Missing test project path configuration 'Generator#pathTestProject' required for fragment '"+getClass().getName()+"'.");
}
}
@Override
public String[] getExportedPackagesUi(Grammar grammar) {
return new String[] { getNaming().activatorPackageName()};
}
}