package org.kisst.gft.action;
import java.io.FileOutputStream;
import java.io.IOException;
import org.kisst.gft.GftContainer;
import org.kisst.gft.task.BasicTask;
import org.kisst.gft.task.SoapTask;
import org.kisst.gft.task.Task;
import org.kisst.props4j.Props;
import org.kisst.util.Base64;
public class DecodeBase64ToFileAction implements Action{
//private static final Logger logger = LoggerFactory.getLogger(DecodeBase64ToFileAction.class);
public DecodeBase64ToFileAction(GftContainer gft, Props props) {}
@Override
public void execute(Task task) {
SoapTask soaptask = (SoapTask) task;
BasicTask basictask = (BasicTask) task;
try {
FileOutputStream fos = null;
try {
String encoded = soaptask.getContent().getChildText("bestandsinhoud");
byte[] bytes = Base64.decode(encoded);
fos = new FileOutputStream(basictask.getTempFile());
fos.write(bytes);
}
finally {
if (fos!=null)
fos.close();
}
}
catch (IOException e) { throw new RuntimeException(e);}
}
@Override
public boolean safeToRetry() {
return false;
}
}