case WrappedMessage.WRAPPED_SINT64: messageHandler.onStart(null); messageHandler.onTag(fieldNumber, fieldDescriptor, tagValue); messageHandler.onEnd(); break;
@Override public void onEnd() { if (wrappedEnum != null) { EnumDescriptor enumDescriptor = (EnumDescriptor) getDescriptor(); String enumConstantName = enumDescriptor.findValueByNumber(wrappedEnum).getName(); FieldDescriptor fd = wrapperDescriptor.findFieldByNumber(WRAPPED_ENUM); messageHandler.onStart(enumDescriptor); messageHandler.onTag(WRAPPED_ENUM, fd, enumConstantName); messageHandler.onEnd(); } else if (wrappedMessage != null) { try { Descriptor messageDescriptor = (Descriptor) getDescriptor(); ProtobufParser.INSTANCE.parse(messageHandler, messageDescriptor, wrappedMessage); } catch (IOException e) { throw new RuntimeException(e); } } } };
if (fd == null) { byte[] value = in.readByteArray(); tagHandler.onTag(fieldNumber, null, value); } else if (fd.getType() == Type.STRING) { String value = in.readString(); tagHandler.onTag(fieldNumber, fd, value); } else if (fd.getType() == Type.BYTES) { byte[] value = in.readByteArray(); tagHandler.onTag(fieldNumber, fd, value); } else if (fd.getType() == Type.MESSAGE) { int length = in.readRawVarint32(); if (fd == null) { if (wireType == WireFormat.WIRETYPE_FIXED32) { tagHandler.onTag(fieldNumber, null, in.readFixed32()); } else if (wireType == WireFormat.WIRETYPE_FIXED64) { tagHandler.onTag(fieldNumber, null, in.readFixed64()); } else if (wireType == WireFormat.WIRETYPE_VARINT) { tagHandler.onTag(fieldNumber, null, in.readRawVarint64()); throw new IOException("Unexpected field type : " + fd.getType()); tagHandler.onTag(fieldNumber, fd, value);