org.rcsb.cif.binary.data.ByteArray Maven / Gradle / Ivy
package org.rcsb.cif.binary.data;
import org.rcsb.cif.binary.encoding.ByteArrayEncoding;
import org.rcsb.cif.binary.encoding.Encoding;
import org.rcsb.cif.binary.encoding.StringArrayEncoding;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Deque;
/**
* The abstraction of binary data.
*/
public class ByteArray extends AbstractEncodedData {
public ByteArray(byte[] data) {
this(data, new ArrayDeque<>());
}
public ByteArray(byte[] data, Deque> encoding) {
super(data, encoding);
}
@Override
public byte[] getData() {
return (byte[]) data;
}
@Override
public int length() {
return getData().length;
}
@Override
public String toString() {
return getClass().getSimpleName() + ": " + Arrays.toString(getData());
}
public > T decode(ByteArrayEncoding encoding) {
return encoding.decode(this);
}
public StringArray decode(StringArrayEncoding encoding) {
return encoding.decode(this);
}
}