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

#ifndef __gnu_java_beans_decoder_Context__
#define __gnu_java_beans_decoder_Context__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace beans
      {
        namespace decoder
        {
            class Context;
        }
      }
    }
  }
}

class gnu::java::beans::decoder::Context : public ::java::lang::Object
{

public:
  virtual void addParameterObject(::java::lang::Object *) = 0;
  virtual void notifyStatement(::gnu::java::beans::decoder::Context *) = 0;
  virtual ::java::lang::Object * endContext(::gnu::java::beans::decoder::Context *) = 0;
  virtual jboolean subContextFailed() = 0;
  virtual void set(jint, ::java::lang::Object *) = 0;
  virtual ::java::lang::Object * get(jint) = 0;
  virtual ::java::lang::Object * getResult() = 0;
  virtual void setId(::java::lang::String *) = 0;
  virtual ::java::lang::String * getId() = 0;
  virtual jboolean isStatement() = 0;
  virtual void setStatement(jboolean) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __gnu_java_beans_decoder_Context__
