package org.concordion.internal.listener;
import java.io.IOException;
import org.concordion.api.Target;
import org.concordion.internal.FileTarget;
import org.concordion.internal.command.SpecificationProcessingEvent;
import org.concordion.internal.command.SpecificationProcessingListener;
public class SpecificationExporter implements SpecificationProcessingListener {
private static final String XML_DECLARATION = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
private final Target target;
public SpecificationExporter(Target target) {
this.target = target;
}
public void afterProcessingSpecification(SpecificationProcessingEvent event) {
try {
target.write(event.getResource(), XML_DECLARATION + event.getRootElement().toXML());
if (target instanceof FileTarget) {
System.out.println(((FileTarget) target).getFile(event.getResource()).getAbsolutePath());
}
} catch (IOException e) {
throw new RuntimeException("Failed to write results to '" + event.getResource().getPath() + "'.", e);
}
}
public void beforeProcessingSpecification(SpecificationProcessingEvent event) {
// No action required
}
}