#include <cascading_map.h>
Public Methods | |
CascadingMap ( SuifEnv* suif, T defaultvalue ) | |
~CascadingMap () | |
void | assign ( const LString &className, T data) |
T | lookup ( const Object* object ) |
T | lookup ( const MetaClass* metaClass ) |
void | assign ( MetaClass* mc, T newdata ) |
A lookup table with data of type T, keyed by SuifObject, which selects the most specific entry with a key which is a class or superclass of a given object.
requires: T is a value class, has assignment, !=
// Have some data;
// register the data CascadingMap<char> *map = new CascadingMap<char>(suif_env); char *my_info1 ="procedure"; char *my_info2 ="statement"; map->assign( ProcedureDefinition::get_class_name(), my_info1 ); map->assign( Statement::get_class_name(), my_info2 );
// Pick an object: // SuifObject *so; map->lookup(so); // returns my_info1 for any procedure definition, // my_info2 for any statement (or subclass) // 0 for anything else
|
|
|
|
|
|