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

#ifndef __gnu_java_beans_encoder_CollectionPersistenceDelegate__
#define __gnu_java_beans_encoder_CollectionPersistenceDelegate__

#pragma interface

#include <java/beans/PersistenceDelegate.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace beans
      {
        namespace encoder
        {
            class CollectionPersistenceDelegate;
        }
      }
    }
  }
  namespace java
  {
    namespace beans
    {
        class Encoder;
        class Expression;
    }
  }
}

class gnu::java::beans::encoder::CollectionPersistenceDelegate : public ::java::beans::PersistenceDelegate
{

public:
  CollectionPersistenceDelegate();
public: // actually protected
  virtual ::java::beans::Expression * instantiate(::java::lang::Object *, ::java::beans::Encoder *);
  virtual void initialize(::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *, ::java::beans::Encoder *);
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_beans_encoder_CollectionPersistenceDelegate__
