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

#ifndef __javax_swing_SpringLayout$DeferredHeight__
#define __javax_swing_SpringLayout$DeferredHeight__

#pragma interface

#include <javax/swing/SpringLayout$DeferredDimension.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class SpringLayout$DeferredHeight;
    }
  }
}

class javax::swing::SpringLayout$DeferredHeight : public ::javax::swing::SpringLayout$DeferredDimension
{

public:
  virtual ::java::lang::String * toString();
  SpringLayout$DeferredHeight(::java::awt::Component *);
  virtual jint getMaximumValue();
  virtual jint getMinimumValue();
  virtual jint getPreferredValue();
private:
  ::java::awt::Component * __attribute__((aligned(__alignof__( ::javax::swing::SpringLayout$DeferredDimension)))) c;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_SpringLayout$DeferredHeight__
