class interface P_HISTORY_LIST[G]
creation
make
feature(s) from P_CONTAINER
-- Status
count: INTEGER
-- Number of items in the container.
ensure
positive: Result >= 0
is_empty: BOOLEAN
-- Is the container empty?
is_readable: BOOLEAN
-- Is the container currently readable?
is_writable: BOOLEAN
-- Is this container writable?
item: G
-- Current item.
require
readable: is_readable;
not_empty: not is_empty
feature(s) from P_CONTAINER
-- Update
reset
-- Reset container.
require
writable: is_writable
ensure
done: is_empty
feature(s) from P_CONTAINER
-- Output
out: STRING
-- String representation.
ensure
is_copy: -- new string
feature(s) from P_CONTAINER
-- Utility
is_void (x: ANY): BOOLEAN
-- Void assertion for generic parameters.
feature(s) from P_DISPENSER
-- Update
add (it: G)
-- Add at the end of the list, remove first if too big.
ensure
done: count < maximum implies count = old count + 1;
keep_reference: -- keep a copy of the item.
remove
-- This feature need not be used normally.
require
meaningful: not is_empty
feature(s) from P_DISPENSER
-- Conversion
to_list: P_LIST[G]
-- List of elements in container.
ensure
valid_result: Result /= Void; -- new list but old items.
is_shallow_copy:
feature(s) from P_SEQUENCE
-- Update
set_index (i: INTEGER)
-- Set the current item to the one at position 'idx'.
require
not_empty: not is_empty;
index_low: i >= 1;
index_up: i <= count
feature(s) from P_SEQUENCE
-- Status
index: INTEGER
require
not_empty: not is_empty
ensure
valid: Result >= 1 and Result <= count
feature(s) from P_HISTORY_LIST
-- from ANY
copy (other: like Current)
require
other_not_void: other /= Void
ensure
is_equal: is_equal(other)
is_equal (other: like Current): BOOLEAN
require
other_not_void: other /= Void
ensure
consistent: standard_is_equal(other) implies Result;
symmetric: Result implies other.is_equal(Current)
feature(s) from P_HISTORY_LIST
-- Creation
make
feature(s) from P_HISTORY_LIST
-- Properties
maximum: INTEGER
-- Max number of item in the container.
set_maximum (max: INTEGER)
-- Set the maximum number of item in the container.
require
positive: max > 0
invariant
empty: is_empty = count = 0;
max: maximum > 0;
coherent_count: count = container.count;
count: count <= maximum;
end of P_HISTORY_LIST[G]