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

#ifndef __javax_sql_RowSetMetaData__
#define __javax_sql_RowSetMetaData__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace sql
    {
        class RowSetMetaData;
    }
  }
}

class javax::sql::RowSetMetaData : public ::java::lang::Object
{

public:
  virtual void setColumnCount(jint) = 0;
  virtual void setAutoIncrement(jint, jboolean) = 0;
  virtual void setCaseSensitive(jint, jboolean) = 0;
  virtual void setSearchable(jint, jboolean) = 0;
  virtual void setCurrency(jint, jboolean) = 0;
  virtual void setNullable(jint, jint) = 0;
  virtual void setSigned(jint, jboolean) = 0;
  virtual void setColumnDisplaySize(jint, jint) = 0;
  virtual void setColumnLabel(jint, ::java::lang::String *) = 0;
  virtual void setColumnName(jint, ::java::lang::String *) = 0;
  virtual void setSchemaName(jint, ::java::lang::String *) = 0;
  virtual void setPrecision(jint, jint) = 0;
  virtual void setScale(jint, jint) = 0;
  virtual void setTableName(jint, ::java::lang::String *) = 0;
  virtual void setCatalogName(jint, ::java::lang::String *) = 0;
  virtual void setColumnType(jint, jint) = 0;
  virtual void setColumnTypeName(jint, ::java::lang::String *) = 0;
  virtual jint getColumnCount() = 0;
  virtual jboolean isAutoIncrement(jint) = 0;
  virtual jboolean isCaseSensitive(jint) = 0;
  virtual jboolean isSearchable(jint) = 0;
  virtual jboolean isCurrency(jint) = 0;
  virtual jint isNullable(jint) = 0;
  virtual jboolean isSigned(jint) = 0;
  virtual jint getColumnDisplaySize(jint) = 0;
  virtual ::java::lang::String * getColumnLabel(jint) = 0;
  virtual ::java::lang::String * getColumnName(jint) = 0;
  virtual ::java::lang::String * getSchemaName(jint) = 0;
  virtual jint getPrecision(jint) = 0;
  virtual jint getScale(jint) = 0;
  virtual ::java::lang::String * getTableName(jint) = 0;
  virtual ::java::lang::String * getCatalogName(jint) = 0;
  virtual jint getColumnType(jint) = 0;
  virtual ::java::lang::String * getColumnTypeName(jint) = 0;
  virtual jboolean isReadOnly(jint) = 0;
  virtual jboolean isWritable(jint) = 0;
  virtual jboolean isDefinitelyWritable(jint) = 0;
  virtual ::java::lang::String * getColumnClassName(jint) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_sql_RowSetMetaData__
