code: @SuppressWarnings("unchecked")
    public Query select(String... selections) {
      checkNotNull(selections, "Selections cannot be null. Please specify at least one.");
  
      if (selections.length == 0) {
        throw new IllegalArgumentException("Please provide a selection to be selected.");
      }
  
      for (int i = 0; i < selections.length; i++) {
        try {
          select(selections[i]);
        } catch (IllegalStateException stateException) {
          throw new IllegalStateException(stateException);
        } catch (IllegalArgumentException argumentException) {
          throw new IllegalArgumentException(
              format("Could not select %d. field (\"%s\").", i, selections[i]),
              argumentException);
        }
      }
  
      return (Query) this;
    }
docs: Convenient method for chaining several select queries together.
  <p>
  This method makes it easier to select multiple properties from one method call. It calls
  select for all of its arguments.
  
  @param selections field names to be requested.
  @return the calling query for chaining.
  @throws NullPointerException     if a field is null.
  @throws IllegalArgumentException if a field is of zero length, aka empty.
  @throws IllegalStateException    if no contentType was queried for before.
  @throws IllegalArgumentException if tried to request deeper then the name of a field.
  @throws IllegalArgumentException if no selections were requested.
  @see #select(String)