indexing
description: "Abstraction for objects that may be selected/unselected."
status: "See notice at end of class"
keywords: "deselect, deselectable, select, selected, selectable"
date: "$Date$"
revision: "$Revision$"
deferred class interface
EV_DESELECTABLE
feature
data: ANY
EV_ANY
feature
is_selectable: BOOLEAN
enable_select
EV_SELECTABLE
require EV_SELECTABLE
not_destroyed: not is_destroyed
is_selected: BOOLEAN
EV_SELECTABLE
require EV_SELECTABLE
not_destroyed: not is_destroyed
ensure EV_SELECTABLE
bridge_ok: Result = implementation.is_selected
feature
disable_select
require
not_destroyed: not is_destroyed
ensure
unselected: not is_selected
enable_select
is_selected
EV_SELECTABLE
require EV_SELECTABLE
not_destroyed: not is_destroyed
is_selectable: is_selectable
ensure EV_SELECTABLE
is_selected: is_selected
toggle
is_selected
require
not_is_destroyed: not is_destroyed
can_be_selected: not is_selected implies is_selectable
ensure
is_selected_changed: is_selected /= old is_selected
feature
set_data (some_data: like data)
some_datadata
EV_ANY
require EV_ANY
not_destroyed: not is_destroyed
ensure EV_ANY
data_assigned: data = some_data
feature
copy (other: like Current)
other
EV_ANY
require ANY
other_not_void: other /= void
type_identity: same_type (other)
ensure ANY
is_equal: is_equal (other)
feature
destroy
Current
EV_ANY
ensure EV_ANY
is_destroyed: is_destroyed
feature
is_destroyed: BOOLEAN
Current
EV_ANY
ensure EV_ANY
bridge_ok: Result = implementation.is_destroyed
invariant
not_selectable_therefore_not_selected: not is_selectable implies not is_selected
ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)
EV_ANY
is_initialized: is_initialized
is_coupled: implementation /= void and then implementation.interface = Current
default_create_called: default_create_called
end -- EV_DESELECTABLE