[pkg-fso-commits] [SCM] FSO frameworkd Debian packaging branch, debian, updated. upstream/0.9.5.5-717-g0f98819

Sebastian Krzyszkowiak seba.dos1 at gmail.com
Sat Aug 6 08:18:48 UTC 2011


The following commit has been merged in the debian branch:
commit e9876b927ae57295b3db5db0258ea4f10dd19271
Author: Sebastian Krzyszkowiak <seba.dos1 at gmail.com>
Date:   Sun Dec 6 17:46:22 2009 +0100

    opimd: generic: implement list_fields, add_new_field and remove_field functions

diff --git a/framework/subsystems/opimd/helpers.py b/framework/subsystems/opimd/helpers.py
index 265f1e6..cd2c11e 100644
--- a/framework/subsystems/opimd/helpers.py
+++ b/framework/subsystems/opimd/helpers.py
@@ -35,6 +35,12 @@ class InvalidDomain( DBusException ):
     _dbus_error_name = "org.freesmartphone.PIM.InvalidDomain"
 
 #----------------------------------------------------------------------------#
+class InvalidField( DBusException ):
+#----------------------------------------------------------------------------#
+    """Raised when a field name or type is invalid"""
+    _dbus_error_name = "org.freesmartphone.PIM.InvalidField"
+
+#----------------------------------------------------------------------------#
 class InvalidBackendID( DBusException ):
 #----------------------------------------------------------------------------#
     """Raised when a submitted backend ID is invalid / out of range"""
diff --git a/framework/subsystems/opimd/pimd_generic.py b/framework/subsystems/opimd/pimd_generic.py
index 537a188..ecfc77d 100644
--- a/framework/subsystems/opimd/pimd_generic.py
+++ b/framework/subsystems/opimd/pimd_generic.py
@@ -679,6 +679,24 @@ class GenericDomain():
         else:
             return 'generic'
 
+    @classmethod
+    def add_new_field(self, name, type):
+        if not name in self.FieldTypes and type in TypeManager.Types:
+            self.FieldTypes[name] = type
+        else:
+            raise InvalidField ( "Field %s does already exist or type %s is invalid." % name, type)
+
+    @classmethod
+    def remove_field(self, name):
+        if name in self.FieldTypes:
+            del self.FieldTypes[name]
+        else:
+            raise InvalidField ("Field %s does not exist!" % name)
+
+    @classmethod
+    def list_fields(self):
+        return self.FieldTypes
+
     def enumerate_items(self, backend):
         """Enumerates all entry data belonging to a specific backend
 
diff --git a/framework/subsystems/opimd/type_manager.py b/framework/subsystems/opimd/type_manager.py
index 2e12d0c..210242f 100644
--- a/framework/subsystems/opimd/type_manager.py
+++ b/framework/subsystems/opimd/type_manager.py
@@ -44,6 +44,8 @@ _TYPES = ['objectpath', 'phonenumber', 'address', 'email', 'name', 'date', 'uri'
 class TypeManager(DBusFBObject):
 #----------------------------------------------------------------------------#
 
+    Types = _TYPES
+
     def __init__(self):
         """Initializes the type manager"""
 

-- 
FSO frameworkd Debian packaging



More information about the pkg-fso-commits mailing list