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

#ifndef __java_text_RuleBasedCollator$CollationElement__
#define __java_text_RuleBasedCollator$CollationElement__

#pragma interface

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

class java::text::RuleBasedCollator$CollationElement : public ::java::lang::Object
{

public: // actually package-private
  RuleBasedCollator$CollationElement(::java::lang::String *, jint, jshort, jshort, jshort, ::java::lang::String *, jboolean);
  jint getValue();
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) key;
  jint primary;
  jshort secondary;
  jshort tertiary;
  jshort equality;
  jboolean ignore;
  ::java::lang::String * expansion;
public:
  static ::java::lang::Class class$;
};

#endif // __java_text_RuleBasedCollator$CollationElement__
