code: protected Map<String, Map<String, String>> createPrintableDataContext(
              String optionKey,
              String secureOptionKey,
              String secureOptionValue,
              Map<String, Map<String, String>> dataContext
      )
      {
          Map<String, Map<String, String>> printableContext = new HashMap<>();
          if (dataContext != null) {
              printableContext.putAll(dataContext);
              Set<String> secureValues = new HashSet<>();
              if (dataContext.containsKey(secureOptionKey)) {
                  Map<String, String> secureOptions = new HashMap<>();
                  secureOptions.putAll(dataContext.get(secureOptionKey));
                  secureValues.addAll(secureOptions.values());
                  for (Map.Entry<String, String> entry : secureOptions.entrySet()) {
                      entry.setValue(secureOptionValue);
                  }
                  printableContext.put(secureOptionKey, secureOptions);
              }
  
              if (dataContext.containsKey(optionKey)) {
                  Map<String, String> options = new HashMap<>();
                  options.putAll(dataContext.get(optionKey));
                  for (Map.Entry<String, String> entry : options.entrySet()) {
                      if (secureValues.contains(entry.getValue())) {
                          entry.setValue(secureOptionValue);
                      }
                  }
                  printableContext.put(optionKey, options);
              }
          }
          return printableContext;
      }
docs: Creates a copy of the given data context with the secure option values obfuscated.
  This does not modify the original data context.
  
  "secureOption" map values will always be obfuscated. "option" entries that are also in "secureOption"
  will have their values obfuscated. All other maps within the data context will be added
  directly to the copy.
  
  @param optionKey         key
  @param secureOptionKey   secure key
  @param secureOptionValue secure value
  @param dataContext       data
  
  @return printable data