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

#ifndef __gnu_javax_print_ipp_attribute_printer_CharsetConfigured__
#define __gnu_javax_print_ipp_attribute_printer_CharsetConfigured__

#pragma interface

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

class gnu::javax::print::ipp::attribute::printer::CharsetConfigured : public ::gnu::javax::print::ipp::attribute::CharsetSyntax
{

public:
  CharsetConfigured(::java::lang::String *);
  ::java::lang::Class * getCategory();
  ::java::lang::String * getName();
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_print_ipp_attribute_printer_CharsetConfigured__
