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

#ifndef __javax_print_event_PrintJobAdapter__
#define __javax_print_event_PrintJobAdapter__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace print
    {
      namespace event
      {
          class PrintJobAdapter;
          class PrintJobEvent;
      }
    }
  }
}

class javax::print::event::PrintJobAdapter : public ::java::lang::Object
{

public:
  PrintJobAdapter();
  virtual void printDataTransferCompleted(::javax::print::event::PrintJobEvent *);
  virtual void printJobCanceled(::javax::print::event::PrintJobEvent *);
  virtual void printJobCompleted(::javax::print::event::PrintJobEvent *);
  virtual void printJobFailed(::javax::print::event::PrintJobEvent *);
  virtual void printJobNoMoreEvents(::javax::print::event::PrintJobEvent *);
  virtual void printJobRequiresAttention(::javax::print::event::PrintJobEvent *);
  static ::java::lang::Class class$;
};

#endif // __javax_print_event_PrintJobAdapter__
