src/java.base/share/classes/java/util/zip/Adler32.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 32,44 **** * A class that can be used to compute the Adler-32 checksum of a data * stream. An Adler-32 checksum is almost as reliable as a CRC-32 but * can be computed much faster. * * <p> Passing a {@code null} argument to a method in this class will cause ! * a {@link NullPointerException} to be thrown. * - * @see Checksum * @author David Connelly */ public class Adler32 implements Checksum { --- 32,43 ---- * A class that can be used to compute the Adler-32 checksum of a data * stream. An Adler-32 checksum is almost as reliable as a CRC-32 but * can be computed much faster. * * <p> Passing a {@code null} argument to a method in this class will cause ! * a {@link NullPointerException} to be thrown.</p> * * @author David Connelly */ public class Adler32 implements Checksum {
*** 51,75 **** } /** * Updates the checksum with the specified byte (the low eight * bits of the argument b). - * - * @param b the byte to update the checksum with */ public void update(int b) { adler = update(adler, b); } /** * Updates the checksum with the specified array of bytes. * * @throws ArrayIndexOutOfBoundsException ! * if {@code off} is negative, or {@code len} is negative, ! * or {@code off+len} is greater than the length of the ! * array {@code b} */ public void update(byte[] b, int off, int len) { if (b == null) { throw new NullPointerException(); } if (off < 0 || len < 0 || off > b.length - len) { --- 50,74 ---- } /** * Updates the checksum with the specified byte (the low eight * bits of the argument b). */ + @Override public void update(int b) { adler = update(adler, b); } /** * Updates the checksum with the specified array of bytes. * * @throws ArrayIndexOutOfBoundsException ! * if {@code off} is negative, or {@code len} is negative, or ! * {@code off+len} is negative or greater than the length of ! * the array {@code b}. */ + @Override public void update(byte[] b, int off, int len) { if (b == null) { throw new NullPointerException(); } if (off < 0 || len < 0 || off > b.length - len) {
*** 77,108 **** } adler = updateBytes(adler, b, off, len); } /** - * Updates the checksum with the specified array of bytes. - * - * @param b the byte array to update the checksum with - */ - public void update(byte[] b) { - adler = updateBytes(adler, b, 0, b.length); - } - - - /** * Updates the checksum with the bytes from the specified buffer. * ! * The checksum is updated using ! * buffer.{@link java.nio.Buffer#remaining() remaining()} ! * bytes starting at ! * buffer.{@link java.nio.Buffer#position() position()} ! * Upon return, the buffer's position will be updated to its ! * limit; its limit will not have been changed. * - * @param buffer the ByteBuffer to update the checksum with * @since 1.8 */ public void update(ByteBuffer buffer) { int pos = buffer.position(); int limit = buffer.limit(); assert (pos <= limit); int rem = limit - pos; --- 76,94 ---- } adler = updateBytes(adler, b, off, len); } /** * Updates the checksum with the bytes from the specified buffer. * ! * The checksum is updated with the remaining bytes in the buffer, starting ! * at the buffer's position. Upon return, the buffer's position will be ! * updated to its limit; its limit will not have been changed. * * @since 1.8 */ + @Override public void update(ByteBuffer buffer) { int pos = buffer.position(); int limit = buffer.limit(); assert (pos <= limit); int rem = limit - pos;
*** 121,137 **** --- 107,125 ---- } /** * Resets the checksum to initial value. */ + @Override public void reset() { adler = 1; } /** * Returns the checksum value. */ + @Override public long getValue() { return (long)adler & 0xffffffffL; } private native static int update(int adler, int b);