def __getitem__(self,key): if isstring(key): key = self.element._interfaceCluster.cord2pos(key) if isiterable(key) and len(key) > 0: o = self for k in key: if k: if o == self: o = SequenceInterface.__getitem__(self,k) else: o = o[k] return o else: return SequenceInterface.__getitem__(self,key)
def insert(self,key,value): if isstring(key): key = self.element._interfaceCluster.cord2pos(key)[2] value._node.setAttributeNS(None,self.keyAttribute,self.element._interfaceCluster.stringFilter(key)) inserted = 0 for i,node in self.NodeItemIterator(self): if i >= key: if node.hasAttributeNS(self.keyNS,self.keyAttrName): node.setAttributeNS(None,self.keyAttribute,self.element._interfaceCluster.stringFilter(i+1)) if not inserted: node.parentNode.insertBefore(value._node,node) inserted = 1 if not inserted: SequenceInterface.append(self,value)
def append(self,value): value._node.removeAttributeNS(self.keyNS,self.keyAttrName) SequenceInterface.append(self,value)