示例#1
0
    def populate_payload(self, _container=None):
        """
        Translates the contents of this object into a payload for sending across to the storage entity.
        :return: the populated form
        """

        if _container:
            container = _container
        else:
            container = Form()

        if self.about:
            container.add_field(var=str(RDF.about), value=str(self.about), ftype='text-single')

        if len(self._types):
            container.add_field(var=str(RDF.type), value=self._types, ftype='list-multi')

        for key, value in self._properties.iteritems():
            property_field = container.add_field(var=str(key), value=value, ftype='list-multi')
            type_stanza = FormValidation()
            type_stanza['datatype'] = 'xs:string'
            property_field.append(type_stanza)

        for key, value in self._references.iteritems():
            reference_field = container.add_field(var=str(key), value=value, ftype='list-multi')
            type_stanza = FormValidation()
            type_stanza['datatype'] = 'xs:anyURI'
            reference_field.append(type_stanza)

        for key, value in self._flags.iteritems():
            container.add_field(var=key.var, value=value, ftype=key.field_type)

        return container