code: @Override
      public void addPersister(Persister persister) {
          listPersister.add(persister);
          if (persister instanceof ObjectPersisterFactory) {
              // will lead the list to be copied whenever we add a persister to it
              // but there won't be any overhead while iterating through the list.
              mapFactoryToPersister.put((ObjectPersisterFactory) persister, new CopyOnWriteArrayList<ObjectPersister<?>>());
          } else if (!(persister instanceof ObjectPersister)) {
              throw new RuntimeException(getClass().getSimpleName() + " only supports " + ObjectPersister.class.getSimpleName() + " or " + ObjectPersisterFactory.class.getSimpleName() + " instances.");
          }
      }
docs: {@inheritDoc}