code: @Override
      public T get(Object key) {
          String sKey = (String) key;
          if (StringUtils.isBlank(sKey) && this.hasDefaultEnvironment()) {
              sKey = defaultEnvironment;
          } else if (StringUtils.isBlank(sKey)) {
              throw new MultiEnvSupportException("[environment] property is mandatory and can't be empty");
          }
          T value = map.get(sKey);
          if (value == null) {
              if (creationFunction != null) {
                  value = creationFunction.apply(sKey);
              } else {
                  value = resolve(sKey, getTemplate());
              }
  
              if (value != null) {
                  map.put(sKey, value);
              }
          }
  
          return value;
      }
docs: Returns the value to which the specified key is mapped, and adds it to the internal map if it wasn't previously
  present.
  
  @param key - environment name