code: public static String valueSubstitution(final String value) {
          final String tmpProp = "java.io.tmpdir";
          final String tmpVar = "{tmp}";
          final String tmpRE = "{tmp}";
  
          final String homeProp = "user.home";
          final String homeVar = "{home}";
          final String homeRE = "{home}";
  
          final String nameProp = "user.name";
          final String nameVar = "{name}";
          final String nameRE = "{name}";
  
          final String cwdProp = "user.dir";
          final String cwdVar = "{dir}";
          final String cwdRE = "{dir}";
  
          final String bfHomeEnv = PathConstants.BELFRAMEWORK_HOME_ENV_VAR;
          final String bfHomeVar = "{belframework_home}";
          final String bfHomeRE = "{belframework_home}";
  
          String ret = value;
  
          if (value.contains(tmpVar)) {
              ret = ret.replace(tmpRE, getProperty(tmpProp));
          }
          if (value.contains(homeVar)) {
              ret = ret.replace(homeRE, getProperty(homeProp));
          }
          if (value.contains(nameVar)) {
              ret = ret.replace(nameRE, getProperty(nameProp));
          }
          if (value.contains(cwdVar)) {
              ret = ret.replace(cwdRE, getProperty(cwdProp));
          }
          if (value.contains(bfHomeVar)) {
              String bfHome = getenv(bfHomeEnv);
              if (bfHome == null) {
                  bfHome = ""; //belframework home is not set. Use empty string.
              }
              ret = ret.replace(bfHomeRE, bfHome);
          }
          return ret;
      }
docs: Performs substitution against the configuration {@code value} for the
  system's temporary directory, user's home directory, user's name, or
  user's current working directory.
  
  @param value Non-null string
  @return String resulting from value replacement