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

#ifndef __javax_print_attribute_HashPrintJobAttributeSet__
#define __javax_print_attribute_HashPrintJobAttributeSet__

#pragma interface

#include <javax/print/attribute/HashAttributeSet.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace print
    {
      namespace attribute
      {
          class HashPrintJobAttributeSet;
          class PrintJobAttribute;
          class PrintJobAttributeSet;
      }
    }
  }
}

class javax::print::attribute::HashPrintJobAttributeSet : public ::javax::print::attribute::HashAttributeSet
{

public:
  HashPrintJobAttributeSet();
  HashPrintJobAttributeSet(::javax::print::attribute::PrintJobAttribute *);
  HashPrintJobAttributeSet(JArray< ::javax::print::attribute::PrintJobAttribute * > *);
  HashPrintJobAttributeSet(::javax::print::attribute::PrintJobAttributeSet *);
private:
  static const jlong serialVersionUID = -4204473656070350348LL;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_print_attribute_HashPrintJobAttributeSet__
