indexing description: "Base class for interface classes." author: "Patrick Ruckstuhl " date: "$Date$" revision: "$Revision$" deferred class BASE_INTERFACE inherit O_SHARED_LOGGERS EXCEPTIONS O_ERRORS feature {NONE} -- Initialization make (a_node: like node; a_db_handler: like db_handler; a_policy_cache: like policy_cache) is -- Create. require a_node_ok: a_node /= Void a_db_handler_ok: a_db_handler /= Void a_policy_cache_ok: a_policy_cache /= Void do node := a_node db_handler := a_db_handler policy_cache := a_policy_cache -- setup DB access create blog_access.make (a_db_handler) create comment_access.make (a_db_handler) create commit_access.make (a_db_handler) create community_access.make (a_db_handler) create issue_access.make (a_db_handler) create project_access.make (a_db_handler) create release_access.make (a_db_handler) create user_access.make (a_db_handler) create wiki_access.make (a_db_handler) create workitem_access.make (a_db_handler) ensure node_set: node = a_node db_handler_set: db_handler = a_db_handler policy_cache_set: policy_cache = a_policy_cache end feature {NONE} -- Implementation node: O_NODE -- Our node. db_handler: DATABASE_HANDLER -- Database handler. feature -- Implementation blog_access: BLOG_ACCESS -- DB blog access. comment_access: COMMENT_ACCESS -- DB comment access. commit_access: COMMIT_ACCESS -- DB commit access. community_access: COMMUNITY_ACCESS -- DB community access. issue_access: ISSUE_ACCESS -- DB issue access. project_access: PROJECT_ACCESS -- DB project access. release_access: RELEASE_ACCESS -- DB release access. user_access: USER_ACCESS -- DB user access. wiki_access: WIKI_ACCESS -- DB wiki access. workitem_access: WORKITEM_ACCESS -- DB workitem access. feature -- Cache policy_cache: POLICY_CACHE -- Shared policy cache for all interface objects inheriting from BASE_INTERFACE. invariant node_not_void: node /= Void db_handler_not_void: db_handler /= Void policy_cache_not_void: policy_cache /= Void blog_access_not_void: blog_access /= Void comment_access_not_void: comment_access /= Void commit_access_not_void: commit_access /= Void community_access_not_void: community_access /= Void issue_access_not_void: issue_access /= Void project_access_not_void: project_access /= Void user_access_not_void: user_access /= Void release_access_not_void: release_access /= Void wiki_access_not_void: wiki_access /= Void workitem_access_not_void: workitem_access /= Void end