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

#ifndef __gnu_java_util_regex_CharIndexedString__
#define __gnu_java_util_regex_CharIndexedString__

#pragma interface

#include <gnu/java/util/regex/CharIndexedCharSequence.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace util
      {
        namespace regex
        {
            class CharIndexedString;
        }
      }
    }
  }
}

class gnu::java::util::regex::CharIndexedString : public ::gnu::java::util::regex::CharIndexedCharSequence
{

public: // actually package-private
  CharIndexedString(::java::lang::String *, jint);
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_util_regex_CharIndexedString__
