#ifndef COLLECTION_H_
#define COLLECTION_H_
#ifndef NULL
#define NULL 0
#endif

class Collection {
  public:
    virtual ~Collection() {}
    /**
     * Returns the count of the number of elements in the Collection
     */
    virtual int size() const = 0;
    
    /**
     * Adds the given integer value to the Collection. Placement index of
     * the newly added element is assumed to be first (index=0).
     */
    virtual void add(int) = 0;
    
    /**
     * Returns the integer value of the first element of the Collection.
     */
    virtual int first() const = 0;
};

#endif /*COLLECTION_H_*/
