| # Gaudi Framework, version v20r4
Generated: 8 Jan 2009

# GaudiPython::Bindings::iProperty Class Reference

Inheritance diagram for GaudiPython::Bindings::iProperty:

[legend]

List of all members.

## Detailed Description

    Python equivalent to the C++ Property interface

Definition at line 155 of file Bindings.py.

## Public Member Functions
def | __init__
def | getInterface
def | retrieveInterface
def | __call_interface_method__
def | __setattr__
def | __getattr__
def | properties
def | name

## Member Function Documentation

def GaudiPython::Bindings::iProperty::__init__ | ( |  | self,
|  |  | name,
|  |  | ip = `None` |
| ) |  |  |

Reimplemented in GaudiPython::Bindings::iService, GaudiPython::Bindings::iAlgorithm, GaudiPython::Bindings::iAlgTool, GaudiPython::Bindings::iDataSvc, GaudiPython::Bindings::iHistogramSvc, GaudiPython::Bindings::iNTupleSvc, GaudiPython::Bindings::iToolSvc, and GaudiPython::Bindings::iJobOptSvc.

Definition at line 157 of file Bindings.py.

    00157                                       :
    00158     if ip : self.__dict__['_ip'] = InterfaceCast(gbl.IProperty)(ip)
    00159     else  : self.__dict__['_ip'] = None
    00160     self.__dict__['_svcloc'] = gbl.Gaudi.svcLocator()
    00161     optsvc = Helper.service(self._svcloc,'JobOptionsSvc')
    00162     if optsvc : self.__dict__['_optsvc'] = InterfaceCast(gbl.IJobOptionsSvc)(optsvc)
    00163     else      : self.__dict__['_optsvc'] = None
    00164     self.__dict__['_name'] = name
      def getInterface(self) :

def GaudiPython::Bindings::iProperty::getInterface | ( |  | self | ) |

Definition at line 165 of file Bindings.py.

    00165                          :
    00166     if not self._ip : self.retrieveInterface()
    00167     return self._ip
      def retrieveInterface(self) :

def GaudiPython::Bindings::iProperty::retrieveInterface | ( |  | self | ) |

Reimplemented in GaudiPython::Bindings::iService, GaudiPython::Bindings::iAlgorithm, and GaudiPython::Bindings::iAlgTool.

Definition at line 168 of file Bindings.py.

    00168                               :
    00169     pass
      def __call_interface_method__(self,ifname,method,*args):

def GaudiPython::Bindings::iProperty::__call_interface_method__ | ( |  | self,
|  |  | ifname,
|  |  | method,
|  |  | args |
| ) |  |  |

Definition at line 170 of file Bindings.py.

    00170                                                          :
    00171     if not getattr(self,ifname) : self.retrieveInterface()
    00172     return getattr(getattr(self,ifname),method)(*args)
      def __setattr__(self, name, value):

def GaudiPython::Bindings::iProperty::__setattr__ | ( |  | self,
|  |  | name,
|  |  | value |
| ) |  |  |

    The method which is used for setting the property from the given value.
    - In the case of the valid instance it sets the property through IProperty interface
    - In the case of placeholder the property is added to JobOptionsCatalogue

Definition at line 173 of file Bindings.py.

    00173                                     :
    00174     """
    00175     The method which is used for setting the property from the given value.
    00176     - In the case of the valid instance it sets the property through IProperty interface
    00177     - In the case of placeholder the property is added to JobOptionsCatalogue
    00178     """
    00179     if hasattr( value, 'toStringProperty' ):
    00180       # user defined behaviour
    00181       value = '%s' % value.toStringProperty()
    00182     ip = self.getInterface()
    00183     if ip :
    00184       if not gbl.Gaudi.Utils.hasProperty ( ip , name ) :
    00185         raise AttributeError, 'property %s does not exist' % name
    00186       prop = ip.getProperty(name)
    00187       if not type( value ) == type( prop.value() ) :
    00188         if not long  == type( value ) : value = '%s' % value
    00189         else                          : value = '%d' % value
    00190         if prop.fromString( value ).isFailure() :
    00191           raise AttributeError, 'property %s could not be set from %s' % (name,value)
    00192       else :
    00193         if not prop.setValue( value ) :
    00194           raise AttributeError, 'property %s could not be set from %s' % (name,value)
    00195     else :
    00196         if   type(value) == str : value = '"%s"' % value # need double quotes
    00197         elif type(value) == long: value = '%d'   % value # prevent pending 'L'
    00198         sp = StringProperty( name , str(value))
    00199         self._optsvc.addPropertyToCatalogue( self._name , sp )
      def __getattr__(self, name ):

def GaudiPython::Bindings::iProperty::__getattr__ | ( |  | self,
|  |  | name |
| ) |  |  |

    The method which returns the value for the given property
    - In the case of the valid instance it returns the valid property value through IProperty interface
    - In the case of placeholder the property value is retrieevd from JobOptionsCatalogue

Definition at line 200 of file Bindings.py.

    00200                               :
    00201     """
    00202     The method which returns the value for the given property
    00203     - In the case of the valid instance it returns the valid property value through IProperty interface
    00204     - In the case of placeholder the property value is retrieevd from JobOptionsCatalogue
    00205     """
    00206     ip = self.getInterface()
    00207     if ip :
    00208       if not gbl.Gaudi.Utils.hasProperty ( ip , name ) :
    00209         raise AttributeError, 'property %s does not exist' % name
    00210       prop = ip.getProperty(name)
    00211       if   StringProperty    == type( prop )   : return prop.value()
    00212       elif StringPropertyRef == type( prop )   : return prop.value()
    00213       try:     return eval( prop.toString(), {}, {} )
    00214       except : return p.value()
    00215     else :
    00216       props = self._optsvc.getProperties(self._name)
    00217       for p in props :
    00218         if not p.name() == name : continue
    00219         # from JobOptionsSvc we always have only strings
    00220         try:    return eval( p.value(), {}, {} )
    00221         except: return p.value()
    00222       raise AttributeError, 'property %s does not exist' % name
      def properties(self):

def GaudiPython::Bindings::iProperty::properties | ( |  | self | ) |

Definition at line 223 of file Bindings.py.

    00223                       :
    00224     dct = {}
    00225     props = None
    00226     ip = self.getInterface()
    00227     if ip :
    00228       props = ip.getProperties()
    00229       propsFrom = self._name # "interface"
    00230     else:
    00231       props = self._optsvc.getProperties( self._name )
    00232       propsFrom = "jobOptionsSvc"
    00233     if props:
    00234       for p in props :
    00235         try:
    00236           dct[p.name()] = PropertyEntry(p)
    00237         except (ValueError,TypeError),e:
    00238           raise ValueError, "gaudimodule.iProperty.properties(): %s%s processing property %s.%s = %s" % \
    00239                 (e.__class__.__name__, e.args, propsFrom, p.name(), p.value())
    00240     return dct
      def name(self) :

def GaudiPython::Bindings::iProperty::name | ( |  | self | ) |

Reimplemented in GaudiPython::Bindings::iAlgTool.

Definition at line 241 of file Bindings.py.

    00241                  :
    00242     return self._name
    00243
    00244 #----iService class---------------------------------------------------------------------
    class iService(iProperty) :

The documentation for this class was generated from the following file:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v20r4/GaudiPython/python/GaudiPython/Bindings.py