The Gaudi Framework  v29r0 (ff2e7097)
DataObjectHandleBase.py
Go to the documentation of this file.
1 __version__ = "$Revision: 0.1 $"
2 __doc__ = """The python module holding python bindings to DataObjectHandle"""
3 
4 # s = "/Path/to/Address"
5 
6 
7 class DataObjectHandleBase(object):
8 
9  __slots__ = ('Path', )
10 
11  # define accessTypes
12 
13  def __init__(self, path):
14  object.__init__(self)
15  self.Path = path
16 
17  def __eq__(self, other):
18  """
19  Need especially Configurable.isPropertySet when checked against default.
20  """
21  if isinstance(other, DataObjectHandleBase):
22  return self.Path == other.Path
23  if isinstance(other, basestring):
24  return self.Path == other
25  if other is None:
26  return False
27  raise ValueError('Unknown equality check: type=%r, repr=%r' %
28  (type(other), other))
29 
30  def __ne__(self, other):
31  """
32  This is mandatory if __eq__ is defined.
33  """
34  return not self == other
35 
36  def __str__(self):
37  return self.Path
38 
39  def __repr__(self):
40  return "%s(\"%s\")" % (self.__class__.__name__, self.__str__())
41 
42  def toStringProperty(self):
43  return self.__str__()
44 
45  def __add__(self, other):
46  path = ':'.join(i + other for i in self.Path.split(':'))
47  return DataObjectHandleBase(path)
48 
49  def __radd__(self, other):
50  path = ':'.join(other + i for i in self.Path.split(':'))
51  return DataObjectHandleBase(path)
52 
53  def __iadd__(self, other):
54  self.Path = ':'.join(i + other for i in self.Path.split(':'))
55  return self