Hi Uday,
Here are examples based on the older java mapping API for StreamTransformation and the newer stuff for AbstractTransformation.
StreamTransformation:
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Map;
import com.sap.aii.mapping.api.StreamTransformation;
public class MapFileStream implements StreamTransformation
{ private byte[] bytes = new byte[4096]; private StringBuffer sb; private String digits = "0123456789ABCDEF"; private Map map; public void execute(InputStream in, OutputStream out) { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out)); sb = new StringBuffer(); try { int len; while ((len = in.read(this.bytes)) != -1) { for (int i = 0; i < len; i++) { int c = bytes[i] & 0xFF; sb.append(digits.charAt(c >> 4)); sb.append(digits.charAt(c & 0x0F)); } } bw.write(sb.toString()); bw.flush(); bw.close(); } catch (IOException e) { e.printStackTrace(); } } @Override public void setParameter(Map param) { this.map = param; }
}AbstractTranformation:
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import com.sap.aii.mapping.api.AbstractTransformation;
import com.sap.aii.mapping.api.StreamTransformationException;
import com.sap.aii.mapping.api.TransformationInput;
import com.sap.aii.mapping.api.TransformationOutput;
public class MapFileStream extends AbstractTransformation
{ private byte[] bytes = new byte[4096]; private StringBuffer sb; private String digits = "0123456789ABCDEF"; @Override public void transform(TransformationInput in, TransformationOutput out) throws StreamTransformationException { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out.getOutputPayload().getOutputStream())); InputStream is = in.getInputPayload().getInputStream(); sb = new StringBuffer(); try { int len; while ((len = is.read(this.bytes)) != -1) { for (int i = 0; i < len; i++) { int c = bytes[i] & 0xFF; sb.append(digits.charAt(c >> 4)); sb.append(digits.charAt(c & 0x0F)); } } bw.write(sb.toString()); bw.flush(); bw.close(); } catch (IOException e) { e.printStackTrace(); } }
}