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

#ifndef __javax_swing_plaf_BorderUIResource$EmptyBorderUIResource__
#define __javax_swing_plaf_BorderUIResource$EmptyBorderUIResource__

#pragma interface

#include <javax/swing/border/EmptyBorder.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Insets;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
          class BorderUIResource$EmptyBorderUIResource;
      }
    }
  }
}

class javax::swing::plaf::BorderUIResource$EmptyBorderUIResource : public ::javax::swing::border::EmptyBorder
{

public:
  BorderUIResource$EmptyBorderUIResource(jint, jint, jint, jint);
  BorderUIResource$EmptyBorderUIResource(::java::awt::Insets *);
private:
  static const jlong serialVersionUID = -4914187529340071708LL;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_BorderUIResource$EmptyBorderUIResource__
