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

#ifndef __gnu_javax_print_ipp_attribute_printer_DocumentFormat__
#define __gnu_javax_print_ipp_attribute_printer_DocumentFormat__

#pragma interface

#include <javax/print/attribute/TextSyntax.h>
extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace print
      {
        namespace ipp
        {
          namespace attribute
          {
            namespace printer
            {
                class DocumentFormat;
            }
          }
        }
      }
    }
  }
  namespace javax
  {
    namespace print
    {
        class DocFlavor;
    }
  }
}

class gnu::javax::print::ipp::attribute::printer::DocumentFormat : public ::javax::print::attribute::TextSyntax
{

public:
  DocumentFormat(::java::lang::String *, ::java::util::Locale *);
  static ::gnu::javax::print::ipp::attribute::printer::DocumentFormat * createDocumentFormat(::javax::print::DocFlavor *);
  ::java::lang::Class * getCategory();
  ::java::lang::String * getName();
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_print_ipp_attribute_printer_DocumentFormat__
