core/src/main/java/com/twitter/elephantbird/util/Protobufs.java
public static Object readFieldNoTag(CodedInputStream input,
                                      FieldDescriptor  fd,
                                      Builder          enclosingBuilder)
                                      throws IOException {
    if (!fd.isRepeated()) {
      return readSingleFieldNoTag(input, fd, enclosingBuilder);
    }

    // repeated field

    List<Object> values = Lists.newArrayList();
    while (!input.isAtEnd()) {
      values.add(readSingleFieldNoTag(input, fd, enclosingBuilder));
    }
    return values;
  }
public static Object readFieldNoTag(CodedInputStream input,
                                      FieldDescriptor  fd,
                                      Builder          enclosingBuilder)
                                      throws IOException {
    if (!fd.isRepeated()) {
      return readSingleFieldNoTag(input, fd, enclosingBuilder);
    }

    // repeated field

    List<Object> values = Lists.newArrayList();
    while (!input.isAtEnd()) {
      values.add(readSingleFieldNoTag(input, fd, enclosingBuilder));
    }
    return values;
  }
Deserializer for protobuf objects written with
{@link #writeFieldNoTag(CodedOutputStream, FieldDescriptor, Object)}.

@param input
@param fd
@param enclosingBuilder required to create a builder when the field
is a message
@throws IOException