Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar/datastore/datastore.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/sugar/datastore/datastore.py')
-rw-r--r--src/sugar/datastore/datastore.py25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/sugar/datastore/datastore.py b/src/sugar/datastore/datastore.py
index 74806e5..44d0ac8 100644
--- a/src/sugar/datastore/datastore.py
+++ b/src/sugar/datastore/datastore.py
@@ -90,7 +90,7 @@ class DSObject(object):
self._owns_file = False
def get_metadata(self):
- if self._metadata is None and not self.tree_id is None:
+ if self._metadata is None and self.tree_id is not None:
metadata = DSMetadata(dbus_helpers.get_properties(self.tree_id, self.version_id))
self._metadata = metadata
return self._metadata
@@ -102,7 +102,7 @@ class DSObject(object):
metadata = property(get_metadata, set_metadata)
def get_file_path(self, fetch=True):
- if fetch and self._file_path is None and not self.tree_id is None:
+ if fetch and self._file_path is None and self.tree_id is not None:
self.set_file_path(dbus_helpers.get_filename(self.tree_id, self.version_id))
self._owns_file = True
return self._file_path
@@ -117,6 +117,17 @@ class DSObject(object):
file_path = property(get_file_path, set_file_path)
+ def get_object_id(self) :
+ if self.tree_id is None and self.version_id is None :
+ return None
+
+ return (self.tree_id, self.version_id)
+
+ def set_object_id(self, object_id) :
+ self.tree_id, self.version_id = object_id or (None, None)
+
+ object_id = property(get_object_id, set_object_id)
+
def destroy(self):
if self._destroyed:
logging.warning('This DSObject has already been destroyed!.')
@@ -137,8 +148,9 @@ class DSObject(object):
def copy(self):
return DSObject(None, self._metadata.copy(), self._file_path)
-def get(tree_id, version_id):
- logging.debug('datastore.get')
+def get(object_id):
+ logging.debug('datastore.get %r' % (object_id,))
+ tree_id, version_id = object_id
metadata = dbus_helpers.get_properties(tree_id, version_id)
ds_object = DSObject(tree_id, version_id, DSMetadata(metadata), None)
@@ -187,8 +199,9 @@ def write(ds_object, update_mtime=True, transfer_ownership=False,
# TODO: register the object for updates
logging.debug('Written object (%s,%s) to the datastore.' % (ds_object.tree_id, ds_object.version_id))
-def delete(tree_id, version_id):
- logging.debug('datastore.delete')
+def delete(object_id):
+ logging.debug('datastore.delete %r' % (object_id,))
+ tree_id, version_id = object_id
dbus_helpers.delete(tree_id, version_id)
def find(query, sorting=None, limit=None, offset=None, properties=None,