- self.records_by_type_pointer [ ( record.type, record.pointer,) ] = record
-
- def remember_record (self, record):
- self.remember_record_by_hrn (record)
- self.remember_record_by_pointer (record)
-
- def locate_by_type_hrn (self, type, hrn):
- return self.records_by_type_hrn.get ( (type, hrn), None)
-
- def locate_by_type_pointer (self, type, pointer):
- return self.records_by_type_pointer.get ( (type, pointer), None)
-
- # convenience : try to locate first based on type+pointer
- # if so, the record was created already even if e.g. its hrn has changed meanwhile
- # otherwise we try by type+hrn (is this truly useful ?)
- def locate (self, type, hrn=None, pointer=-1):
- if pointer!=-1:
- attempt = self.locate_by_type_pointer (type, pointer)
- if attempt : return attempt
- if hrn is not None:
- attempt = self.locate_by_type_hrn (type, hrn,)
- if attempt : return attempt
- return None
+ self.records_by_type_pointer[(record.type, record.pointer,)] = record
+
+ def remember_record(self, record):
+ self.remember_record_by_hrn(record)
+ self.remember_record_by_pointer(record)
+
+ def locate_by_type_hrn(self, type, hrn):
+ return self.records_by_type_hrn.get((type, hrn), None)
+
+ def locate_by_type_pointer(self, type, pointer):
+ return self.records_by_type_pointer.get((type, pointer), None)
+
+ # a convenience/helper function to see if a record is already known
+ # a former, broken, attempt (in 2.1-9) had been made
+ # to try and use 'pointer' as a first, most significant attempt
+ # the idea being to preserve stuff as much as possible, and thus
+ # to avoid creating a new gid in the case of a simple hrn rename
+ # however this of course doesn't work as the gid depends on the hrn...
+ # def locate (self, type, hrn=None, pointer=-1):
+ # if pointer!=-1:
+ # attempt = self.locate_by_type_pointer (type, pointer)
+ # if attempt : return attempt
+ # if hrn is not None:
+ # attempt = self.locate_by_type_hrn (type, hrn,)
+ # if attempt : return attempt
+ # return None