template <class T>
class Iterator 
{
  //## begin Iterator%3F45EDA0000B.initialDeclarations preserve=yes
  //## end Iterator%3F45EDA0000B.initialDeclarations

  public:
    //## Constructors (generated)
      Iterator();

    //## Destructor (generated)
      ~Iterator();


    //## Other Operations (specified)
      //## Operation: reset%3F45EEBC009F
      //	Sets current item pointer on the first item in
      //	collection.
      //	Returns false if collection is empty.
      virtual bool reset () = 0;

      //## Operation: next%3F45EEE00372
      //	Change current item pointer on the next item in the
      //	collection.
      //	Returns false when there is not exists any item in
      //	collection.
      virtual bool next () = 0;

      //## Operation: getCurrent%3F45EEF10222
      //	Returns current ellement from collection.
      virtual T* getCurrent () = 0;

    // Additional Public Declarations
      //## begin Iterator%3F45EDA0000B.public preserve=yes
      //## end Iterator%3F45EDA0000B.public

  protected:
    // Additional Protected Declarations
      //## begin Iterator%3F45EDA0000B.protected preserve=yes
      //## end Iterator%3F45EDA0000B.protected

  private:
    // Additional Private Declarations
      //## begin Iterator%3F45EDA0000B.private preserve=yes
      //## end Iterator%3F45EDA0000B.private

  private: //## implementation
    // Additional Implementation Declarations
      //## begin Iterator%3F45EDA0000B.implementation preserve=yes
      //## end Iterator%3F45EDA0000B.implementation

};

//## begin Iterator%3F45EDA0000B.postscript preserve=yes
//## end Iterator%3F45EDA0000B.postscript

// Parameterized Class Iterator 

// Parameterized Class Iterator 

template <class T>
Iterator<T>::Iterator()
  //## begin Iterator::Iterator%3F45EDA0000B_const.hasinit preserve=no
  //## end Iterator::Iterator%3F45EDA0000B_const.hasinit
  //## begin Iterator::Iterator%3F45EDA0000B_const.initialization preserve=yes
  //## end Iterator::Iterator%3F45EDA0000B_const.initialization
{
  //## begin Iterator::Iterator%3F45EDA0000B_const.body preserve=yes
  //## end Iterator::Iterator%3F45EDA0000B_const.body
}


template <class T>
Iterator<T>::~Iterator()
{
  //## begin Iterator::~Iterator%3F45EDA0000B_dest.body preserve=yes
  //## end Iterator::~Iterator%3F45EDA0000B_dest.body
}


// Additional Declarations
  //## begin Iterator%3F45EDA0000B.declarations preserve=yes
  //## end Iterator%3F45EDA0000B.declarations

//## begin module%3F45EFEE035C.epilog preserve=yes
//## end module%3F45EFEE035C.epilog


#endif
