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

#ifndef __java_io_Console__
#define __java_io_Console__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>


class java::io::Console : public ::java::lang::Object
{

public:
  static ::java::io::Console * console();
private:
  Console();
public:
  ::java::io::PrintWriter * writer();
  ::java::io::Reader * reader();
  ::java::io::Console * format(::java::lang::String *, JArray< ::java::lang::Object * > *);
  ::java::io::Console * printf(::java::lang::String *, JArray< ::java::lang::Object * > *);
  ::java::lang::String * readLine(::java::lang::String *, JArray< ::java::lang::Object * > *);
  ::java::lang::String * readLine();
  JArray< jchar > * readPassword(::java::lang::String *, JArray< ::java::lang::Object * > *);
  JArray< jchar > * readPassword();
  void flush();
private:
  static ::java::io::Console * console__;
public:
  static ::java::lang::Class class$;
};

#endif // __java_io_Console__
