Added WSF_SELF_DOCUMENTED_AGENT_HANDLER and variants for uri, uri_template, starts_with, ...
to provide a way to documentate easily wsf agent handler.
This commit is contained in:
@@ -0,0 +1,78 @@
|
|||||||
|
note
|
||||||
|
description: "[
|
||||||
|
Interface defining a self documented handler using a function
|
||||||
|
to build the `mapping_documentation'
|
||||||
|
]"
|
||||||
|
date: "$Date$"
|
||||||
|
revision: "$Revision$"
|
||||||
|
|
||||||
|
deferred class
|
||||||
|
WSF_SELF_DOCUMENTED_AGENT_HANDLER
|
||||||
|
|
||||||
|
inherit
|
||||||
|
WSF_SELF_DOCUMENTED_HANDLER
|
||||||
|
|
||||||
|
feature -- Access
|
||||||
|
|
||||||
|
is_hidden: BOOLEAN
|
||||||
|
-- Is hidden from self documentation?
|
||||||
|
|
||||||
|
descriptions: detachable ARRAYED_LIST [READABLE_STRING_GENERAL]
|
||||||
|
|
||||||
|
self_documentation_builder: detachable FUNCTION [ANY, TUPLE [WSF_ROUTER_MAPPING, detachable WSF_REQUEST_METHODS], WSF_ROUTER_MAPPING_DOCUMENTATION]
|
||||||
|
-- Function building the `mapping_documentation'.
|
||||||
|
|
||||||
|
feature -- Change
|
||||||
|
|
||||||
|
add_description (d: READABLE_STRING_GENERAL)
|
||||||
|
local
|
||||||
|
lst: like descriptions
|
||||||
|
do
|
||||||
|
lst := descriptions
|
||||||
|
if lst = Void then
|
||||||
|
create lst.make (1)
|
||||||
|
descriptions := lst
|
||||||
|
end
|
||||||
|
lst.force (d)
|
||||||
|
end
|
||||||
|
|
||||||
|
set_self_documentation_builder (fct: like self_documentation_builder)
|
||||||
|
-- Set `self_documentation_builder' to `fct'.
|
||||||
|
do
|
||||||
|
self_documentation_builder := fct
|
||||||
|
end
|
||||||
|
|
||||||
|
feature -- Documentation
|
||||||
|
|
||||||
|
mapping_documentation (m: WSF_ROUTER_MAPPING; a_request_methods: detachable WSF_REQUEST_METHODS): WSF_ROUTER_MAPPING_DOCUMENTATION
|
||||||
|
-- <Precursor>
|
||||||
|
do
|
||||||
|
if attached self_documentation_builder as fct then
|
||||||
|
Result := fct.item ([m, a_request_methods])
|
||||||
|
else
|
||||||
|
create Result.make (m)
|
||||||
|
end
|
||||||
|
if attached descriptions as l_descriptions then
|
||||||
|
across
|
||||||
|
l_descriptions as c
|
||||||
|
loop
|
||||||
|
Result.add_description (c.item)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if is_hidden then
|
||||||
|
Result.set_is_hidden (True)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
note
|
||||||
|
copyright: "2011-2013, Jocelyn Fiat, Javier Velilla, Olivier Ligot, Colin Adams, Eiffel Software and others"
|
||||||
|
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||||
|
source: "[
|
||||||
|
Eiffel Software
|
||||||
|
5949 Hollister Ave., Goleta, CA 93117 USA
|
||||||
|
Telephone 805-685-1006, Fax 805-685-6869
|
||||||
|
Website http://www.eiffel.com
|
||||||
|
Customer support http://support.eiffel.com
|
||||||
|
]"
|
||||||
|
|
||||||
|
end
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
note
|
note
|
||||||
description: "Summary description for {WSF_SELF_DOCUMENTED_HANDLER}."
|
description: "[
|
||||||
author: ""
|
Interface defining a self documented handler
|
||||||
|
|
||||||
|
inherit from this class and define mapping_documentation to generate
|
||||||
|
auto self documentation on demand.
|
||||||
|
]"
|
||||||
date: "$Date$"
|
date: "$Date$"
|
||||||
revision: "$Revision$"
|
revision: "$Revision$"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
note
|
||||||
|
description: "Summary description for {WSF_SELF_DOCUMENTED_STARTS_WITH_AGENT_HANDLER}."
|
||||||
|
date: "$Date$"
|
||||||
|
revision: "$Revision$"
|
||||||
|
|
||||||
|
class
|
||||||
|
WSF_SELF_DOCUMENTED_STARTS_WITH_AGENT_HANDLER
|
||||||
|
|
||||||
|
inherit
|
||||||
|
WSF_STARTS_WITH_AGENT_HANDLER
|
||||||
|
rename
|
||||||
|
make as make_handler
|
||||||
|
end
|
||||||
|
|
||||||
|
WSF_SELF_DOCUMENTED_AGENT_HANDLER
|
||||||
|
|
||||||
|
create
|
||||||
|
make,
|
||||||
|
make_with_descriptions,
|
||||||
|
make_hidden
|
||||||
|
|
||||||
|
feature {NONE} -- Initialization
|
||||||
|
|
||||||
|
make (a_action: like action; a_self_doc: like self_documentation_builder)
|
||||||
|
-- <Precursor>
|
||||||
|
-- and using `a_self_doc' function to build the `mapping_documentation'.
|
||||||
|
do
|
||||||
|
set_self_documentation_builder (a_self_doc)
|
||||||
|
make_handler (a_action)
|
||||||
|
end
|
||||||
|
|
||||||
|
make_with_descriptions (a_action: like action; a_descriptions: ITERABLE [READABLE_STRING_GENERAL])
|
||||||
|
do
|
||||||
|
across
|
||||||
|
a_descriptions as c
|
||||||
|
loop
|
||||||
|
add_description (c.item)
|
||||||
|
end
|
||||||
|
make_handler (a_action)
|
||||||
|
end
|
||||||
|
|
||||||
|
make_hidden (a_action: like action)
|
||||||
|
-- <Precursor>
|
||||||
|
-- and using `a_self_doc' function to build the `mapping_documentation'
|
||||||
|
-- mark it as `hidden'.
|
||||||
|
do
|
||||||
|
is_hidden := True
|
||||||
|
make (a_action, Void)
|
||||||
|
end
|
||||||
|
|
||||||
|
note
|
||||||
|
copyright: "2011-2013, Jocelyn Fiat, Javier Velilla, Olivier Ligot, Eiffel Software and others"
|
||||||
|
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||||
|
source: "[
|
||||||
|
Eiffel Software
|
||||||
|
5949 Hollister Ave., Goleta, CA 93117 USA
|
||||||
|
Telephone 805-685-1006, Fax 805-685-6869
|
||||||
|
Website http://www.eiffel.com
|
||||||
|
Customer support http://support.eiffel.com
|
||||||
|
]"
|
||||||
|
end
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
note
|
||||||
|
description: "Summary description for {WSF_SELF_DOCUMENTED_URI_AGENT_HANDLER}."
|
||||||
|
author: ""
|
||||||
|
date: "$Date$"
|
||||||
|
revision: "$Revision$"
|
||||||
|
|
||||||
|
class
|
||||||
|
WSF_SELF_DOCUMENTED_URI_AGENT_HANDLER
|
||||||
|
|
||||||
|
inherit
|
||||||
|
WSF_URI_AGENT_HANDLER
|
||||||
|
rename
|
||||||
|
make as make_handler
|
||||||
|
end
|
||||||
|
|
||||||
|
WSF_SELF_DOCUMENTED_AGENT_HANDLER
|
||||||
|
|
||||||
|
create
|
||||||
|
make,
|
||||||
|
make_with_descriptions,
|
||||||
|
make_hidden
|
||||||
|
|
||||||
|
feature {NONE} -- Initialization
|
||||||
|
|
||||||
|
make (a_action: like action; a_self_doc: like self_documentation_builder)
|
||||||
|
-- <Precursor>
|
||||||
|
-- and using `a_self_doc' function to build the `mapping_documentation'.
|
||||||
|
do
|
||||||
|
set_self_documentation_builder (a_self_doc)
|
||||||
|
make_handler (a_action)
|
||||||
|
end
|
||||||
|
|
||||||
|
make_with_descriptions (a_action: like action; a_descriptions: ITERABLE [READABLE_STRING_GENERAL])
|
||||||
|
-- Make Current with `a_action' and `a_descriptions'.
|
||||||
|
do
|
||||||
|
across
|
||||||
|
a_descriptions as c
|
||||||
|
loop
|
||||||
|
add_description (c.item)
|
||||||
|
end
|
||||||
|
make_handler (a_action)
|
||||||
|
end
|
||||||
|
|
||||||
|
make_hidden (a_action: like action)
|
||||||
|
-- Make Current with `a_action'
|
||||||
|
-- mark it as `hidden'.
|
||||||
|
do
|
||||||
|
is_hidden := True
|
||||||
|
make (a_action, Void)
|
||||||
|
end
|
||||||
|
|
||||||
|
note
|
||||||
|
copyright: "2011-2013, Jocelyn Fiat, Javier Velilla, Olivier Ligot, Colin Adams, Eiffel Software and others"
|
||||||
|
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||||
|
source: "[
|
||||||
|
Eiffel Software
|
||||||
|
5949 Hollister Ave., Goleta, CA 93117 USA
|
||||||
|
Telephone 805-685-1006, Fax 805-685-6869
|
||||||
|
Website http://www.eiffel.com
|
||||||
|
Customer support http://support.eiffel.com
|
||||||
|
]"
|
||||||
|
end
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
note
|
||||||
|
description: "Summary description for {WSF_SELF_DOCUMENTED_URI_TEMPLATE_AGENT_HANDLER}."
|
||||||
|
author: ""
|
||||||
|
date: "$Date$"
|
||||||
|
revision: "$Revision$"
|
||||||
|
|
||||||
|
class
|
||||||
|
WSF_SELF_DOCUMENTED_URI_TEMPLATE_AGENT_HANDLER
|
||||||
|
|
||||||
|
inherit
|
||||||
|
WSF_URI_TEMPLATE_AGENT_HANDLER
|
||||||
|
rename
|
||||||
|
make as make_handler
|
||||||
|
end
|
||||||
|
|
||||||
|
WSF_SELF_DOCUMENTED_AGENT_HANDLER
|
||||||
|
|
||||||
|
create
|
||||||
|
make,
|
||||||
|
make_with_descriptions,
|
||||||
|
make_hidden
|
||||||
|
|
||||||
|
feature {NONE} -- Initialization
|
||||||
|
|
||||||
|
make (a_action: like action; a_self_doc: like self_documentation_builder)
|
||||||
|
-- <Precursor>
|
||||||
|
-- and using `a_self_doc' function to build the `mapping_documentation'.
|
||||||
|
do
|
||||||
|
set_self_documentation_builder (a_self_doc)
|
||||||
|
make_handler (a_action)
|
||||||
|
end
|
||||||
|
|
||||||
|
make_with_descriptions (a_action: like action; a_descriptions: ITERABLE [READABLE_STRING_GENERAL])
|
||||||
|
do
|
||||||
|
across
|
||||||
|
a_descriptions as c
|
||||||
|
loop
|
||||||
|
add_description (c.item)
|
||||||
|
end
|
||||||
|
make_handler (a_action)
|
||||||
|
end
|
||||||
|
|
||||||
|
make_hidden (a_action: like action)
|
||||||
|
-- <Precursor>
|
||||||
|
-- and using `a_self_doc' function to build the `mapping_documentation'
|
||||||
|
-- mark it as `hidden'.
|
||||||
|
do
|
||||||
|
is_hidden := True
|
||||||
|
make (a_action, Void)
|
||||||
|
end
|
||||||
|
|
||||||
|
note
|
||||||
|
copyright: "2011-2013, Jocelyn Fiat, Javier Velilla, Olivier Ligot, Colin Adams, Eiffel Software and others"
|
||||||
|
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||||
|
source: "[
|
||||||
|
Eiffel Software
|
||||||
|
5949 Hollister Ave., Goleta, CA 93117 USA
|
||||||
|
Telephone 805-685-1006, Fax 805-685-6869
|
||||||
|
Website http://www.eiffel.com
|
||||||
|
Customer support http://support.eiffel.com
|
||||||
|
]"
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user