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

#ifndef __java_sql_ResultSetMetaData__
#define __java_sql_ResultSetMetaData__

#pragma interface

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

class java::sql::ResultSetMetaData : public ::java::lang::Object
{

public:
  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 const jint columnNoNulls = 0;
  static const jint columnNullable = 1;
  static const jint columnNullableUnknown = 2;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_sql_ResultSetMetaData__
