// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_awt_image_SampleModel__
#define __java_awt_image_SampleModel__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace image
      {
        class SampleModel;
        class DataBuffer;
      }
    }
  }
}

class java::awt::image::SampleModel : public ::java::lang::Object
{
public:
  SampleModel (jint, jint, jint, jint);
  jint getWidth () { return width; }
  jint getHeight () { return height; }
  jint getNumBands () { return numBands; }
  virtual jint getNumDataElements () = 0;
  jint getDataType () { return dataType; }
  virtual jint getTransferType () { return dataType; }
  virtual jintArray getPixel (jint, jint, jintArray, ::java::awt::image::DataBuffer *);
  virtual ::java::lang::Object *getDataElements (jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *) = 0;
  virtual ::java::lang::Object *getDataElements (jint, jint, jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
  virtual void setDataElements (jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *) = 0;
  virtual void setDataElements (jint, jint, jint, jint, ::java::lang::Object *, ::java::awt::image::DataBuffer *);
  virtual jfloatArray getPixel (jint, jint, jfloatArray, ::java::awt::image::DataBuffer *);
  virtual jdoubleArray getPixel (jint, jint, jdoubleArray, ::java::awt::image::DataBuffer *);
  virtual jintArray getPixels (jint, jint, jint, jint, jintArray, ::java::awt::image::DataBuffer *);
  virtual jfloatArray getPixels (jint, jint, jint, jint, jfloatArray, ::java::awt::image::DataBuffer *);
  virtual jdoubleArray getPixels (jint, jint, jint, jint, jdoubleArray, ::java::awt::image::DataBuffer *);
  virtual jint getSample (jint, jint, jint, ::java::awt::image::DataBuffer *) = 0;
  virtual jfloat getSampleFloat (jint, jint, jint, ::java::awt::image::DataBuffer *);
  virtual jdouble getSampleDouble (jint, jint, jint, ::java::awt::image::DataBuffer *);
  virtual jintArray getSamples (jint, jint, jint, jint, jint, jintArray, ::java::awt::image::DataBuffer *);
  virtual jfloatArray getSamples (jint, jint, jint, jint, jint, jfloatArray, ::java::awt::image::DataBuffer *);
  virtual jdoubleArray getSamples (jint, jint, jint, jint, jint, jdoubleArray, ::java::awt::image::DataBuffer *);
  virtual void setPixel (jint, jint, jintArray, ::java::awt::image::DataBuffer *);
  virtual void setPixel (jint, jint, jfloatArray, ::java::awt::image::DataBuffer *);
  virtual void setPixel (jint, jint, jdoubleArray, ::java::awt::image::DataBuffer *);
  virtual void setPixels (jint, jint, jint, jint, jintArray, ::java::awt::image::DataBuffer *);
  virtual void setPixels (jint, jint, jint, jint, jfloatArray, ::java::awt::image::DataBuffer *);
  virtual void setPixels (jint, jint, jint, jint, jdoubleArray, ::java::awt::image::DataBuffer *);
  virtual void setSample (jint, jint, jint, jint, ::java::awt::image::DataBuffer *) = 0;
  virtual void setSample (jint, jint, jint, jfloat, ::java::awt::image::DataBuffer *);
  virtual void setSample (jint, jint, jint, jdouble, ::java::awt::image::DataBuffer *);
  virtual void setSamples (jint, jint, jint, jint, jint, jintArray, ::java::awt::image::DataBuffer *);
  virtual void setSamples (jint, jint, jint, jint, jint, jfloatArray, ::java::awt::image::DataBuffer *);
  virtual void setSamples (jint, jint, jint, jint, jint, jdoubleArray, ::java::awt::image::DataBuffer *);
  virtual ::java::awt::image::SampleModel *createCompatibleSampleModel (jint, jint) = 0;
  virtual ::java::awt::image::SampleModel *createSubsetSampleModel (jintArray) = 0;
  virtual ::java::awt::image::DataBuffer *createDataBuffer () = 0;
  virtual jintArray getSampleSize () = 0;
  virtual jint getSampleSize (jint) = 0;
public:  // actually protected
  jint __attribute__((aligned(__alignof__( ::java::lang::Object ))))  width;
  jint height;
  jint numBands;
  jint dataType;
public:

  static ::java::lang::Class class$;
};

#endif /* __java_awt_image_SampleModel__ */
