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

#ifndef __javax_swing_UIDefaults$ProxyLazyValue__
#define __javax_swing_UIDefaults$ProxyLazyValue__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace swing
    {
        class UIDefaults;
        class UIDefaults$LazyValue;
        class UIDefaults$ProxyLazyValue;
    }
  }
}

class javax::swing::UIDefaults$ProxyLazyValue : public ::java::lang::Object
{

public:
  UIDefaults$ProxyLazyValue(::java::lang::String *);
  UIDefaults$ProxyLazyValue(::java::lang::String *, ::java::lang::String *);
  UIDefaults$ProxyLazyValue(::java::lang::String *, JArray< ::java::lang::Object * > *);
  UIDefaults$ProxyLazyValue(::java::lang::String *, ::java::lang::String *, JArray< ::java::lang::Object * > *);
  virtual ::java::lang::Object * createValue(::javax::swing::UIDefaults *);
public: // actually package-private
  ::javax::swing::UIDefaults$LazyValue * __attribute__((aligned(__alignof__( ::java::lang::Object)))) inner;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_UIDefaults$ProxyLazyValue__
