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