示例#1
0
 def _getIdentifier(self):
     identifier = KeyMap()
     if not self.User.isValid():
         # Uri with Scheme but without a Path generate invalid user but we need
         # to return an Identifier, and raise an 'IllegalIdentifierException'
         # when ContentProvider try to get the Content...
         # (ie: ContentProvider.queryContent() -> Identifier.getContent())
         return identifier
     userid = self.User.Id
     rootid = self.User.RootId
     uripath = self._uri.getPath().strip('/.')
     itemid, parentid, path = self.User.DataBase.getIdentifier(
         userid, rootid, uripath)
     if self.isNew():
         # New Identifier are created by the parent folder...
         identifier.setValue('Id', self._getNewIdentifier())
         identifier.setValue('ParentId', itemid)
     else:
         identifier.setValue('Id', itemid)
         identifier.setValue('ParentId', parentid)
     baseuri = '%s://%s/%s' % (self._uri.getScheme(),
                               self._uri.getAuthority(), path)
     identifier.setValue('BaseURI', baseuri)
     print("Identifier._getIdentifier() %s - %s - %s" %
           (itemid, parentid, baseuri))
     return identifier
示例#2
0
def _jsonParser(data):
    keymap = KeyMap()
    for key, value in data:
        if isinstance(value, list):
            value = tuple(value)
        keymap.setValue(key, value)
    return keymap
示例#3
0
 def _getMetaData(self, contenttype):
     metadata = KeyMap()
     if not self.User.isValid():
         # Uri with Scheme but without a Path generate invalid user but we need
         # to return an Identifier, and raise an 'IllegalIdentifierException'
         # when ContentProvider try to get the Content...
         # (ie: ContentProvider.queryContent() -> Identifier.getContent())
         return metadata
     uripath = self._uri.getPath().strip('/.')
     itemid, parentid, path = self.User.DataBase.getIdentifier(
         self.User.Id, self.User.RootId, uripath)
     if itemid is not None:
         if self.IsNew:
             # New Identifier are created by the parent folder...
             metadata.setValue('ParentId', itemid)
             itemid = self._getNewIdentifier()
             parenturi = self._uri.getUriReference()
             data = self._getNewContent(itemid, contenttype)
         else:
             metadata.setValue('ParentId', parentid)
             parenturi = '%s://%s/%s' % (self._uri.getScheme(),
                                         self._uri.getAuthority(), path)
             data = self.User.DataBase.getItem(self.User.Id, itemid,
                                               parentid)
         metadata.setValue('Id', itemid)
         metadata.setValue('ParentURI', parenturi)
         if data is not None:
             metadata += data
             self._propertySetInfo = self._getPropertySetInfo()
     return metadata