diff options
Diffstat (limited to 'src/sugar/datastore/datastore.py')
-rw-r--r-- | src/sugar/datastore/datastore.py | 25 |
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, |