[Zope-Checkins] CVS: Zope/lib/python/Products/PluginIndexes/PathIndex - PathIndex.py:1.9
Andreas Jung
andreas@zope.com
Fri, 12 Oct 2001 16:02:16 -0400
Update of /cvs-repository/Zope/lib/python/Products/PluginIndexes/PathIndex
In directory cvs.zope.org:/tmp/cvs-serv7704/lib/python/Products/PluginIndexes/PathIndex
Modified Files:
PathIndex.py
Log Message:
- added getEntryForObject()
- internal inverse index reworked
=== Zope/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py 1.8 => 1.9 ===
import re,warnings
+_marker = []
+
class PathIndex(PluggableIndex.PluggableIndex, Persistent,
Implicit, SimpleItem):
@@ -205,18 +207,23 @@
for i in range(len(comps)):
self.insertEntry( comps[i],documentId,i)
- return 1
+ self._unindex[documentId] = path
+ return 1
- def unindex_object(self,id):
+ def unindex_object(self,documentId):
""" hook for (Z)Catalog """
- if not self._unindex.has_key(id):
- return
+ if not self._unindex.has_key(documentId):
+ return
- for comp,level in self._unindex[id]:
+ path = self._unindex[documentId]
+ comps = path.split('/')
- self._index[comp][level].remove(id)
+ for level in range(len(comps[1:])-1):
+ comp = comps[level+1]
+
+ self._index[comp][level].remove(documentId)
if len(self._index[comp][level])==0:
del self._index[comp][level]
@@ -224,7 +231,10 @@
if len(self._index[comp])==0:
del self._index[comp]
- del self._unindex[id]
+ del self._unindex[documentId]
+
+
+
def printIndex(self):
@@ -395,6 +405,15 @@
""" needed to be consistent with the interface """
return self._index.keys()
+
+ def getEntryForObject(self,documentId,default=_marker):
+ """ Takes a document ID and returns all the information we have
+ on that specific object. """
+
+ try:
+ return self._unindex[documentId]
+ except:
+ return None
index_html = DTMLFile('dtml/index', globals())