indexing
description: "Nested list flatteners: machines that make sure that all items accessible remotely in some given nested lists are also kept locally. The nested list flatteners take care of possible cycles in the di-graph of nested lists."
library: "Gobo Eiffel Structure Library"
author: "Eric Bezault <ericb@gobo.demon.co.uk>"
copyright: "Copyright (c) 1998, Eric Bezault"
class interface
DS_NESTED_LIST_FLATTENER [G]
create
make
feature -- Basic operations
flatten (nested_lists: DS_LIST [DS_NESTED_LIST [G]])
-- Make sure that for each list in nested_lists
-- all items are held locally, even those that
-- could be accessed remotely.
require
nested_lists_not_void: nested_lists /= void;
no_void_nested_list: not nested_lists.has (void)
invariant
-- from GENERAL
reflexive_equality: standard_is_equal (Current);
reflexive_conformance: conforms_to (Current);
end -- class DS_NESTED_LIST_FLATTENER