147 148 /** 149 * Creates a new PixelInterleavedSampleModel with a subset of the 150 * bands of this PixelInterleavedSampleModel. The new 151 * PixelInterleavedSampleModel can be used with any DataBuffer that the 152 * existing PixelInterleavedSampleModel can be used with. The new 153 * PixelInterleavedSampleModel/DataBuffer combination will represent 154 * an image with a subset of the bands of the original 155 * PixelInterleavedSampleModel/DataBuffer combination. 156 */ 157 public SampleModel createSubsetSampleModel(int bands[]) { 158 int newBandOffsets[] = new int[bands.length]; 159 for (int i=0; i<bands.length; i++) { 160 newBandOffsets[i] = bandOffsets[bands[i]]; 161 } 162 return new PixelInterleavedSampleModel(this.dataType, width, height, 163 this.pixelStride, 164 scanlineStride, newBandOffsets); 165 } 166 167 // Differentiate hash code from other ComponentSampleModel subclasses 168 public int hashCode() { 169 return super.hashCode() ^ 0x1; 170 } 171 } | 147 148 /** 149 * Creates a new PixelInterleavedSampleModel with a subset of the 150 * bands of this PixelInterleavedSampleModel. The new 151 * PixelInterleavedSampleModel can be used with any DataBuffer that the 152 * existing PixelInterleavedSampleModel can be used with. The new 153 * PixelInterleavedSampleModel/DataBuffer combination will represent 154 * an image with a subset of the bands of the original 155 * PixelInterleavedSampleModel/DataBuffer combination. 156 */ 157 public SampleModel createSubsetSampleModel(int bands[]) { 158 int newBandOffsets[] = new int[bands.length]; 159 for (int i=0; i<bands.length; i++) { 160 newBandOffsets[i] = bandOffsets[bands[i]]; 161 } 162 return new PixelInterleavedSampleModel(this.dataType, width, height, 163 this.pixelStride, 164 scanlineStride, newBandOffsets); 165 } 166 167 /** 168 * Tests if the specified {@code Object} is an instance 169 * of {@code PixelInterleavedSampleModel} and equals this 170 * {@code PixelInterleavedSampleModel}. 171 * @param obj the {@code Object} to test for equality 172 * @return {@code true} if the specified {@code Object} 173 * is an instance of {@code PixelInterleavedSampleModel} and equals this 174 * {@code PixelInterleavedSampleModel}; {@code false} otherwise. 175 */ 176 @Override 177 public boolean equals(Object obj) { 178 179 if (!(obj instanceof PixelInterleavedSampleModel)) { 180 return false; 181 } 182 183 PixelInterleavedSampleModel cm = (PixelInterleavedSampleModel) obj; 184 if (this == cm) { 185 return true; 186 } 187 188 if (!super.equals(obj)) { 189 return false; 190 } 191 return true; 192 } 193 194 /** 195 * Returns the hash code for this PixelInterleavedSampleModel. 196 * 197 * @return a hash code for this PixelInterleavedSampleModel. 198 */ 199 @Override 200 public int hashCode() { 201 int hash = 3; 202 hash = 11 * hash + super.hashCode(); 203 return hash; 204 } 205 } |