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

#ifndef __gnu_javax_swing_text_html_css_FontWeight__
#define __gnu_javax_swing_text_html_css_FontWeight__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace swing
      {
        namespace text
        {
          namespace html
          {
            namespace css
            {
                class FontWeight;
            }
          }
        }
      }
    }
  }
}

class gnu::javax::swing::text::html::css::FontWeight : public ::java::lang::Object
{

public:
  FontWeight(::java::lang::String *);
  virtual jint getValue();
private:
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) value;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_swing_text_html_css_FontWeight__
