def _hashValues(self): item = self._item kind = item._kind view = item.itsView hash = 0 names = self.keys() names.sort() for name in names: if kind is not None: attribute = kind.getAttribute(name, False, item) else: attribute = None if not self._isTransient(name): hash = _combine(hash, _hash(name)) value = self[name] if attribute is not None: attrType = attribute.type else: attrType = None if attrType is not None: hash = _combine(hash, attrType.hashValue(value)) else: hash = _combine(hash, TypeHandler.hashValue(view, value)) return hash
def hashValue(self, value): if value is None: return 0 return TypeHandler.hashValue(self.itsView, value.itsUUID._hash)
def hashValue(hash, type, value): if type is not None: return _combine(hash, type.hashValue(value)) else: return _combine(hash, TypeHandler.hashValue(view, value))