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

#ifndef __java_text_AttributedString$AttributeRange__
#define __java_text_AttributedString$AttributeRange__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace text
    {
        class AttributedString;
        class AttributedString$AttributeRange;
    }
  }
}

class java::text::AttributedString$AttributeRange : public ::java::lang::Object
{

public: // actually package-private
  AttributedString$AttributeRange(::java::text::AttributedString *, ::java::util::Map *, jint, jint);
  ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attribs;
  jint beginIndex;
  jint endIndex;
  ::java::text::AttributedString * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_text_AttributedString$AttributeRange__
