case DataBuffer.TYPE_BYTE: { DataBufferByte out = (DataBufferByte) data; byte[] in = (byte[]) obj;
rowSize *= h; h = 1; }
  public void setDataElements(int x, int y, Object obj, DataBuffer data)  {    int offset = pixelStride*x + scanlineStride*y;		int[] totalBandDataOffsets = new int[numBands];		int[] bankOffsets = data.getOffsets();    for (int b=0; b<numBands; b++)      totalBandDataOffsets[b] =	bandOffsets[b]+bankOffsets[bankIndices[b]] + offset;    switch (getTransferType())      {      case DataBuffer.TYPE_BYTE:				{					DataBufferByte out = (DataBufferByte) data;					byte[] in = (byte[]) obj;	  for (int b=0; b<numBands; b++)						out.getData(bankIndices[b])[totalBandDataOffsets[b]] = in[b];					return;				}      case DataBuffer.TYPE_USHORT:				{					DataBufferUShort out = (DataBufferUShort) data;					short[] in = (short[]) obj;	  for (int b=0; b<numBands; b++)						out.getData(bankIndices[b])[totalBandDataOffsets[b]] = in[b];					return;				}      case DataBuffer.TYPE_SHORT:	{	  DataBufferShort out = (DataBufferShort) data;	  short[] in = (short[]) obj;	  	  for (int b=0; b<numBands; b++)	    out.getData(bankIndices[b])[totalBandDataOffsets[b]] = in[b];	  	  return;	}      case DataBuffer.TYPE_INT:				{					DataBufferInt out = (DataBufferInt) data;					int[] in = (int[]) obj;	  for (int b=0; b<numBands; b++)						out.getData(bankIndices[b])[totalBandDataOffsets[b]] = in[b];					return;				}      case DataBuffer.TYPE_FLOAT:	{	  DataBufferFloat out = (DataBufferFloat) data;	  float[] in = (float[]) obj;	  	  for (int b=0; b<numBands; b++)	    out.getData(bankIndices[b])[totalBandDataOffsets[b]] = in[b];	  	  return;	}      case DataBuffer.TYPE_DOUBLE:	{	  DataBufferDouble out = (DataBufferDouble) data;	  double[] in = (double[]) obj;	  	  for (int b=0; b<numBands; b++)	    out.getData(bankIndices[b])[totalBandDataOffsets[b]] = in[b];	  	  return;	}      default:	throw new UnsupportedOperationException("transfer type not " +						"implemented");		}	}