Class BinaryCodec

  • All Implemented Interfaces:
    BinaryDecoder, BinaryEncoder, Decoder, Encoder

    public class BinaryCodec
    extends java.lang.Object
    implements BinaryDecoder, BinaryEncoder
    Converts between byte arrays and strings of "0"s and "1"s.

    This class is immutable and thread-safe.

    TODO: may want to add more bit vector functions like and/or/xor/nand TODO: also might be good to generate boolean[] from byte[] et cetera.
    Since:
    1.3
    • Constructor Summary

      Constructors 
      Constructor Description
      BinaryCodec()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      byte[] decode​(byte[] ascii)
      Decodes a byte array where each byte represents an ASCII '0' or '1'.
      java.lang.Object decode​(java.lang.Object ascii)
      Decodes a byte array where each byte represents an ASCII '0' or '1'.
      byte[] encode​(byte[] raw)
      Converts an array of raw binary data into an array of ASCII 0 and 1 characters.
      java.lang.Object encode​(java.lang.Object raw)
      Converts an array of raw binary data into an array of ASCII 0 and 1 chars.
      static byte[] fromAscii​(byte[] ascii)
      Decodes a byte array where each byte represents an ASCII '0' or '1'.
      static byte[] fromAscii​(char[] ascii)
      Decodes a char array where each char represents an ASCII '0' or '1'.
      static byte[] toAsciiBytes​(byte[] raw)
      Converts an array of raw binary data into an array of ASCII 0 and 1 character bytes - each byte is a truncated char.
      static char[] toAsciiChars​(byte[] raw)
      Converts an array of raw binary data into an array of ASCII 0 and 1 characters.
      static java.lang.String toAsciiString​(byte[] raw)
      Converts an array of raw binary data into a String of ASCII 0 and 1 characters.
      byte[] toByteArray​(java.lang.String ascii)
      Decodes a String where each char of the String represents an ASCII '0' or '1'.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BinaryCodec

        public BinaryCodec()
    • Method Detail

      • fromAscii

        public static byte[] fromAscii​(byte[] ascii)
        Decodes a byte array where each byte represents an ASCII '0' or '1'.
        Parameters:
        ascii - each byte represents an ASCII '0' or '1'
        Returns:
        the raw encoded binary where each bit corresponds to a byte in the byte array argument
      • fromAscii

        public static byte[] fromAscii​(char[] ascii)
        Decodes a char array where each char represents an ASCII '0' or '1'.
        Parameters:
        ascii - each char represents an ASCII '0' or '1'
        Returns:
        the raw encoded binary where each bit corresponds to a char in the char array argument
      • toAsciiBytes

        public static byte[] toAsciiBytes​(byte[] raw)
        Converts an array of raw binary data into an array of ASCII 0 and 1 character bytes - each byte is a truncated char.
        Parameters:
        raw - the raw binary data to convert
        Returns:
        an array of 0 and 1 character bytes for each bit of the argument
        See Also:
        BinaryEncoder.encode(byte[])
      • toAsciiChars

        public static char[] toAsciiChars​(byte[] raw)
        Converts an array of raw binary data into an array of ASCII 0 and 1 characters.
        Parameters:
        raw - the raw binary data to convert
        Returns:
        an array of 0 and 1 characters for each bit of the argument
        See Also:
        BinaryEncoder.encode(byte[])
      • toAsciiString

        public static java.lang.String toAsciiString​(byte[] raw)
        Converts an array of raw binary data into a String of ASCII 0 and 1 characters.
        Parameters:
        raw - the raw binary data to convert
        Returns:
        a String of 0 and 1 characters representing the binary data
        See Also:
        BinaryEncoder.encode(byte[])
      • decode

        public byte[] decode​(byte[] ascii)
        Decodes a byte array where each byte represents an ASCII '0' or '1'.
        Specified by:
        decode in interface BinaryDecoder
        Parameters:
        ascii - each byte represents an ASCII '0' or '1'
        Returns:
        the raw encoded binary where each bit corresponds to a byte in the byte array argument
        See Also:
        Decoder.decode(Object)
      • decode

        public java.lang.Object decode​(java.lang.Object ascii)
                                throws DecoderException
        Decodes a byte array where each byte represents an ASCII '0' or '1'.
        Specified by:
        decode in interface Decoder
        Parameters:
        ascii - each byte represents an ASCII '0' or '1'
        Returns:
        the raw encoded binary where each bit corresponds to a byte in the byte array argument
        Throws:
        DecoderException - if argument is not a byte[], char[] or String
        See Also:
        Decoder.decode(Object)
      • encode

        public byte[] encode​(byte[] raw)
        Converts an array of raw binary data into an array of ASCII 0 and 1 characters.
        Specified by:
        encode in interface BinaryEncoder
        Parameters:
        raw - the raw binary data to convert
        Returns:
        0 and 1 ASCII character bytes one for each bit of the argument
        See Also:
        BinaryEncoder.encode(byte[])
      • encode

        public java.lang.Object encode​(java.lang.Object raw)
                                throws EncoderException
        Converts an array of raw binary data into an array of ASCII 0 and 1 chars.
        Specified by:
        encode in interface Encoder
        Parameters:
        raw - the raw binary data to convert
        Returns:
        0 and 1 ASCII character chars one for each bit of the argument
        Throws:
        EncoderException - if the argument is not a byte[]
        See Also:
        Encoder.encode(Object)
      • toByteArray

        public byte[] toByteArray​(java.lang.String ascii)
        Decodes a String where each char of the String represents an ASCII '0' or '1'.
        Parameters:
        ascii - String of '0' and '1' characters
        Returns:
        the raw encoded binary where each bit corresponds to a byte in the byte array argument
        See Also:
        Decoder.decode(Object)