class TCSObjectPool {

  public void addObject(TCSObject<?> newObject)
      throws ObjectExistsException {
    requireNonNull(newObject, "newObject");

    if (objectsByName.containsKey(newObject.getName())) {
      throw new ObjectExistsException("Object name " + newObject.getName() + " already exists.");
    }
    objectsByName.put(newObject.getName(), newObject);
    idBits.set(extractId(newObject.getReference()));
    objectNameGenerator.addString(newObject.getName());
  }

  @Inject public  TCSObjectPool(@ApplicationEventBus EventHandler eventHandler);

}