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

#ifndef __java_awt_font_TransformAttribute__
#define __java_awt_font_TransformAttribute__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace font
      {
          class TransformAttribute;
      }
      namespace geom
      {
          class AffineTransform;
      }
    }
  }
}

class java::awt::font::TransformAttribute : public ::java::lang::Object
{

public:
  TransformAttribute(::java::awt::geom::AffineTransform *);
  ::java::awt::geom::AffineTransform * getTransform();
  jboolean isIdentity();
private:
  static const jlong serialVersionUID = 3356247357827709530LL;
  ::java::awt::geom::AffineTransform * __attribute__((aligned(__alignof__( ::java::lang::Object)))) affineTransform;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_font_TransformAttribute__
