code: private String resolveMacro(final String string, final String macroName, final String value) {
  
          return null != value ? string.replaceAll("\\%\\(" + Pattern.quote(macroName) + "\\)", value) : string;
      }
docs: Replaces the macro with the value, unless the value is <code>null</code>, then the macro is kept.
  
  @param string The String where the macros should be replaced.
  @param value The value used for the replacement.
  @param macroName The name of the macro to resolve.
  
  @return The original String with %(value) macros replaced.