IdGenerator
Description
Helper class that creates a bijective mapping between objects and integer identifiers.
An integer identifier (greater than zero) is assigned to each distinct value that is added to the IdGenerator object. Identifier values of removed mappings are not reused, so identifier values are truly unique.