Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

CascadingMap Class Reference

lookup table template <class T> mapping SuifObject to data of type T. More...

#include <cascading_map.h>

List of all members.

Public Methods

 CascadingMap ( SuifEnv* suif, T defaultvalue )
 ~CascadingMap ()
void assign ( const LString &className, T data)
lookup ( const Object* object )
lookup ( const MetaClass* metaClass )
void assign ( MetaClass* mc, T newdata )


Detailed Description

template<class T> class CascadingMap

lookup table template <class T> mapping SuifObject to data of type T.

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, !=

CascadingMap example
To use this cascading map:

 // 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


Constructor & Destructor Documentation

template<class T>
CascadingMap<T>::CascadingMap<T> (
SuifEnv * suif_env,
T defaultvalue0)

template<class T>
CascadingMap<T>::~CascadingMap<T> ()


Member Function Documentation

template<class T>
void CascadingMap<T>::assign (
MetaClass * mc,
T data)

template<class T>
void CascadingMap<T>::assign (
const LString & className,
T data)

template<class T>
T CascadingMap<T>::lookup (
const MetaClass * mc)

template<class T>
T CascadingMap<T>::lookup (
const Object * object)


The documentation for this class was generated from the following file:
Generated at Mon Jul 31 13:42:52 2000 for NCI SUIF by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000