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 returned
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 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 a 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
a 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.