@Override
      protected String doForward(T toName) {
        Preconditions.checkArgument(names.containsKey(toName), "%s was not cached", toName);
        return names.get(toName);
      }
Gives an unique (generated) name to objects so they can be used as identifiers in queries.
Same objects (as defined by object equality) will have same name.

@param <T>
criteria/common/src/org/immutables/criteria/backend/UniqueCachedNaming.java