code: public <T> T getProperty(String name, Class<T> type, T defaultValue)
    {
      Params.notNullOrEmpty(name, "Property name");
      Params.notNull(type, "Property type");
      String value = getProperty(name);
      if(value != null) {
        return converter.asObject(value, type);
      }
      return defaultValue;
    }
docs: Get configuration object property converter to requested type or default value if there is no property with given
  name.
  
  @param name property name.
  @param type type to convert property value to,
  @param defaultValue default value, possible null or empty.
  @param <T> value type.
  @return newly created value object or default value.
  @throws IllegalArgumentException if <code>name</code> argument is null or empty.
  @throws IllegalArgumentException if <code>type</code> argument is null.
  @throws ConverterException if there is no converter registered for value type or value parse fails.