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

#ifndef __gnu_java_net_loader_FileResource__
#define __gnu_java_net_loader_FileResource__

#pragma interface

#include <gnu/java/net/loader/Resource.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace net
      {
        namespace loader
        {
            class FileResource;
            class FileURLLoader;
        }
      }
    }
  }
  namespace java
  {
    namespace net
    {
        class URL;
    }
  }
}

class gnu::java::net::loader::FileResource : public ::gnu::java::net::loader::Resource
{

public:
  FileResource(::gnu::java::net::loader::FileURLLoader *, ::java::io::File *);
  ::java::io::InputStream * getInputStream();
  jint getLength();
  ::java::net::URL * getURL();
public: // actually package-private
  ::java::io::File * __attribute__((aligned(__alignof__( ::gnu::java::net::loader::Resource)))) file;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_net_loader_FileResource__
