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

#ifndef __java_net_Proxy__
#define __java_net_Proxy__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace net
    {
        class Proxy;
        class Proxy$Type;
        class SocketAddress;
    }
  }
}

class java::net::Proxy : public ::java::lang::Object
{

public:
  Proxy(::java::net::Proxy$Type *, ::java::net::SocketAddress *);
  virtual ::java::net::SocketAddress * address();
  virtual ::java::net::Proxy$Type * type();
  virtual jboolean equals(::java::lang::Object *);
  virtual jint hashCode();
  virtual ::java::lang::String * toString();
  static ::java::net::Proxy * NO_PROXY;
private:
  ::java::net::Proxy$Type * __attribute__((aligned(__alignof__( ::java::lang::Object)))) type__;
  ::java::net::SocketAddress * address__;
public:
  static ::java::lang::Class class$;
};

#endif // __java_net_Proxy__
