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 PixelInterleavedSampleModel cm = (PixelInterleavedSampleModel) obj; 180 if (this == cm) { 181 return true; 182 } 183 184 if (!super.equals(obj)) { 185 return false; 186 } 187 return true; 188 } 189 190 /** 191 * Returns the hash code for this PixelInterleavedSampleModel. 192 * 193 * @return a hash code for this PixelInterleavedSampleModel. 194 */ 195 @Override 196 public int hashCode() { 197 int hash = 3; 198 hash = 11 * hash + super.hashCode(); 199 return hash; 200 } 201 } |