logback-android/src/main/java/ch/qos/logback/core/pattern/parser/Compiler.java
@SuppressWarnings("unchecked")
  DynamicConverter<E> createConverter(SimpleKeywordNode kn) {
    String keyword = (String) kn.getValue();
    String converterClassStr = (String) converterMap.get(keyword);

    if (converterClassStr != null) {
      try {
        return (DynamicConverter<E>) OptionHelper.instantiateByClassName(
                converterClassStr, DynamicConverter.class, context);
      } catch (Exception e) {
        addError("Failed to instantiate converter class [" + converterClassStr
                + "] for keyword ["+keyword+"]", e);
        return null;
      }
    } else {
      addError("There is no conversion class registered for conversion word ["
              + keyword + "]");
      return null;
    }
  }
@SuppressWarnings("unchecked")
  DynamicConverter<E> createConverter(SimpleKeywordNode kn) {
    String keyword = (String) kn.getValue();
    String converterClassStr = (String) converterMap.get(keyword);

    if (converterClassStr != null) {
      try {
        return (DynamicConverter<E>) OptionHelper.instantiateByClassName(
                converterClassStr, DynamicConverter.class, context);
      } catch (Exception e) {
        addError("Failed to instantiate converter class [" + converterClassStr
                + "] for keyword ["+keyword+"]", e);
        return null;
      }
    } else {
      addError("There is no conversion class registered for conversion word ["
              + keyword + "]");
      return null;
    }
  }
Attempt to create a converter using the information found in
'converterMap'.

@param kn
@return