/* * Check * * Author: Lasse Collin <lasse.collin@tukaani.org> * * This file has been put into the public domain. * You can do whatever you want with this file. */ package org.tukaani.xz.check; import org.tukaani.xz.XZ; import org.tukaani.xz.UnsupportedOptionsException; 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 (java.security.NoSuchAlgorithmException e) {} break; } throw new UnsupportedOptionsException( "Unsupported Check ID " + checkType); } }