Updated CMS node and blog to remove extension data.

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.
This commit is contained in:
jvelilla
2015-09-15 08:54:43 -03:00
parent f9ecd4956f
commit ed614a662c
7 changed files with 78 additions and 27 deletions

View File

@@ -44,7 +44,7 @@ feature {NONE} -- Implementation
extended_store (a_node: CMS_NODE)
-- Store extended data from `a_node'.
require
not error_handler.has_error
not_has_error: not error_handler.has_error
do
if attached node_storage_extension (a_node) as ext then
ext.store_node (a_node)
@@ -54,13 +54,23 @@ feature {NONE} -- Implementation
extended_load (a_node: CMS_NODE)
-- Load extended data into `a_node'.
require
not error_handler.has_error
not_has_error: not error_handler.has_error
do
if attached node_storage_extension (a_node) as ext then
ext.load_node (a_node)
end
end
extended_delete (a_node: CMS_NODE)
-- Delete extended data related to node `a_node'.
require
not_has_error: not error_handler.has_error
do
if attached node_storage_extension (a_node) as ext then
ext.delete_node (a_node)
end
end
feature -- Access
nodes_count: NATURAL_64
@@ -165,16 +175,19 @@ feature -- Change: Node
delete_node (a_node: CMS_NODE)
-- Delete `a_node'.
require
valid_node_id: a_node.has_id
do
if a_node.has_id then
delete_node_by_id (a_node.id)
end
-- TODO
-- Check if we need to use a transaction
-- we delete a node
-- node_revisions
-- and extensions (PAGE, BLOG, etc).
delete_node_base (a_node)
end
delete_node_by_id (a_id: INTEGER_64)
-- Remove node by id `a_id'.
require
valid_node_id: a_id > 0
delete_node_base (a_node: CMS_NODE)
-- Remove node `a_node'.
deferred
end