Added WSF_ROUTER_ITEM to replace a structure represented with named TUPLE

Added debug_output to ease debugging
This commit is contained in:
Jocelyn Fiat
2012-11-20 13:49:40 +01:00
parent 6621da202d
commit 59316c9c65
3 changed files with 83 additions and 4 deletions

View File

@@ -10,6 +10,8 @@ class
inherit
WSF_ROUTER_CONTEXT_MAPPING [C]
DEBUG_OUTPUT
create
make,
make_from_template
@@ -33,6 +35,14 @@ feature -- Access
template: URI_TEMPLATE
feature -- Status report
debug_output: STRING
-- String that should be displayed in debugger to represent `Current'.
do
Result := "URI-template: " + template.template
end
feature -- Element change
set_handler (h: like handler)

View File

@@ -8,7 +8,7 @@ class
WSF_ROUTER
inherit
ITERABLE [TUPLE [mapping: WSF_ROUTER_MAPPING; request_methods: detachable WSF_ROUTER_METHODS]]
ITERABLE [WSF_ROUTER_ITEM]
create
make,
@@ -39,7 +39,7 @@ feature {NONE} -- Initialization
create pre_execution_actions
end
mappings: ARRAYED_LIST [TUPLE [mapping: WSF_ROUTER_MAPPING; request_methods: detachable WSF_ROUTER_METHODS]]
mappings: ARRAYED_LIST [WSF_ROUTER_ITEM]
-- Existing mappings
feature -- Mapping
@@ -53,7 +53,7 @@ feature -- Mapping
map_with_request_methods (a_mapping: WSF_ROUTER_MAPPING; rqst_methods: detachable WSF_ROUTER_METHODS)
-- Map `a_mapping' for request methods `rqst_methods'
do
mappings.extend ([a_mapping, rqst_methods])
mappings.extend (create {WSF_ROUTER_ITEM}.make_with_request_methods (a_mapping, rqst_methods))
a_mapping.handler.on_mapped (a_mapping, rqst_methods)
end
@@ -161,7 +161,7 @@ feature -- Element change
feature -- Traversing
new_cursor: ITERATION_CURSOR [TUPLE [mapping: WSF_ROUTER_MAPPING; request_methods: detachable WSF_ROUTER_METHODS]]
new_cursor: ITERATION_CURSOR [WSF_ROUTER_ITEM]
-- Fresh cursor associated with current structure
do
Result := mappings.new_cursor

View File

@@ -0,0 +1,69 @@
note
description: "Summary description for {WSF_ROUTER_ITEM}."
author: ""
date: "$Date$"
revision: "$Revision$"
class
WSF_ROUTER_ITEM
inherit
DEBUG_OUTPUT
create
make,
make_with_request_methods
feature {NONE} -- Initialization
make (m: like mapping)
do
mapping := m
end
make_with_request_methods (m: like mapping; r: like request_methods)
do
make (m)
set_request_methods (r)
end
feature -- Access
mapping: WSF_ROUTER_MAPPING
request_methods: detachable WSF_ROUTER_METHODS
feature -- Status report
debug_output: STRING
-- String that should be displayed in debugger to represent `Current'.
do
if attached {DEBUG_OUTPUT} mapping as d then
create Result.make_from_string (d.debug_output)
else
create Result.make_from_string (mapping.generator)
end
if attached request_methods as mtds then
Result.append_string (" [ ")
across
mtds as c
loop
Result.append_string (c.item)
Result.append_string (" ")
end
Result.append_string ("]")
end
end
feature -- Change
set_request_methods (r: like request_methods)
-- Set `request_methods' to `r'
do
request_methods := r
end
invariant
mapping_attached: mapping /= Void
end