66 lines
1.2 KiB
Plaintext
66 lines
1.2 KiB
Plaintext
note
|
|
description: "[
|
|
ARRAYED_SET with added feature for replacing an existing item.
|
|
]"
|
|
author: "Jimmy J. Johnson"
|
|
date: "10/27/21"
|
|
copyright: "Copyright (c) 2021, Jimmy J. Johnson"
|
|
license: "Eiffel Forum v2 (http://www.eiffel.com/licensing/forum.txt)"
|
|
|
|
class
|
|
JJ_ARRAYED_SET [G]
|
|
|
|
inherit
|
|
|
|
ARRAYED_SET [G]
|
|
rename
|
|
replace as list_replace,
|
|
after as is_after,
|
|
before as is_before,
|
|
full as is_full
|
|
export
|
|
{ANY}
|
|
for_all,
|
|
there_exists,
|
|
capacity,
|
|
i_th
|
|
undefine
|
|
make_from_iterable,
|
|
-- put,
|
|
prune,
|
|
array_item,
|
|
is_inserted,
|
|
changeable_comparison_criterion -- Possibly allows duplicates
|
|
select
|
|
put
|
|
end
|
|
|
|
JJ_ARRAYED_LIST [G]
|
|
rename
|
|
has as has alias "∋"
|
|
undefine
|
|
put,
|
|
sequence_put,
|
|
extend,
|
|
force
|
|
-- changeable_comparison_criterion
|
|
redefine
|
|
replace
|
|
end
|
|
|
|
create
|
|
make, make_filled
|
|
|
|
feature -- Basic operations
|
|
|
|
replace (a_item, a_new_item: like item)
|
|
-- If `a_new_item' is not in Current and `a_item' is, remove
|
|
-- `a_item' and insert `a_new_item'.
|
|
do
|
|
if has (a_item) and then not has (a_new_item) then
|
|
Precursor {JJ_ARRAYED_LIST} (a_item, a_new_item)
|
|
end
|
|
end
|
|
|
|
end
|