/* Copyright (C) 2000 Free Software Foundation This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ package java.awt.image; /** * @author Rolf W. Rasmussen */ public abstract class SampleModel { /** Width of image described. */ protected int width; /** Height of image described. */ protected int height; /** Number of bands in the image described. */ protected int numBands; /** * The DataBuffer type that is used to store the data of the image * described. */ protected int dataType; public SampleModel(int dataType, int w, int h, int numBands) { if ((w<=0) || (h<=0)) throw new IllegalArgumentException(); // FIXME: How can an int be greater than Integer.MAX_VALUE? // FIXME: How do we identify an unsupported data type? this.dataType = dataType; this.width = w; this.height = h; this.numBands = numBands; } public final int getWidth() { return width; } public final int getHeight() { return height; } public final int getNumBands() { return numBands; } public abstract int getNumDataElements(); public final int getDataType() { return dataType; } public int getTransferType() { // FIXME: Is this a reasonable default implementation? return dataType; } public int[] getPixel(int x, int y, int[] iArray, DataBuffer data) { if (iArray == null) iArray = new int[numBands]; for (int b=0; b