Encoder.java

  1. /*
  2.  * @copyright defined in LICENSE.txt
  3.  */

  4. package hera.api.encode;

  5. import static hera.util.IoUtils.from;

  6. import hera.util.Base58Utils;
  7. import hera.util.Base64Utils;
  8. import hera.util.HexUtils;
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.io.Reader;
  12. import java.io.StringReader;

  13. public interface Encoder {

  14.   Encoder Hex = new Encoder() {
  15.     @Override
  16.     public Reader encode(InputStream in) throws IOException {
  17.       return new StringReader(HexUtils.encode(from(in)));
  18.     }
  19.   };

  20.   Encoder Base58 = new Encoder() {
  21.     @Override
  22.     public Reader encode(InputStream in) throws IOException {
  23.       return new StringReader(Base58Utils.encode(from(in)));
  24.     }
  25.   };

  26.   Encoder Base64 = new Encoder() {
  27.     @Override
  28.     public Reader encode(InputStream in) throws IOException {
  29.       return new StringReader(Base64Utils.encode(from(in)));
  30.     }
  31.   };

  32.   Encoder defaultEncoder = Hex;

  33.   Reader encode(InputStream in) throws IOException;

  34. }