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