Comments: minor update. Updated CMS_NODE_STORAGE_I API. Delete a node using a node as formal parameter instead of node id. Clean code and update log information. Added precondition to delete node to accept nodes with a valid a id. Added missing assertions tag names.
72 lines
1.2 KiB
Plaintext
72 lines
1.2 KiB
Plaintext
note
|
|
description: "Node storage extension for specific node descendant."
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
|
|
deferred class
|
|
CMS_NODE_STORAGE_EXTENSION [G -> CMS_NODE]
|
|
|
|
feature -- Change
|
|
|
|
set_node_api (a_node_api: CMS_NODE_API)
|
|
do
|
|
node_api := a_node_api
|
|
end
|
|
|
|
feature -- Access
|
|
|
|
node_api: CMS_NODE_API
|
|
|
|
content_type: READABLE_STRING_8
|
|
deferred
|
|
end
|
|
|
|
feature -- Status report
|
|
|
|
is_accepted (a_node: CMS_NODE): BOOLEAN
|
|
-- Is `a_node' accepted by current storage extension?
|
|
do
|
|
Result := attached {G} a_node
|
|
end
|
|
|
|
feature -- Persistence
|
|
|
|
store_node (a_node: CMS_NODE)
|
|
require
|
|
a_node_accepted: is_accepted (a_node)
|
|
do
|
|
if attached {G} a_node as obj then
|
|
store (obj)
|
|
end
|
|
end
|
|
|
|
load_node (a_node: CMS_NODE)
|
|
require
|
|
a_node_accepted: is_accepted (a_node)
|
|
do
|
|
if attached {G} a_node as obj then
|
|
load (obj)
|
|
end
|
|
end
|
|
|
|
delete_node (a_node: CMS_NODE)
|
|
-- remove node extensions.
|
|
require
|
|
a_node_accepted: is_accepted (a_node)
|
|
deferred
|
|
end
|
|
|
|
feature {NONE} -- Persistence implementation
|
|
|
|
store (a_node: G)
|
|
-- Store extension data from node `a_node'.
|
|
deferred
|
|
end
|
|
|
|
load (a_node: G)
|
|
-- Load extension data into node `a_node'.
|
|
deferred
|
|
end
|
|
|
|
end
|