Jens Vagelpohl wrote at 2008-8-16 11:45 +0200:
On Aug 16, 2008, at 11:06 , Dieter Maurer wrote:
The easiest way to determine the "uid" is probably to locate the object via a catalog search. You will get a catalog proxy for the object, often also called "brain". This proxy has the method "getPath()" which returns the object's "uid" -- don't ask about the inconsistent naming (at one place "uid", at another one "path").
The naming is not inconsistent. The UID happens to be the path by default, but it doesn't need to be. The getPath method returns the path, not the UID.
You err with the last sentence (which indicates that consistent naming *is* important): "CatalogBrain.getPath" is mapped to "ZCatalog.getpath" which is mapped to "Catalog.paths". And the comment in "Catalog" says # self.uids is a mapping of the # object unique identifier to the rid, and self.paths is a # mapping of the rid to the unique identifier The code confirms this comment: self.uids[uid] = index self.paths[index] = uid Thus, "getPath" *DOES* return the uid and not the path. -- Dieter