import com.sap.aii.mapping.api.DynamicConfiguration;
import com.sap.aii.mapping.api.DynamicConfigurationKey;
import com.sap.aii.mapping.api.StreamTransformation;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Map;
public class MapFileStream
implements StreamTransformation
{
private byte[] bytes = new byte[4096];
private StringBuffer sb;
private String digits = "0123456789ABCDEF";
private Map map;
private static final DynamicConfigurationKey KEY_FILENAME = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
private static final DynamicConfigurationKey KEY_FILETYPE = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileType");
public void setParameter(Map param)
{
this.map = param;
}
public void execute(InputStream in, OutputStream out)
{
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
DynamicConfiguration conf = (DynamicConfiguration)this.map.get(
"DynamicConfiguration");
String fileName = conf.get(KEY_FILENAME);
String fileType = conf.get(KEY_FILETYPE);
this.sb = new StringBuffer();
try
{
int len;
while ((len = in.read(this.bytes)) != -1)
{
int len;
for (int i = 0; i < len; i++)
{
int c = this.bytes[i] & 0xFF;
this.sb.append(this.digits.charAt(c >> 4));
this.sb.append(this.digits.charAt(c & 0xF));
}
}
}
catch (IOException e)
{
e.printStackTrace();
}
try
{
String header = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
header = header + "<ns:MT_FILE_IN filename=\"";
header = header + fileName;
header = header + "\" filetype=\"";
header = header + fileType;
header = header + "\" xmlns:ns=\"http://idexxi.com/sapxi/xiftp/anyfile\">";
bw.write(header);
bw.write(this.sb.toString());
String trailer = "</ns:MT_FILE_IN>";
bw.write(trailer);
bw.close();
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
5 | |
5 | |
4 | |
4 | |
4 | |
4 | |
4 | |
3 | |
3 |