| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

UserTagging::Manager::ObjectSet Class Reference

Inheritance diagram for UserTagging::Manager::ObjectSet:
[legend]
List of all members.

Public Member Functions

def all_dict
def all
def __setattr__
def add
def get

Public Attributes

 classForManaging
 description

Private Member Functions

def __init

Detailed Description

Base (abstract) Manager for a colection of certain classes of objects

Definition at line 6 of file Manager.py.


Member Function Documentation

def UserTagging::Manager::ObjectSet::__init (   self  )  [private]

Do not call this function in the child class.
This is a boilerPlate for Child class's __init__(). 
Intentionally wrong name to avoid reloading __setattr__().
Child class mush define in its __init__() the following:
    - self.classForManaging : a tuple of classes of the managed objects
    - self.description : an empty dict for bookkeeping the attributes

Definition at line 9 of file Manager.py.

00009                     :
00010         '''
00011         Do not call this function in the child class.
00012         This is a boilerPlate for Child class's __init__(). 
00013         Intentionally wrong name to avoid reloading __setattr__().
00014         Child class mush define in its __init__() the following:
00015             - self.classForManaging : a tuple of classes of the managed objects
00016             - self.description : an empty dict for bookkeeping the attributes
00017         '''
00018         self.classForManaging = (None,)     
00019         # description = {name: class} for bookkeeping the attribute
00020         self.description = {}  
00021 
00022     # ---------------------------------------  
    def all_dict(self):

def UserTagging::Manager::ObjectSet::all_dict (   self  ) 

return the dictionary of name:object of the managed classes

Definition at line 23 of file Manager.py.

00023                       :
00024         '''return the dictionary of name:object of the managed classes'''
00025         return dict((name, self.__dict__[name]) for name in self.description)
00026         
00027     # ---------------------------------------  
    def all(self):

def UserTagging::Manager::ObjectSet::all (   self  ) 

return a list of objects of the managed classes

Definition at line 28 of file Manager.py.

00028                  :
00029         '''return a list of objects of the managed classes'''
00030         return (self.__dict__[name] for name in self.description)
00031             
00032     # ---------------------------------------
    def __setattr__(self, name, value):      

def UserTagging::Manager::ObjectSet::__setattr__ (   self,
  name,
  value 
)

Definition at line 33 of file Manager.py.

00033                                       :      
00034         '''hook for caching a name of the Object as the class attribute'''
00035         object.__setattr__(self, name, value)        
00036         if isinstance(value, self.classForManaging):
00037             # The attribute class is intentionally only intialized once.
00038             # This way, one can intialize an attribute with a specific class
00039             # but can later use intrisic python type to represent this class
00040             # see the implemetation of class ParameterSet for an example
00041             self.description.setdefault(name, value.__class__)
00042 
00043     # # ---------------------------------------
00044     # def __getattr__(self, name):      
00045     #     '''hook for getting the Object given the attribute''' 
00046 
00047     # ---------------------------------------

def UserTagging::Manager::ObjectSet::add (   self,
  name,
  anObject 
)

Add one Object

Definition at line 48 of file Manager.py.

00048                                  :
00049         """Add one Object"""
00050         if isinstance(anObject, self.classForManaging):
00051             self.__setattr__(name, anObject)
00052             return anObject
00053         raise AttributeError(str(anObject) 
00054             + ' is not a ' 
00055             + str(self.classForManaging))
00056         
00057     # ---------------------------------------
    def get(self, name):

def UserTagging::Manager::ObjectSet::get (   self,
  name 
)

Get the Object given the name

Definition at line 58 of file Manager.py.

00058                        :
00059         """Get the Object given the name"""
00060         try:
00061             objName = self.description[name]
00062         except KeyError:
00063             raise AttributeError('Object ' + name + ' is not defined yet')
00064         return self.__dict__[name]
00065     
    


Member Data Documentation

UserTagging::Manager::ObjectSet::classForManaging

Reimplemented in UserTagging::Models::ParameterSet, UserTagging::Models::DataSet, and UserTagging::Models::TagSet.

Definition at line 18 of file Manager.py.

UserTagging::Manager::ObjectSet::description

Reimplemented in UserTagging::Models::ParameterSet, UserTagging::Models::DataSet, and UserTagging::Models::TagSet.

Definition at line 20 of file Manager.py.


The documentation for this class was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:10:48 2011 for UserTagging by doxygen 1.4.7