code: public static String obfuscateWith(
  		final BiMap<Character, ObfuscationRule<Character, Character>> rules,
  		final String toObfuscate)
  	{
  		final StringBuilder sb = new StringBuilder();
  		for (int i = 0; i < toObfuscate.length(); i++)
  		{
  			final char currentCharacter = toObfuscate.charAt(i);
  			final Character asCharacter = Character.valueOf(currentCharacter);
  			final String charAsString = Character.toString(currentCharacter);
  			if (rules.containsKey(asCharacter))
  			{
  				final ObfuscationRule<Character, Character> obfuscationOperationRule = rules
  					.get(asCharacter);
  				final Character replaceWith = obfuscationOperationRule.getReplaceWith();
  				sb.append(replaceWith);
  			}
  			else
  			{
  				sb.append(charAsString);
  			}
  		}
  		return sb.toString();
  	}
docs: Obfuscate with the given {@link BiMap}
  
  @param rules
  the rules
  @param toObfuscate
  the {@link String} object to obfuscate
  @return the string