INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES

indexing

description: "Lists implemented as sequences of arrays, the last of which ", "may be non-full. No limit on size (a new array is allocated ", "if list outgrows its initial allocation). "
title: "EiffelBase: library of reusable components for Eiffel. ", "Based on EiffelBase library for ISE Eiffel, ", "used with permission. "
project: "EiffelBase Library"
copyright: "(c) 1986-1997 Interactive Software Engineering Inc. ", "Modifications and extensions: ", "(c) 1997 Object Tools ", "All rights reserved. Duplication and distribution prohibited", "May be used only with Visual Eiffel under terms of user ", "license "
key: list, sequence
cluster: eiffelbase
class MULTI_ARRAY_LIST [G]
inherit

DYNAMIC_LIST [G]
redefine
duplicate,
finish,
first,
has,
last,
move,
prune_all,
put_left,
search,
start,
wipe_out
end
creation

make
feature -- Initialization

make (b: INTEGER)
-- Create an empty list, setting block_size to b
feature -- Access

item: G
-- Item at cursor position

first: like item
-- Item at first position

last: like item
-- Item at last position

has (v: G): BOOLEAN
-- Does list include `v'?
-- (Reference or object equality,
-- based on `object_comparison'.)

index: INTEGER

cursor: CURSOR
-- Current cursor position

first_element: BI_LINKABLE [ARRAYED_LISTG]

last_element: BI_LINKABLE [ARRAYED_LISTG]

block_size: INTEGER
feature -- Measurement

count: INTEGER
feature -- Status report

full: BOOLEAN

valid_cursor (p: CURSOR): BOOLEAN
-- Can the cursor be moved to position `p'?
feature -- Cursor movement

start
-- Move cursor to first position.
-- (No effect if empty)

finish
-- Move cursor to last position.
-- (No effect if empty)

forth
-- Move cursor to next position, if any.

back
-- Move cursor to previous position, if any.

move (i: INTEGER)
-- Move cursor `i' positions. The cursor
-- may end up `off' if the offset is too big.

go_to (p: CURSOR)
-- Move cursor to position `p'

search (v: G)
-- Move cursor to first position (at or after current
-- cursor position) where `item' and `v' are equal.
-- (Reference or object equality,
-- based on `object_comparison'.)
feature -- Element change

replace (v: G)
-- Replace current item by `v'.

extend (v: G)
-- Add `v' to end.

put_front (v: G)
-- Add `v' at the beginning.
-- Do not move cursor.

put_left (v: G)
-- Add `v' to the left of current position.
-- Do not move cursor.

put_right (v: G)
-- Add `v' to the left of current position.
-- Do not move cursor.
feature -- Removal

wipe_out
-- Remove all items.

remove
-- Remove current item

remove_left

remove_right

prune_all (v: G)
feature -- Duplication

duplicate (n: INTEGER): like Current
-- Copy of sub-list beginning at cursor position
-- and having min (`n', `count' - `index' + 1) items
invariant

writable_definition: writable = not off
readable_definition: readable = not off
extendible_definition: extendible
end -- class MULTI_ARRAY_LIST

INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES