Sometimes, a text assigned to a key is mapped to some other type in a process called key mapping. The four types of key mappings are described in the following sections.
This is the most typical example of key mapping: An object name is mapped to the object itself.
On sheet The KEYVALUE function of the example workbook, the formula in cell B8 returns the area of a certain polygon.
Figure 18. The value assigned to key Polygon,
i.e., "Triangle
" is mapped to an
object (the triangle, itself).
Notice that value assigned to key
Polygon is the text "Triangle
". Rather
than a text, the processor Area requires a polygon
to computes its area. Therefore, when the processor asks for the value
associated to key Polygon, KeyValue maps the text
"Triangle
" to a polygon which is passed over to the
processor.
More precisely, the text names a data set which is stored by the repository and defines an object. When an object is required the named data set is retrieved and passed over to a processor (defined by key Processor) which creates the object. Then, the object is returned to the processor which has initiated the call.
A text is mapped to some other basic type. For instance, consider
the key Month. The user might prefer to provide
text values: "Jan
", "Fev
", ...,
"Dec
". On the other hand, for the processor, numbers 1, 2,
..., 12 might be more convenient.
This mapping is very similar to the lexical conversion from
"Yes
" to TRUE
as discussed in section Section 10. The difference is that opposite to lexical
conversions, flag map depends on the key. For instance, for the key
Planet the text "Mar" might be
mapped to something representing the planet Mars
(e.g. the number 4 since Mars is the forth planet
of our solar system) rather than the month of March.
Like flag map, a text is mapped into a number or date. However, the user can also provide the corresponding number or date instead of the text.
For instance, the key NumberOfEdges used in
our example workbook implements a partial map. Its value must be an
integer greater than 2. For some special values (not all) there
correspond a polygon name (e.g
"Triangle
" for 3 or "Square
" for 4). There is
no special name for a regular polygon with 1111 edges. To see this
mapping in action, go to sheet Key mappings and
change the value of NumberOfEdges in data set
Polygon #6 to "Triangle
" or
"Square
" or 1111 and see its area on
E2.
Figure 19. Key NumberOfEdges implements partial
map. Assigning to it "Square
" is the same as assign it
to 4.