Abstractor
An abstractor maintains the mapping between classes of objects and
single higher-level objects.
Implementations:
- Abstractor_Disaggregate
Builds map top-down, splitting each high-level object into an
equivalence class.
- Abstractor_Explicit
User builds map explicitly by specifying links between classes and objects.
- Abstractor_Redescribe
Builds map bottom-up, abstracting each low-level equivalence class as
a single higher-level object according to a Redescribe_Op.
Member functions:
- disaggregate: Abstractor_Disaggregate . Space -> void
Builds the map for the high-level objects.
- down: Abstractor . SObject -> Space
Returns the equivalence class abstracted by the high-level object.
- high_level_objects: Abstractor -> Space
Returns the high-level objects abstracted by the abstractor.
- link: Abstractor_Explicit . Space . SObject -> void
Builds the map for the low-level equivalence class to/from the
high-level object.
- localize: Abstractor_Redescribe . SObject -> Space
Same as "down."
- low_level_classes: Abstractor -> Classes
Returns the low-level equivalence classes abstracted by the
abstractor.
- redescribe: Abstractor_Redescribe . Classes -> void
Builds the map for the low-level equivalence classes.
- up: Abstractor . Space -> SObject
Returns the high-level object abstracting the class.