00001 00041 #ifndef _ORDEREDARRAYLIST_H 00042 #define _ORDEREDARRAYLIST_H 00043 00044 #include "arraylist.h" 00045 #include "orderedlist.h" 00046 00047 using std::ostream; 00048 00049 namespace container { 00050 00054 class OrderedArrayList: public OrderedList, public ArrayList { 00055 public: 00056 00057 const static Info * const TYPE_INFO; 00058 00059 OrderedArrayList(); 00060 OrderedArrayList(int initialCapacity, int additionalCapacity); 00061 OrderedArrayList(const OrderedArrayList& orig); 00062 OrderedArrayList(const OrderedArrayList& orig, bool deepCopy); 00063 virtual ~OrderedArrayList(); 00064 00065 protected: 00066 00067 /********************* OrderedList Methods (protected) *********************/ 00068 00069 virtual void append_impl(Entity* entity); 00070 00071 virtual void insertBefore_impl(Entity* entity); 00072 00073 /********************* List Methods (protected) *********************/ 00074 00075 virtual bool add_impl(Entity* entity); 00076 00077 public: 00078 00079 /********************* Object Methods (public) *********************/ 00080 00081 virtual ostream& renderState(ostream& os) const; 00082 00083 virtual const Info* typeInfo() const; 00084 00085 virtual Object* clone(bool deepCopy = false) const; 00086 00087 }; 00088 00089 } // namespace container 00090 #endif /* _ORDEREDARRAYLIST_H */