/** Return the object represented in the attributes. */ public static MD5MD5CRC32FileChecksum valueOf(Attributes attrs ) throws SAXException { final String bytesPerCRC = attrs.getValue("bytesPerCRC"); final String crcPerBlock = attrs.getValue("crcPerBlock"); final String md5 = attrs.getValue("md5"); String crcType = attrs.getValue("crcType"); DataChecksum.Type finalCrcType; if (bytesPerCRC == null || crcPerBlock == null || md5 == null) { return null; } try { // old versions don't support crcType. if (crcType == null || crcType.equals("")) { finalCrcType = DataChecksum.Type.CRC32; } else { finalCrcType = DataChecksum.Type.valueOf(crcType); } switch (finalCrcType) { case CRC32: return new MD5MD5CRC32GzipFileChecksum( Integer.parseInt(bytesPerCRC), Integer.parseInt(crcPerBlock), new MD5Hash(md5)); case CRC32C: return new MD5MD5CRC32CastagnoliFileChecksum( Integer.parseInt(bytesPerCRC), Integer.parseInt(crcPerBlock), new MD5Hash(md5)); default: // we should never get here since finalCrcType will // hold a valid type or we should have got an exception. return null; } } catch (Exception e) { throw new SAXException("Invalid attributes: bytesPerCRC=" + bytesPerCRC + ", crcPerBlock=" + crcPerBlock + ", crcType=" + crcType + ", md5=" + md5, e); } }
/** Return the object represented in the attributes. */ public static MD5MD5CRC32FileChecksum valueOf(Attributes attrs ) throws SAXException { final String bytesPerCRC = attrs.getValue("bytesPerCRC"); final String crcPerBlock = attrs.getValue("crcPerBlock"); final String md5 = attrs.getValue("md5"); String crcType = attrs.getValue("crcType"); DataChecksum.Type finalCrcType; if (bytesPerCRC == null || crcPerBlock == null || md5 == null) { return null; } try { // old versions don't support crcType. if (crcType == null || crcType == "") { finalCrcType = DataChecksum.Type.CRC32; } else { finalCrcType = DataChecksum.Type.valueOf(crcType); } switch (finalCrcType) { case CRC32: return new MD5MD5CRC32GzipFileChecksum( Integer.parseInt(bytesPerCRC), Integer.parseInt(crcPerBlock), new MD5Hash(md5)); case CRC32C: return new MD5MD5CRC32CastagnoliFileChecksum( Integer.parseInt(bytesPerCRC), Integer.parseInt(crcPerBlock), new MD5Hash(md5)); default: // we should never get here since finalCrcType will // hold a valid type or we should have got an exception. return null; } } catch (Exception e) { throw new SAXException("Invalid attributes: bytesPerCRC=" + bytesPerCRC + ", crcPerBlock=" + crcPerBlock + ", crcType=" + crcType + ", md5=" + md5, e); } }
/** Return the object represented in the attributes. */ public static MD5MD5CRC32FileChecksum valueOf(Attributes attrs ) throws SAXException { final String bytesPerCRC = attrs.getValue("bytesPerCRC"); final String crcPerBlock = attrs.getValue("crcPerBlock"); final String md5 = attrs.getValue("md5"); String crcType = attrs.getValue("crcType"); DataChecksum.Type finalCrcType; if (bytesPerCRC == null || crcPerBlock == null || md5 == null) { return null; } try { // old versions don't support crcType. if (crcType == null || crcType == "") { finalCrcType = DataChecksum.Type.CRC32; } else { finalCrcType = DataChecksum.Type.valueOf(crcType); } switch (finalCrcType) { case CRC32: return new MD5MD5CRC32GzipFileChecksum( Integer.valueOf(bytesPerCRC), Integer.valueOf(crcPerBlock), new MD5Hash(md5)); case CRC32C: return new MD5MD5CRC32CastagnoliFileChecksum( Integer.valueOf(bytesPerCRC), Integer.valueOf(crcPerBlock), new MD5Hash(md5)); default: // we should never get here since finalCrcType will // hold a valid type or we should have got an exception. return null; } } catch (Exception e) { throw new SAXException("Invalid attributes: bytesPerCRC=" + bytesPerCRC + ", crcPerBlock=" + crcPerBlock + ", crcType=" + crcType + ", md5=" + md5, e); } }