The Gobo Eiffel Structure Library follows the classical design pattern whereby deferred classes introduce abstract properties, which leaves room for expansion by inheriting from these deferred classes to implement yet unavailable containers. The container cluster contains classes describing general abstract notions such as traversable, resizable or sortable properties. The classes are generic, the generic parameter representing the type of the items being held in the containers. Some containers can provide facilities to find out whether a given item is held in this container. Depending on the context, several different criteria might be used to search items in a container.
Some containers can provide facilities in order to inspect their items one after another.
This traversal mechanism is quite complex since there is different schools of thought for the design and implementation of such pattern and hence deserves a chapter of its own in this documentation. Some containers such as priority queues or binary search trees keep their items sorted. On the other hand some other containers do not necessarily keep their items sorted but provide facilities to sort them on demand according to various comparison criteria and sorting algorithms. As just said, this facility depends on various criteria such as sorting algorithms and here again deserves a chapter of its own in this documentation. Have a look at the flat-short form for a complete list of these features.