code: public <T extends CounterListener> Handle<T> registerUserListener(ByteString counterName, T userListener) {
        ByRef<Handle<T>> handleByRef = new ByRef<>(null);
        counters.computeIfPresent(counterName, (name, holder) -> holder.addListener(userListener, handleByRef));
        return handleByRef.get();
     }
docs: It registers an user's {@link CounterListener} for a specific counter.
  
  @param counterName  The counter's name to listen.
  @param userListener The {@link CounterListener} to be invoked.
  @return The {@link Handle} for the {@link CounterListener}.