code: public static String packValues(List<String> unpackedValues) {
          if (hasItems(unpackedValues)) {
              final Iterator<String> it = unpackedValues.iterator();
              final StringBuilder b = new StringBuilder();
              while (it.hasNext()) {
                  b.append(it.next());
                  if (it.hasNext()) {
                      b.append(PACKED_VALUES_DELIMITER);
                  }
              }
  
              return b.toString();
          }
  
          return null;
      }
docs: Pack values from <tt>List<String> unpackedValues</tt> into a single
  {@link String} using {@link #PACKED_VALUES_DELIMITER}.
  
  @param unpackedValues <tt>List<String></tt> the list of strings to pack,
  which should not be a {@code null} or empty {@link List list}
  @return {@link String}, the packed {@link String} containing all values
  delimited by {@link #PACKED_VALUES_DELIMITER}, or {@code null} if
  {@code unpackedValues} is {@code null} or empty