< prev index next >

src/java.desktop/share/classes/java/awt/image/PackedColorModel.java

Print this page

        

*** 25,34 **** --- 25,35 ---- package java.awt.image; import java.awt.Transparency; import java.awt.color.ColorSpace; + import java.util.Arrays; /** * The {@code PackedColorModel} class is an abstract * {@link ColorModel} class that works with pixel values which represent * color and alpha information as separate samples and which pack all
*** 383,405 **** raster.getHeight(), x, y, band); } /** ! * Tests if the specified {@code Object} is an instance ! * of {@code PackedColorModel} and equals this * {@code PackedColorModel}. * @param obj the {@code Object} to test for equality * @return {@code true} if the specified {@code Object} ! * is an instance of {@code PackedColorModel} and equals this ! * {@code PackedColorModel}; {@code false} otherwise. */ public boolean equals(Object obj) { ! if (!(obj instanceof PackedColorModel)) { ! return false; ! } ! if (!super.equals(obj)) { return false; } PackedColorModel cm = (PackedColorModel) obj; --- 384,409 ---- raster.getHeight(), x, y, band); } /** ! * Tests if the specified {@code Object} equals this * {@code PackedColorModel}. + * In order to protect the symmetry property of + * {@code (a.equals(b) == b.equals(a))}, + * the target object must be the exact same class as this + * object to evaluate as {equals}. * @param obj the {@code Object} to test for equality * @return {@code true} if the specified {@code Object} ! * equals this {@code PackedColorModel}; {@code false} otherwise. */ + @Override public boolean equals(Object obj) { ! /* ! * We verify the type of argument obj in super.equals() where we check ! * for equality of class name. ! */ if (!super.equals(obj)) { return false; } PackedColorModel cm = (PackedColorModel) obj;
*** 410,419 **** --- 414,435 ---- } } return true; } + /** + * Returns the hash code for this PackedColorModel. + * + * @return a hash code for this PackedColorModel. + */ + @Override + public int hashCode() { + int hash = super.hashCode(); + hash = 89 * hash + Arrays.hashCode(this.maskArray); + return hash; + } + private static final int[] createBitsArray(int[]colorMaskArray, int alphaMask) { int numColors = colorMaskArray.length; int numAlpha = (alphaMask == 0 ? 0 : 1); int[] arr = new int[numColors+numAlpha];
< prev index next >