void register()

in mapper/src/main/java/jetbrains/jetpad/mapper/MappingContext.java [42:69]


  void register(final Mapper<?, ?> mapper) {
    if (mapper.isFindable()) {
      Object source = mapper.getSource();
      if (!(myMappers.containsKey(source))) {
        myMappers.put(source, mapper);
      } else {
        Object ms = myMappers.get(source);
        if (ms instanceof Set) {
          @SuppressWarnings("unchecked")
          Set<Mapper<?, ?>> mappers = (Set<Mapper<?, ?>>) ms;
          mappers.add(mapper);
        } else {
          Mapper<?, ?> m = (Mapper<?, ?>) ms;
          Set<Mapper<?, ?>> mappers = new HashSet<>();
          mappers.add(m);
          mappers.add(mapper);
          myMappers.put(source, mappers);
        }
      }
    }

    myListeners.fire(new ListenerCaller<MappingContextListener>() {
      @Override
      public void call(MappingContextListener l) {
        l.onMapperRegistered(mapper);
      }
    });
  }