The method_list category defines methods that can be associated with data blocks, categories, subcategories, and items. This category attempts to capture only the essential information required to define these methods, without defining any implementation details. The implementation details are appropriately left to application dictionary developers. It is assumed here, that within a domain of dictionaries, a consistent method interface will be adopted that is tailored to the requirements of that domain. This of course complicates the sharing of methods between domains; however, it would be impossible at this time to define an implementation strategy inside the DDL that would even begin to satisfy the diverse requirements of potential DDL users. Consequently, the definition of each method is limited to its unique identifier, _method_list.id; a textual description, _method_list.detail; the source text of the method, _method_list.inline; the name of the language in which the method is expressed, _method_list.language; and a code to identify the the purpose of the method, _method_list.code.
The DDL for the method_list category is given in the following section.
save_METHOD_LIST
_category.description
;
Attributes specifying the list of methods applicable to data items,
sub-categories, and categories.
;
_category.id method_list
_category.mandatory_code no
_category_key.name '_method_list.id'
loop_
_category_group.id
'ddl_group'
'item_group'
'category_group'
save_
save__method_list.id
_item_description.description
;
Identity of method in the list referenced by _method.id
;
loop_
_item.name
_item.category_id
_item.mandatory_code
'_method_list.id' method_list yes
'_item_methods.method_id' item_methods yes
'_category_methods.method_id' category_methods yes
'_sub_category_methods.method_id' sub_category_methods yes
'_datablock_methods.method_id' datablock_methods yes
_item_type.code idname
loop_
_item_linked.child_name
_item_linked.parent_name
'_item_methods.method_id' '_method_list.id'
'_category_methods.method_id' '_method_list.id'
'_sub_category_methods.method_id' '_method_list.id'
'_datablock_methods.method_id' '_method_list.id'
save_
save__method_list.detail
_item_description.description
;
Description of application method in _method_list.id
;
_item.name '_method_list.detail'
_item.category_id method_list
_item.mandatory_code no
_item_type.code text
save_
save__method_list.inline
_item_description.description
;
Inline text of a method associated with the data item.
;
_item.name '_method_list.inline'
_item.category_id method_list
_item.mandatory_code yes
_item_type.code text
save_
save__method_list.code
_item_description.description
;
A code that describes the function of the method.
;
_item.name '_method_list.code'
_item.category_id method_list
_item.mandatory_code yes
_item_type.code code
loop_
_item_examples.case
_item_examples.detail
calculation 'method to calculate the item '
verification 'method to verify the data item '
cast 'method to provide cast conversion '
addition 'method to define item + item '
division 'method to define item / item '
multiplication 'method to define item * item '
equivalence 'method to define item = item '
other 'miscellaneous method '
save_
save__method_list.language
_item_description.description
;
Language in which the method is expressed.
;
_item.name '_method_list.language'
_item.category_id method_list
_item.mandatory_code yes
_item_type.code code
loop_
_item_examples.case BNF
C
C++
FORTRAN
LISP
PASCAL
PEARL
TCL
OTHER
save_