All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy