docs: @Override
    public final IConverterToFromString<?> lazyGet(
      final Map<String, Object> pAddParam,
        final String pBeanName) throws Exception {
      // There is no way to get from Map partially initialized bean
      // in this double-checked locking implementation
      // cause putting to the Map fully initialized bean
      IConverterToFromString<?> convrt = this.convertersMap.get(pBeanName);
      if (convrt == null) {
        // locking:
        synchronized (this.convertersMap) {
          // make sure again whether it's null after locking:
          convrt = this.convertersMap.get(pBeanName);
          if (convrt == null) {
            if (pBeanName.equals(CnvTfsLong.class.getSimpleName())) {
              convrt = lazyGetCnvTfsLong();
            } else if (pBeanName.equals(CnvTfsDate.class.getSimpleName())) {
              convrt = createPutCnvTfsDate();
            } else if (pBeanName.equals(CnvTfsDateTime.class
              .getSimpleName())) {
              convrt = createPutCnvTfsDateTime();
            } else if (pBeanName.equals(CnvTfsDateTimeSec.class
              .getSimpleName())) {
              convrt = createPutCnvTfsDateTimeSec();
            } else if (pBeanName.equals(CnvTfsDateTimeSecMs.class
              .getSimpleName())) {
              convrt = createPutCnvTfsDateTimeSecMs();
            } else if (pBeanName.equals(CnvTfsBigDecimal.class
              .getSimpleName())) {
              convrt = createPutCnvTfsBigDecimal();
            } else if (pBeanName.equals(CnvTfsFloat.class.getSimpleName())) {
              convrt = createPutCnvTfsFloat();
            } else if (pBeanName.equals(CnvTfsDouble.class.getSimpleName())) {
              convrt = createPutCnvTfsDouble();
            } else if (pBeanName.equals(CnvTfsBoolean.class.getSimpleName())) {
              convrt = createPutCnvTfsBoolean();
            } else if (pBeanName.equals(CnvTfsInteger.class.getSimpleName())) {
              convrt = lazyGetCnvTfsInteger();
            } else if (pBeanName.equals(CnvTfsString.class.getSimpleName())) {
              convrt = lazyGetCnvTfsString();
            } else {
              for (Map.Entry<Class<? extends IHasId<Long>>, String> entry
                : this.hasLongIdMap.entrySet()) {
                if (pBeanName.equals(CnvTfsHasId.class.getSimpleName()
                  + "Long" + entry.getKey().getSimpleName())) {
                  convrt = createHasLongIdConverter(pBeanName,
                    entry.getKey(), entry.getValue());
                  break;
                }
              }
              for (Map.Entry<Class<? extends IHasId<Integer>>, String> entry
                : this.hasIntegerIdMap.entrySet()) {
                if (pBeanName.equals(CnvTfsHasId.class.getSimpleName()
                  + "Integer" + entry.getKey().getSimpleName())) {
                  convrt = createHasIntegerIdConverter(pBeanName,
                    entry.getKey(), entry.getValue());
                  break;
                }
              }
              for (Map.Entry<Class<? extends IHasId<String>>, String> entry
                : this.hasStringIdMap.entrySet()) {
                if (pBeanName.equals(CnvTfsHasId.class.getSimpleName()
                  + "String" + entry.getKey().getSimpleName())) {
                  convrt = createHasStringIdConverter(pBeanName,
                    entry.getKey(), entry.getValue());
                  break;
                }
              }
              for (Map.Entry<Class<? extends IHasId<?>>, String> entry
                : this.hasCompositeIdMap.entrySet()) {
                if (pBeanName.equals(CnvTfsHasId.class.getSimpleName()
                  + "Composite" + entry.getKey().getSimpleName())) {
                  convrt = createHasCompositeIdConverter(pBeanName,
                    entry.getKey(), entry.getValue());
                  break;
                }
              }
              for (Class<?> cmpsClass : this.compositeClasses) {
                if (pBeanName.equals(getCnvTfsObjectName(cmpsClass))) {
                  convrt = lazyGetCnvTfsObject(cmpsClass);
                  break;
                }
              }
              for (Class<? extends Enum<?>> enumClass : this.enumsClasses) {
                if (pBeanName.equals(CnvTfsEnum
                  .class.getSimpleName() + enumClass.getSimpleName())) {
                  convrt = createCnvTfsEnum(pBeanName, enumClass);
                  break;
                }
              }
            }
          }
        }
      }
      if (convrt == null) {
        throw new ExceptionWithCode(ExceptionWithCode.CONFIGURATION_MISTAKE,
          "There is no converter with name " + pBeanName);
      }
      return convrt;
    }