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

#ifndef __gnu_xml_transform_AttributeSet__
#define __gnu_xml_transform_AttributeSet__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace transform
      {
          class AttributeSet;
          class Stylesheet;
          class TemplateNode;
      }
    }
  }
}

class gnu::xml::transform::AttributeSet : public ::java::lang::Object
{

public: // actually package-private
  AttributeSet(::gnu::xml::transform::TemplateNode *, ::java::lang::String *, ::java::lang::String *);
  ::gnu::xml::transform::AttributeSet * clone(::gnu::xml::transform::Stylesheet *);
  ::gnu::xml::transform::TemplateNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) children;
  ::java::lang::String * name;
  ::java::lang::String * uas;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_transform_AttributeSet__
