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

#ifndef __gnu_xml_libxmlj_util_NamedInputStream__
#define __gnu_xml_libxmlj_util_NamedInputStream__

#pragma interface

#include <java/io/FilterInputStream.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace libxmlj
      {
        namespace util
        {
            class NamedInputStream;
        }
      }
    }
  }
}

class gnu::xml::libxmlj::util::NamedInputStream : public ::java::io::FilterInputStream
{

public: // actually package-private
  NamedInputStream(::java::lang::String *, ::java::io::InputStream *, jint);
public:
  virtual ::java::lang::String * getName();
  virtual JArray< jbyte > * getDetectBuffer();
private:
  static jint DETECT_BUFFER_SIZE;
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::io::FilterInputStream)))) name;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_libxmlj_util_NamedInputStream__
