public static ImmutableList<Long> convertSoyMessageIdStrings(Iterable<String> encodedIds) {
    ImmutableList.Builder<Long> messageIds = ImmutableList.builder();
    for (String encodedId : encodedIds) {
      byte[] decodedBytes = BaseEncoding.base64Url().decode(encodedId);
      if (decodedBytes.length != Long.BYTES) {
        throw new IllegalArgumentException(
            String.format(
                "The message ID to decode ('%s') was of invalid size (%d != %d)",
                encodedId, decodedBytes.length, Long.BYTES));
      }
      messageIds.add(Longs.fromByteArray(decodedBytes));
    }
    return messageIds.build();
  }
public static ImmutableList < Long > convertSoyMessageIdStrings ( Iterable < String > encodedIds ) { ImmutableList . Builder < Long > messageIds = ImmutableList . builder ( ) ; for ( String encodedId : encodedIds ) { byte [ ] decodedBytes = BaseEncoding . base64Url ( ) . decode ( encodedId ) ; if ( decodedBytes . length != Long . BYTES ) { throw new IllegalArgumentException ( String . format ( "The message ID to decode ('%s') was of invalid size (%d != %d)" , encodedId , decodedBytes . length , Long . BYTES ) ) ; } messageIds . add ( Longs . fromByteArray ( decodedBytes ) ) ; } return messageIds . build ( ) ; }
Converts received message ID strings, as rendered by the Soy <code>msgId</code> function, into
a list of long message IDs.

<p>The message IDs are generated by Soy as Base64 web safe ("base64url")-encoded int64s.

<p>For example, "URTo5tnzILU=" = [0x51 0x14 0xe8 0xe6 0xd9 0xf3 0x20 0xb5] = 0x5114e8e6d9f320b5
= 5842550694803087541.

@throws IllegalArgumentException if any of the strings fails to decode into message IDs, is too
long or too short.