code: public static Map<String, String> demapProperties(
              final Map<String, String> input,
              final Map<String, String> mapping,
              final boolean skip
      )
      {
          if (null == mapping) {
              return input;
          }
          final Map<String, String> rev = new HashMap<String, String>();
          for (final Map.Entry<String, String> entry : mapping.entrySet()) {
              rev.put(entry.getValue(), entry.getKey());
          }
          return performMapping(input, rev, skip);
      }
docs: Reverses a set of properties mapped using the specified property mapping, or the same input
  if the description has no mapping
  @param input input map
  @param mapping key value mapping
  @param skip if true, ignore input entries when the key is not present in the mapping
  @return mapped values