#ifndef _JPA_ARRAY_H_
#define _JPA_ARRAY_H_

#include "iostream.h"
#include "assert.h"

template<class T> 
class Array {
private:
    T**_items; //array of T pointers
    int _size, _alloc_size;
public:
    List (void) : _size(0), _alloc_size(1), _items (new T*[1]) {}
    ~List (void) {delete[] _items;]

		   void Clear (void) {_size =0;}
    void Add (T *node) {
      if (_size >= _alloc_size)
	cerr << "went beyond the end!" << endl;
      
      _items [_size++] = node;
    }

    void SetSize (int newsize) {
      assert (_size == 0);
      
      delete[] _items;
      _items = new T* [newsize];
      _alloc_size = newsize;
    }

    int Size (void) {return _size;}

    T * operator[] (int num) const {
      if ( (num < 0) || (num >= _size) )
	cerr << "asked for " << num << " from List of size " << _size << endl;
      return _items[num];}

};

#endif
