Beispiel #1
0
    def typeXML(self, value, generator, withSchema):

        repository = self.itsView

        generator.startElement('values', {})
        for val in value._itervalues():
            ValueHandler.xmlValue(repository,
                                  None, val, 'value', None, 'single', None, {},
                                  generator, withSchema)
        generator.endElement('values')
Beispiel #2
0
    def _xmlValues(self, generator, withSchema, version):

        from repository.item.ItemHandler import ValueHandler

        item = self._item
        kind = item._kind
        view = item.itsView

        for key, value in self.iteritems():
            if kind is not None:
                attribute = kind.getAttribute(key, False, item)
            else:
                attribute = None

            if attribute is not None:
                persisted = attribute.getAspect('persisted', True)
            else:
                persisted = True

            if persisted:
                flags = self._getFlags(key)
                persisted = flags & Values.TRANSIENT == 0
                flags &= Values.SAVEMASK

            if persisted:
                if attribute is not None:
                    attrType = attribute.getAspect('type')
                    attrCard = attribute.getAspect('cardinality', 'single')
                    attrId = attribute.itsUUID
                else:
                    attrType = None
                    attrCard = 'single'
                    attrId = None

                attrs = {}
                if flags:
                    attrs['flags'] = str(flags)

                try:
                    ValueHandler.xmlValue(view, key, value, 'attribute',
                                          attrType, attrCard, attrId, attrs,
                                          generator, withSchema)
                except Exception, e:
                    e.args = ("while saving attribute '%s' of item %s, %s" %
                              (key, item.itsPath, e.args[0]), )
                    raise
Beispiel #3
0
    def _xmlValues(self, generator, withSchema, version):

        from repository.item.ItemHandler import ValueHandler
        
        item = self._item
        kind = item._kind
        view = item.itsView

        for key, value in self.iteritems():
            if kind is not None:
                attribute = kind.getAttribute(key, False, item)
            else:
                attribute = None

            if attribute is not None:
                persisted = attribute.getAspect('persisted', True)
            else:
                persisted = True

            if persisted:
                flags = self._getFlags(key)
                persisted = flags & Values.TRANSIENT == 0
                flags &= Values.SAVEMASK

            if persisted:
                if attribute is not None:
                    attrType = attribute.getAspect('type')
                    attrCard = attribute.getAspect('cardinality', 'single')
                    attrId = attribute.itsUUID
                else:
                    attrType = None
                    attrCard = 'single'
                    attrId = None

                attrs = {}
                if flags:
                    attrs['flags'] = str(flags)

                try:
                    ValueHandler.xmlValue(view, key, value, 'attribute',
                                          attrType, attrCard, attrId, attrs,
                                          generator, withSchema)
                except Exception, e:
                    e.args = ("while saving attribute '%s' of item %s, %s" %(key, item.itsPath, e.args[0]),)
                    raise