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

org.xbib.io.compress.xz.check.Check Maven / Gradle / Ivy

The newest version!
package org.xbib.io.compress.xz.check;

import org.xbib.io.compress.xz.UnsupportedOptionsException;
import org.xbib.io.compress.xz.XZ;

import java.security.NoSuchAlgorithmException;

public abstract class Check {

    int size;

    String name;

    public abstract void update(byte[] buf, int off, int len);

    public abstract byte[] finish();

    public void update(byte[] buf) {
        update(buf, 0, buf.length);
    }

    public int getSize() {
        return size;
    }

    public String getName() {
        return name;
    }

    public static Check getInstance(int checkType)
            throws UnsupportedOptionsException {
        switch (checkType) {
            case XZ.CHECK_NONE:
                return new None();

            case XZ.CHECK_CRC32:
                return new CRC32();

            case XZ.CHECK_CRC64:
                return new CRC64();

            case XZ.CHECK_SHA256:
                try {
                    return new SHA256();
                } catch (NoSuchAlgorithmException e) {
                }
                break;
        }
        throw new UnsupportedOptionsException(
                "Unsupported Check ID " + checkType);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy