CMS 3D CMS Logo

Enumerate::Enumerate Class Reference

List of all members.

Public Member Functions

def __call__
def __init__
def __setattr__
def isValidKey
def isValidValue
def keys
def valueToKey

Private Attributes

 _keys
 _valueDict


Detailed Description

Note: Please do not use or modify any data or functions with a leading underscore. If you "mess" with the internal structure, the classes may not function as intended.
Similar to C++'s 'enum', but with a few extra toys.  Takes a
string with spaces in between the different 'enum' names (keys).
If 'asInt' is true, then values will be integers (useful for array
indicies).  Once created, the enum values can not be changed.

Definition at line 7 of file Enumerate.py.


Member Function Documentation

def Enumerate::Enumerate::__call__ (   self,
  key 
)

Definition at line 63 of file Enumerate.py.

00063                             :
00064         return self.__dict__.get (key, None)
00065 

def Enumerate::Enumerate::__init__ (   self,
  names,
  prefix = '',
  asInt = False,
  intOffset = 0 
)

Definition at line 13 of file Enumerate.py.

00013                                                                         :
00014         biggest = smallest = ""
00015         self._keys = []
00016         self._valueDict = {}
00017         for count, name in enumerate (names.split()) :
00018             # make sure we don't already have this key
00019             if self.isValidKey (name):
00020                 raise RuntimeError, \
00021                       "You can not duplicate Enum Names '%s'" % name
00022             # set the value using the base class
00023             key = "%s_%s" % (prefix, name)
00024             if asInt:
00025                 key = count + intOffset
00026             object.__setattr__ (self, name, key)
00027             self._valueDict[key] = name
00028             self._keys.append (name)
00029 
00030 
    def isValidValue (self, value):

def Enumerate::Enumerate::__setattr__ (   self,
  name,
  value 
)

Lets me set internal values, but throws an error if any of
the enum values are changed

Definition at line 53 of file Enumerate.py.

00053                                        :
00054         """Lets me set internal values, but throws an error if any of
00055         the enum values are changed"""
00056         if not name.startswith ("_"):
00057             # Once it's set, you can't change the values
00058             raise RuntimeError, "You can not modify Enum values."
00059         else:
00060             object.__setattr__ (self, name, value)
00061 
00062 
    def __call__ (self, key):

def Enumerate::Enumerate::isValidKey (   self,
  key 
)

Returns true if this value is a valid enum key

Definition at line 36 of file Enumerate.py.

00036                               :
00037         """ Returns true if this value is a valid enum key"""
00038         return self.__dict__.has_key (key)
00039 
00040 
    def valueToKey (self, value):

def Enumerate::Enumerate::isValidValue (   self,
  value 
)

Returns true if this value is a valid enum value

Definition at line 31 of file Enumerate.py.

00031                                   :
00032         """ Returns true if this value is a valid enum value"""
00033         return self._valueDict.has_key (value)
00034 
00035 
    def isValidKey (self, key):

def Enumerate::Enumerate::keys (   self  ) 

Returns copy of valid keys 

Definition at line 46 of file Enumerate.py.

00046                    :
00047         """ Returns copy of valid keys """
00048         # since this is a list, return a copy of it instead of the
00049         # list itself
00050         return self._keys [:]
00051 
00052 
    def __setattr__ (self, name, value):

def Enumerate::Enumerate::valueToKey (   self,
  value 
)

Returns the key (if it exists) for a given enum value

Definition at line 41 of file Enumerate.py.

00041                                 :
00042         """ Returns the key (if it exists) for a given enum value"""
00043         return self._valueDict.get (value, None)
00044 
00045 
    def keys (self):


Member Data Documentation

Enumerate::Enumerate::_keys [private]

Definition at line 15 of file Enumerate.py.

Enumerate::Enumerate::_valueDict [private]

Definition at line 16 of file Enumerate.py.


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:46:46 2009 for CMSSW by  doxygen 1.5.4