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

#ifndef __gnu_java_net_loader_URLStreamHandlerCache__
#define __gnu_java_net_loader_URLStreamHandlerCache__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace net
      {
        namespace loader
        {
            class URLStreamHandlerCache;
        }
      }
    }
  }
  namespace java
  {
    namespace net
    {
        class URLStreamHandler;
        class URLStreamHandlerFactory;
    }
  }
}

class gnu::java::net::loader::URLStreamHandlerCache : public ::java::lang::Object
{

public:
  URLStreamHandlerCache();
  virtual void add(::java::net::URLStreamHandlerFactory *);
  virtual ::java::net::URLStreamHandler * get(::java::net::URLStreamHandlerFactory *, ::java::lang::String *);
private:
  ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) factoryCache;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_net_loader_URLStreamHandlerCache__
