/** * */ package de.urszeidler.shr5.acceleo.sheets; import java.io.File; import java.util.ArrayList; import java.util.List; import org.eclipse.acceleo.engine.event.AbstractAcceleoTextGenerationListener; import org.eclipse.acceleo.engine.event.AcceleoTextGenerationEvent; import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener; import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator; /** * @author urs * */ public abstract class AbstractGenerator extends AbstractAcceleoGenerator { protected boolean open; protected List<String> files = new ArrayList<String>(); protected List<File> tmpFiles = new ArrayList<File>(); /** * If this generator needs to listen to text generation events, listeners can be returned from here. * * @return List of listeners that are to be notified when text is generated through this launch. * @generated not */ @Override public List<IAcceleoTextGenerationListener> getGenerationListeners() { List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners(); AbstractAcceleoTextGenerationListener listner = new AbstractAcceleoTextGenerationListener() { @Override public void filePathComputed(AcceleoTextGenerationEvent event) { files.add(event.getText()); } }; listeners.add(listner); return listeners; } protected void removeTmpFiles() { for (File file : tmpFiles) { file.delete(); } } public boolean isOpen() { return open; } public void setOpen(boolean open) { this.open = open; } }