package com.flipkart.phantom.task.impl; import com.flipkart.phantom.task.spi.Decoder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; /** * This is a ByteArrayDecoder which is the default implementation for {@link ByteArrayDecoder} * provided by phantom to decode response of task handler execution */ public class ByteArrayDecoder implements Decoder<byte[]> { Logger logger = LoggerFactory.getLogger(ByteArrayDecoder.class); @Override public byte[] decode(String s) { return s.getBytes(); } @Override public byte[] decode(byte[] b) { return b; } @Override public byte[] decode(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line; try { while ((line = reader.readLine()) != null) { sb.append((line + "\n")); } } catch (IOException e) { logger.warn(e.getMessage()); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString().getBytes(); } }