Google Protobuf 使用 Java 版

时间:2023-03-08 19:34:13

一 . Protobuf 的入门

  Protobuf 是一个灵活,高效,结构化的数据序列化框架, 相比于 XML 等传统的序列化工具,它更小,更快,更灵活,更简单. Protobuf 支持数据结构化一次可以到处使用.甚至跨语言使用.同通过代码生成工具可以自动生成不同语言版本的源代码,甚至可以在使用不同版本的数据结构中进行数据传递,实现数据结构的向前兼容.  

  Google 的 protobuf 在业界非常流行,很多商业项目选择 protobuf 作为编码解码框架,这里我们一起回顾一下 Protobuf 的优点.

  1. 在 Google 内长期使用,产品成熟度高;
  2. 跨语言,支持多种语言,包括 c++,Java, 和 Python;
  3. 编码后的消息更小,更加有利于存储和传输;
  4. 编码的性能非常高;
  5. 支持不同协议版本的向前兼容;
  6. 支持定义可选和必选字段;

如图:

Google Protobuf  使用 Java 版

二. Protobuf 的使用(mac 环境下).

1. 环境搭建

1.1 下载 protobuf   

http://pan.baidu.com/s/1dDyEUjR

1.2. 安装

tar -zxf  protobuf-2.5..tar.gz
cd protobuf-2.5.
./configure --prefix=/Users/mjorcen/dev/tools/protobuf
make & make install

注 : /Users/mjorcen/dev/tools/protobuf 为自己设定的编译安装目录

1.3. 配置环境变量

sudo vi .bash_profile
export PROTOBUF=/Users/mjorcen/dev/tools/protobuf
export PATH=$PROTOBUF/bin:$PATH

1.4. 测试

protoc --version

2 . Protobuf 入门

2.1 定义数据结构;

package netty ;
option java_package = “object.server.impl”;
option java_outer_classname = “SubScriptReqProto”; message SubScriptReq{
required int32 subReqID = ;
required string userName = ;
required string productName = ;
required string address = ;
}
package netty ;
option java_package = “object.server.impl”;
option java_outer_classname = “SubScriptRespProto”; message SubScriptResp{
  required int32 subReqID = ;
  required int32 respCode = ;
  required string desc = ;
}

2.2 通过 Protobuf 命令生成代码

MjorcendeMacBook-Air:tmp mjorcen$ /Users/mjorcen/dev/tools/protobuf/bin/protoc --java_out=./src ./netty/SubScriptReq.proto
MjorcendeMacBook-Air:tmp mjorcen$ /Users/mjorcen/dev/tools/protobuf/bin/protoc --java_out=./src ./netty/SubScriptResp.proto

2.3 把生成的 Java 文件复制放入项目中.

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: netty/SubScriptReq.proto package object.server.impl; public final class SubScriptReqProto {
private SubScriptReqProto() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
}
public interface SubScriptReqOrBuilder
extends com.google.protobuf.MessageOrBuilder { // required int32 subReqID = 1;
/**
* <code>required int32 subReqID = 1;</code>
*/
boolean hasSubReqID();
/**
* <code>required int32 subReqID = 1;</code>
*/
int getSubReqID(); // required string userName = 2;
/**
* <code>required string userName = 2;</code>
*/
boolean hasUserName();
/**
* <code>required string userName = 2;</code>
*/
java.lang.String getUserName();
/**
* <code>required string userName = 2;</code>
*/
com.google.protobuf.ByteString
getUserNameBytes(); // required string productName = 3;
/**
* <code>required string productName = 3;</code>
*/
boolean hasProductName();
/**
* <code>required string productName = 3;</code>
*/
java.lang.String getProductName();
/**
* <code>required string productName = 3;</code>
*/
com.google.protobuf.ByteString
getProductNameBytes(); // required string address = 4;
/**
* <code>required string address = 4;</code>
*/
boolean hasAddress();
/**
* <code>required string address = 4;</code>
*/
java.lang.String getAddress();
/**
* <code>required string address = 4;</code>
*/
com.google.protobuf.ByteString
getAddressBytes();
}
/**
* Protobuf type {@code netty.SubScriptReq}
*/
public static final class SubScriptReq extends
com.google.protobuf.GeneratedMessage
implements SubScriptReqOrBuilder {
// Use SubScriptReq.newBuilder() to construct.
private SubScriptReq(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
super(builder);
this.unknownFields = builder.getUnknownFields();
}
private SubScriptReq(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } private static final SubScriptReq defaultInstance;
public static SubScriptReq getDefaultInstance() {
return defaultInstance;
} public SubScriptReq getDefaultInstanceForType() {
return defaultInstance;
} private final com.google.protobuf.UnknownFieldSet unknownFields;
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private SubScriptReq(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
initFields();
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
done = true;
}
break;
}
case 8: {
bitField0_ |= 0x00000001;
subReqID_ = input.readInt32();
break;
}
case 18: {
bitField0_ |= 0x00000002;
userName_ = input.readBytes();
break;
}
case 26: {
bitField0_ |= 0x00000004;
productName_ = input.readBytes();
break;
}
case 34: {
bitField0_ |= 0x00000008;
address_ = input.readBytes();
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e.getMessage()).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return object.server.impl.SubScriptReqProto.internal_static_netty_SubScriptReq_descriptor;
} protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return object.server.impl.SubScriptReqProto.internal_static_netty_SubScriptReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
object.server.impl.SubScriptReqProto.SubScriptReq.class, object.server.impl.SubScriptReqProto.SubScriptReq.Builder.class);
} public static com.google.protobuf.Parser<SubScriptReq> PARSER =
new com.google.protobuf.AbstractParser<SubScriptReq>() {
public SubScriptReq parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new SubScriptReq(input, extensionRegistry);
}
}; @java.lang.Override
public com.google.protobuf.Parser<SubScriptReq> getParserForType() {
return PARSER;
} private int bitField0_;
// required int32 subReqID = 1;
public static final int SUBREQID_FIELD_NUMBER = 1;
private int subReqID_;
/**
* <code>required int32 subReqID = 1;</code>
*/
public boolean hasSubReqID() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
/**
* <code>required int32 subReqID = 1;</code>
*/
public int getSubReqID() {
return subReqID_;
} // required string userName = 2;
public static final int USERNAME_FIELD_NUMBER = 2;
private java.lang.Object userName_;
/**
* <code>required string userName = 2;</code>
*/
public boolean hasUserName() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
/**
* <code>required string userName = 2;</code>
*/
public java.lang.String getUserName() {
java.lang.Object ref = userName_;
if (ref instanceof java.lang.String) {
return (java.lang.String) ref;
} else {
com.google.protobuf.ByteString bs =
(com.google.protobuf.ByteString) ref;
java.lang.String s = bs.toStringUtf8();
if (bs.isValidUtf8()) {
userName_ = s;
}
return s;
}
}
/**
* <code>required string userName = 2;</code>
*/
public com.google.protobuf.ByteString
getUserNameBytes() {
java.lang.Object ref = userName_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
userName_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
} // required string productName = 3;
public static final int PRODUCTNAME_FIELD_NUMBER = 3;
private java.lang.Object productName_;
/**
* <code>required string productName = 3;</code>
*/
public boolean hasProductName() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>required string productName = 3;</code>
*/
public java.lang.String getProductName() {
java.lang.Object ref = productName_;
if (ref instanceof java.lang.String) {
return (java.lang.String) ref;
} else {
com.google.protobuf.ByteString bs =
(com.google.protobuf.ByteString) ref;
java.lang.String s = bs.toStringUtf8();
if (bs.isValidUtf8()) {
productName_ = s;
}
return s;
}
}
/**
* <code>required string productName = 3;</code>
*/
public com.google.protobuf.ByteString
getProductNameBytes() {
java.lang.Object ref = productName_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
productName_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
} // required string address = 4;
public static final int ADDRESS_FIELD_NUMBER = 4;
private java.lang.Object address_;
/**
* <code>required string address = 4;</code>
*/
public boolean hasAddress() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
/**
* <code>required string address = 4;</code>
*/
public java.lang.String getAddress() {
java.lang.Object ref = address_;
if (ref instanceof java.lang.String) {
return (java.lang.String) ref;
} else {
com.google.protobuf.ByteString bs =
(com.google.protobuf.ByteString) ref;
java.lang.String s = bs.toStringUtf8();
if (bs.isValidUtf8()) {
address_ = s;
}
return s;
}
}
/**
* <code>required string address = 4;</code>
*/
public com.google.protobuf.ByteString
getAddressBytes() {
java.lang.Object ref = address_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
address_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
} private void initFields() {
subReqID_ = 0;
userName_ = "";
productName_ = "";
address_ = "";
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1; if (!hasSubReqID()) {
memoizedIsInitialized = 0;
return false;
}
if (!hasUserName()) {
memoizedIsInitialized = 0;
return false;
}
if (!hasProductName()) {
memoizedIsInitialized = 0;
return false;
}
if (!hasAddress()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
} public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeInt32(1, subReqID_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeBytes(2, getUserNameBytes());
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeBytes(3, getProductNameBytes());
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
output.writeBytes(4, getAddressBytes());
}
getUnknownFields().writeTo(output);
} private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size; size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(1, subReqID_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(2, getUserNameBytes());
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(3, getProductNameBytes());
}
if (((bitField0_ & 0x00000008) == 0x00000008)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(4, getAddressBytes());
}
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
return size;
} private static final long serialVersionUID = 0L;
@java.lang.Override
protected java.lang.Object writeReplace()
throws java.io.ObjectStreamException {
return super.writeReplace();
} public static object.server.impl.SubScriptReqProto.SubScriptReq parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static object.server.impl.SubScriptReqProto.SubScriptReq parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static object.server.impl.SubScriptReqProto.SubScriptReq parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static object.server.impl.SubScriptReqProto.SubScriptReq parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static object.server.impl.SubScriptReqProto.SubScriptReq parseFrom(java.io.InputStream input)
throws java.io.IOException {
return PARSER.parseFrom(input);
}
public static object.server.impl.SubScriptReqProto.SubScriptReq parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
}
public static object.server.impl.SubScriptReqProto.SubScriptReq parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return PARSER.parseDelimitedFrom(input);
}
public static object.server.impl.SubScriptReqProto.SubScriptReq parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseDelimitedFrom(input, extensionRegistry);
}
public static object.server.impl.SubScriptReqProto.SubScriptReq parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return PARSER.parseFrom(input);
}
public static object.server.impl.SubScriptReqProto.SubScriptReq parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
} public static Builder newBuilder() { return Builder.create(); }
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder(object.server.impl.SubScriptReqProto.SubScriptReq prototype) {
return newBuilder().mergeFrom(prototype);
}
public Builder toBuilder() { return newBuilder(this); } @java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* Protobuf type {@code netty.SubScriptReq}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder<Builder>
implements object.server.impl.SubScriptReqProto.SubScriptReqOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return object.server.impl.SubScriptReqProto.internal_static_netty_SubScriptReq_descriptor;
} protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return object.server.impl.SubScriptReqProto.internal_static_netty_SubScriptReq_fieldAccessorTable
.ensureFieldAccessorsInitialized(
object.server.impl.SubScriptReqProto.SubScriptReq.class, object.server.impl.SubScriptReqProto.SubScriptReq.Builder.class);
} // Construct using object.server.impl.SubScriptReqProto.SubScriptReq.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
} private Builder(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
}
}
private static Builder create() {
return new Builder();
} public Builder clear() {
super.clear();
subReqID_ = 0;
bitField0_ = (bitField0_ & ~0x00000001);
userName_ = "";
bitField0_ = (bitField0_ & ~0x00000002);
productName_ = "";
bitField0_ = (bitField0_ & ~0x00000004);
address_ = "";
bitField0_ = (bitField0_ & ~0x00000008);
return this;
} public Builder clone() {
return create().mergeFrom(buildPartial());
} public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return object.server.impl.SubScriptReqProto.internal_static_netty_SubScriptReq_descriptor;
} public object.server.impl.SubScriptReqProto.SubScriptReq getDefaultInstanceForType() {
return object.server.impl.SubScriptReqProto.SubScriptReq.getDefaultInstance();
} public object.server.impl.SubScriptReqProto.SubScriptReq build() {
object.server.impl.SubScriptReqProto.SubScriptReq result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
} public object.server.impl.SubScriptReqProto.SubScriptReq buildPartial() {
object.server.impl.SubScriptReqProto.SubScriptReq result = new object.server.impl.SubScriptReqProto.SubScriptReq(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.subReqID_ = subReqID_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.userName_ = userName_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
result.productName_ = productName_;
if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
to_bitField0_ |= 0x00000008;
}
result.address_ = address_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
} public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof object.server.impl.SubScriptReqProto.SubScriptReq) {
return mergeFrom((object.server.impl.SubScriptReqProto.SubScriptReq)other);
} else {
super.mergeFrom(other);
return this;
}
} public Builder mergeFrom(object.server.impl.SubScriptReqProto.SubScriptReq other) {
if (other == object.server.impl.SubScriptReqProto.SubScriptReq.getDefaultInstance()) return this;
if (other.hasSubReqID()) {
setSubReqID(other.getSubReqID());
}
if (other.hasUserName()) {
bitField0_ |= 0x00000002;
userName_ = other.userName_;
onChanged();
}
if (other.hasProductName()) {
bitField0_ |= 0x00000004;
productName_ = other.productName_;
onChanged();
}
if (other.hasAddress()) {
bitField0_ |= 0x00000008;
address_ = other.address_;
onChanged();
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
} public final boolean isInitialized() {
if (!hasSubReqID()) { return false;
}
if (!hasUserName()) { return false;
}
if (!hasProductName()) { return false;
}
if (!hasAddress()) { return false;
}
return true;
} public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
object.server.impl.SubScriptReqProto.SubScriptReq parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (object.server.impl.SubScriptReqProto.SubScriptReq) e.getUnfinishedMessage();
throw e;
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int bitField0_; // required int32 subReqID = 1;
private int subReqID_ ;
/**
* <code>required int32 subReqID = 1;</code>
*/
public boolean hasSubReqID() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
/**
* <code>required int32 subReqID = 1;</code>
*/
public int getSubReqID() {
return subReqID_;
}
/**
* <code>required int32 subReqID = 1;</code>
*/
public Builder setSubReqID(int value) {
bitField0_ |= 0x00000001;
subReqID_ = value;
onChanged();
return this;
}
/**
* <code>required int32 subReqID = 1;</code>
*/
public Builder clearSubReqID() {
bitField0_ = (bitField0_ & ~0x00000001);
subReqID_ = 0;
onChanged();
return this;
} // required string userName = 2;
private java.lang.Object userName_ = "";
/**
* <code>required string userName = 2;</code>
*/
public boolean hasUserName() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
/**
* <code>required string userName = 2;</code>
*/
public java.lang.String getUserName() {
java.lang.Object ref = userName_;
if (!(ref instanceof java.lang.String)) {
java.lang.String s = ((com.google.protobuf.ByteString) ref)
.toStringUtf8();
userName_ = s;
return s;
} else {
return (java.lang.String) ref;
}
}
/**
* <code>required string userName = 2;</code>
*/
public com.google.protobuf.ByteString
getUserNameBytes() {
java.lang.Object ref = userName_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
userName_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
/**
* <code>required string userName = 2;</code>
*/
public Builder setUserName(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000002;
userName_ = value;
onChanged();
return this;
}
/**
* <code>required string userName = 2;</code>
*/
public Builder clearUserName() {
bitField0_ = (bitField0_ & ~0x00000002);
userName_ = getDefaultInstance().getUserName();
onChanged();
return this;
}
/**
* <code>required string userName = 2;</code>
*/
public Builder setUserNameBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000002;
userName_ = value;
onChanged();
return this;
} // required string productName = 3;
private java.lang.Object productName_ = "";
/**
* <code>required string productName = 3;</code>
*/
public boolean hasProductName() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>required string productName = 3;</code>
*/
public java.lang.String getProductName() {
java.lang.Object ref = productName_;
if (!(ref instanceof java.lang.String)) {
java.lang.String s = ((com.google.protobuf.ByteString) ref)
.toStringUtf8();
productName_ = s;
return s;
} else {
return (java.lang.String) ref;
}
}
/**
* <code>required string productName = 3;</code>
*/
public com.google.protobuf.ByteString
getProductNameBytes() {
java.lang.Object ref = productName_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
productName_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
/**
* <code>required string productName = 3;</code>
*/
public Builder setProductName(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000004;
productName_ = value;
onChanged();
return this;
}
/**
* <code>required string productName = 3;</code>
*/
public Builder clearProductName() {
bitField0_ = (bitField0_ & ~0x00000004);
productName_ = getDefaultInstance().getProductName();
onChanged();
return this;
}
/**
* <code>required string productName = 3;</code>
*/
public Builder setProductNameBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000004;
productName_ = value;
onChanged();
return this;
} // required string address = 4;
private java.lang.Object address_ = "";
/**
* <code>required string address = 4;</code>
*/
public boolean hasAddress() {
return ((bitField0_ & 0x00000008) == 0x00000008);
}
/**
* <code>required string address = 4;</code>
*/
public java.lang.String getAddress() {
java.lang.Object ref = address_;
if (!(ref instanceof java.lang.String)) {
java.lang.String s = ((com.google.protobuf.ByteString) ref)
.toStringUtf8();
address_ = s;
return s;
} else {
return (java.lang.String) ref;
}
}
/**
* <code>required string address = 4;</code>
*/
public com.google.protobuf.ByteString
getAddressBytes() {
java.lang.Object ref = address_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
address_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
/**
* <code>required string address = 4;</code>
*/
public Builder setAddress(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000008;
address_ = value;
onChanged();
return this;
}
/**
* <code>required string address = 4;</code>
*/
public Builder clearAddress() {
bitField0_ = (bitField0_ & ~0x00000008);
address_ = getDefaultInstance().getAddress();
onChanged();
return this;
}
/**
* <code>required string address = 4;</code>
*/
public Builder setAddressBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000008;
address_ = value;
onChanged();
return this;
} // @@protoc_insertion_point(builder_scope:netty.SubScriptReq)
} static {
defaultInstance = new SubScriptReq(true);
defaultInstance.initFields();
} // @@protoc_insertion_point(class_scope:netty.SubScriptReq)
} private static com.google.protobuf.Descriptors.Descriptor
internal_static_netty_SubScriptReq_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_netty_SubScriptReq_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\030netty/SubScriptReq.proto\022\005netty\"X\n\014Sub" +
"ScriptReq\022\020\n\010subReqID\030\001 \002(\005\022\020\n\010userName\030" +
"\002 \002(\t\022\023\n\013productName\030\003 \002(\t\022\017\n\007address\030\004 " +
"\002(\tB\'\n\022object.server.implB\021SubScriptReqP" +
"roto"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
public com.google.protobuf.ExtensionRegistry assignDescriptors(
com.google.protobuf.Descriptors.FileDescriptor root) {
descriptor = root;
internal_static_netty_SubScriptReq_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_netty_SubScriptReq_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_netty_SubScriptReq_descriptor,
new java.lang.String[] { "SubReqID", "UserName", "ProductName", "Address", });
return null;
}
};
com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
}, assigner);
} // @@protoc_insertion_point(outer_class_scope)
}
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: netty/SubScriptResp.proto package object.server.impl; public final class SubScriptRespProto {
private SubScriptRespProto() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
}
public interface SubScriptRespOrBuilder
extends com.google.protobuf.MessageOrBuilder { // required int32 subReqID = 1;
/**
* <code>required int32 subReqID = 1;</code>
*/
boolean hasSubReqID();
/**
* <code>required int32 subReqID = 1;</code>
*/
int getSubReqID(); // required int32 respCode = 2;
/**
* <code>required int32 respCode = 2;</code>
*/
boolean hasRespCode();
/**
* <code>required int32 respCode = 2;</code>
*/
int getRespCode(); // required string desc = 3;
/**
* <code>required string desc = 3;</code>
*/
boolean hasDesc();
/**
* <code>required string desc = 3;</code>
*/
java.lang.String getDesc();
/**
* <code>required string desc = 3;</code>
*/
com.google.protobuf.ByteString
getDescBytes();
}
/**
* Protobuf type {@code netty.SubScriptResp}
*/
public static final class SubScriptResp extends
com.google.protobuf.GeneratedMessage
implements SubScriptRespOrBuilder {
// Use SubScriptResp.newBuilder() to construct.
private SubScriptResp(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
super(builder);
this.unknownFields = builder.getUnknownFields();
}
private SubScriptResp(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } private static final SubScriptResp defaultInstance;
public static SubScriptResp getDefaultInstance() {
return defaultInstance;
} public SubScriptResp getDefaultInstanceForType() {
return defaultInstance;
} private final com.google.protobuf.UnknownFieldSet unknownFields;
@java.lang.Override
public final com.google.protobuf.UnknownFieldSet
getUnknownFields() {
return this.unknownFields;
}
private SubScriptResp(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
initFields();
int mutable_bitField0_ = 0;
com.google.protobuf.UnknownFieldSet.Builder unknownFields =
com.google.protobuf.UnknownFieldSet.newBuilder();
try {
boolean done = false;
while (!done) {
int tag = input.readTag();
switch (tag) {
case 0:
done = true;
break;
default: {
if (!parseUnknownField(input, unknownFields,
extensionRegistry, tag)) {
done = true;
}
break;
}
case 8: {
bitField0_ |= 0x00000001;
subReqID_ = input.readInt32();
break;
}
case 16: {
bitField0_ |= 0x00000002;
respCode_ = input.readInt32();
break;
}
case 26: {
bitField0_ |= 0x00000004;
desc_ = input.readBytes();
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(this);
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(
e.getMessage()).setUnfinishedMessage(this);
} finally {
this.unknownFields = unknownFields.build();
makeExtensionsImmutable();
}
}
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return object.server.impl.SubScriptRespProto.internal_static_netty_SubScriptResp_descriptor;
} protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return object.server.impl.SubScriptRespProto.internal_static_netty_SubScriptResp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
object.server.impl.SubScriptRespProto.SubScriptResp.class, object.server.impl.SubScriptRespProto.SubScriptResp.Builder.class);
} public static com.google.protobuf.Parser<SubScriptResp> PARSER =
new com.google.protobuf.AbstractParser<SubScriptResp>() {
public SubScriptResp parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return new SubScriptResp(input, extensionRegistry);
}
}; @java.lang.Override
public com.google.protobuf.Parser<SubScriptResp> getParserForType() {
return PARSER;
} private int bitField0_;
// required int32 subReqID = 1;
public static final int SUBREQID_FIELD_NUMBER = 1;
private int subReqID_;
/**
* <code>required int32 subReqID = 1;</code>
*/
public boolean hasSubReqID() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
/**
* <code>required int32 subReqID = 1;</code>
*/
public int getSubReqID() {
return subReqID_;
} // required int32 respCode = 2;
public static final int RESPCODE_FIELD_NUMBER = 2;
private int respCode_;
/**
* <code>required int32 respCode = 2;</code>
*/
public boolean hasRespCode() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
/**
* <code>required int32 respCode = 2;</code>
*/
public int getRespCode() {
return respCode_;
} // required string desc = 3;
public static final int DESC_FIELD_NUMBER = 3;
private java.lang.Object desc_;
/**
* <code>required string desc = 3;</code>
*/
public boolean hasDesc() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>required string desc = 3;</code>
*/
public java.lang.String getDesc() {
java.lang.Object ref = desc_;
if (ref instanceof java.lang.String) {
return (java.lang.String) ref;
} else {
com.google.protobuf.ByteString bs =
(com.google.protobuf.ByteString) ref;
java.lang.String s = bs.toStringUtf8();
if (bs.isValidUtf8()) {
desc_ = s;
}
return s;
}
}
/**
* <code>required string desc = 3;</code>
*/
public com.google.protobuf.ByteString
getDescBytes() {
java.lang.Object ref = desc_;
if (ref instanceof java.lang.String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
desc_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
} private void initFields() {
subReqID_ = 0;
respCode_ = 0;
desc_ = "";
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
byte isInitialized = memoizedIsInitialized;
if (isInitialized != -1) return isInitialized == 1; if (!hasSubReqID()) {
memoizedIsInitialized = 0;
return false;
}
if (!hasRespCode()) {
memoizedIsInitialized = 0;
return false;
}
if (!hasDesc()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
} public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
if (((bitField0_ & 0x00000001) == 0x00000001)) {
output.writeInt32(1, subReqID_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
output.writeInt32(2, respCode_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
output.writeBytes(3, getDescBytes());
}
getUnknownFields().writeTo(output);
} private int memoizedSerializedSize = -1;
public int getSerializedSize() {
int size = memoizedSerializedSize;
if (size != -1) return size; size = 0;
if (((bitField0_ & 0x00000001) == 0x00000001)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(1, subReqID_);
}
if (((bitField0_ & 0x00000002) == 0x00000002)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(2, respCode_);
}
if (((bitField0_ & 0x00000004) == 0x00000004)) {
size += com.google.protobuf.CodedOutputStream
.computeBytesSize(3, getDescBytes());
}
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
return size;
} private static final long serialVersionUID = 0L;
@java.lang.Override
protected java.lang.Object writeReplace()
throws java.io.ObjectStreamException {
return super.writeReplace();
} public static object.server.impl.SubScriptRespProto.SubScriptResp parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static object.server.impl.SubScriptRespProto.SubScriptResp parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static object.server.impl.SubScriptRespProto.SubScriptResp parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
public static object.server.impl.SubScriptRespProto.SubScriptResp parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
public static object.server.impl.SubScriptRespProto.SubScriptResp parseFrom(java.io.InputStream input)
throws java.io.IOException {
return PARSER.parseFrom(input);
}
public static object.server.impl.SubScriptRespProto.SubScriptResp parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
}
public static object.server.impl.SubScriptRespProto.SubScriptResp parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return PARSER.parseDelimitedFrom(input);
}
public static object.server.impl.SubScriptRespProto.SubScriptResp parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseDelimitedFrom(input, extensionRegistry);
}
public static object.server.impl.SubScriptRespProto.SubScriptResp parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return PARSER.parseFrom(input);
}
public static object.server.impl.SubScriptRespProto.SubScriptResp parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return PARSER.parseFrom(input, extensionRegistry);
} public static Builder newBuilder() { return Builder.create(); }
public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder(object.server.impl.SubScriptRespProto.SubScriptResp prototype) {
return newBuilder().mergeFrom(prototype);
}
public Builder toBuilder() { return newBuilder(this); } @java.lang.Override
protected Builder newBuilderForType(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
Builder builder = new Builder(parent);
return builder;
}
/**
* Protobuf type {@code netty.SubScriptResp}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder<Builder>
implements object.server.impl.SubScriptRespProto.SubScriptRespOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return object.server.impl.SubScriptRespProto.internal_static_netty_SubScriptResp_descriptor;
} protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
return object.server.impl.SubScriptRespProto.internal_static_netty_SubScriptResp_fieldAccessorTable
.ensureFieldAccessorsInitialized(
object.server.impl.SubScriptRespProto.SubScriptResp.class, object.server.impl.SubScriptRespProto.SubScriptResp.Builder.class);
} // Construct using object.server.impl.SubScriptRespProto.SubScriptResp.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
} private Builder(
com.google.protobuf.GeneratedMessage.BuilderParent parent) {
super(parent);
maybeForceBuilderInitialization();
}
private void maybeForceBuilderInitialization() {
if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
}
}
private static Builder create() {
return new Builder();
} public Builder clear() {
super.clear();
subReqID_ = 0;
bitField0_ = (bitField0_ & ~0x00000001);
respCode_ = 0;
bitField0_ = (bitField0_ & ~0x00000002);
desc_ = "";
bitField0_ = (bitField0_ & ~0x00000004);
return this;
} public Builder clone() {
return create().mergeFrom(buildPartial());
} public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
return object.server.impl.SubScriptRespProto.internal_static_netty_SubScriptResp_descriptor;
} public object.server.impl.SubScriptRespProto.SubScriptResp getDefaultInstanceForType() {
return object.server.impl.SubScriptRespProto.SubScriptResp.getDefaultInstance();
} public object.server.impl.SubScriptRespProto.SubScriptResp build() {
object.server.impl.SubScriptRespProto.SubScriptResp result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
return result;
} public object.server.impl.SubScriptRespProto.SubScriptResp buildPartial() {
object.server.impl.SubScriptRespProto.SubScriptResp result = new object.server.impl.SubScriptRespProto.SubScriptResp(this);
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
to_bitField0_ |= 0x00000001;
}
result.subReqID_ = subReqID_;
if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
to_bitField0_ |= 0x00000002;
}
result.respCode_ = respCode_;
if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
to_bitField0_ |= 0x00000004;
}
result.desc_ = desc_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
} public Builder mergeFrom(com.google.protobuf.Message other) {
if (other instanceof object.server.impl.SubScriptRespProto.SubScriptResp) {
return mergeFrom((object.server.impl.SubScriptRespProto.SubScriptResp)other);
} else {
super.mergeFrom(other);
return this;
}
} public Builder mergeFrom(object.server.impl.SubScriptRespProto.SubScriptResp other) {
if (other == object.server.impl.SubScriptRespProto.SubScriptResp.getDefaultInstance()) return this;
if (other.hasSubReqID()) {
setSubReqID(other.getSubReqID());
}
if (other.hasRespCode()) {
setRespCode(other.getRespCode());
}
if (other.hasDesc()) {
bitField0_ |= 0x00000004;
desc_ = other.desc_;
onChanged();
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
} public final boolean isInitialized() {
if (!hasSubReqID()) { return false;
}
if (!hasRespCode()) { return false;
}
if (!hasDesc()) { return false;
}
return true;
} public Builder mergeFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
object.server.impl.SubScriptRespProto.SubScriptResp parsedMessage = null;
try {
parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
parsedMessage = (object.server.impl.SubScriptRespProto.SubScriptResp) e.getUnfinishedMessage();
throw e;
} finally {
if (parsedMessage != null) {
mergeFrom(parsedMessage);
}
}
return this;
}
private int bitField0_; // required int32 subReqID = 1;
private int subReqID_ ;
/**
* <code>required int32 subReqID = 1;</code>
*/
public boolean hasSubReqID() {
return ((bitField0_ & 0x00000001) == 0x00000001);
}
/**
* <code>required int32 subReqID = 1;</code>
*/
public int getSubReqID() {
return subReqID_;
}
/**
* <code>required int32 subReqID = 1;</code>
*/
public Builder setSubReqID(int value) {
bitField0_ |= 0x00000001;
subReqID_ = value;
onChanged();
return this;
}
/**
* <code>required int32 subReqID = 1;</code>
*/
public Builder clearSubReqID() {
bitField0_ = (bitField0_ & ~0x00000001);
subReqID_ = 0;
onChanged();
return this;
} // required int32 respCode = 2;
private int respCode_ ;
/**
* <code>required int32 respCode = 2;</code>
*/
public boolean hasRespCode() {
return ((bitField0_ & 0x00000002) == 0x00000002);
}
/**
* <code>required int32 respCode = 2;</code>
*/
public int getRespCode() {
return respCode_;
}
/**
* <code>required int32 respCode = 2;</code>
*/
public Builder setRespCode(int value) {
bitField0_ |= 0x00000002;
respCode_ = value;
onChanged();
return this;
}
/**
* <code>required int32 respCode = 2;</code>
*/
public Builder clearRespCode() {
bitField0_ = (bitField0_ & ~0x00000002);
respCode_ = 0;
onChanged();
return this;
} // required string desc = 3;
private java.lang.Object desc_ = "";
/**
* <code>required string desc = 3;</code>
*/
public boolean hasDesc() {
return ((bitField0_ & 0x00000004) == 0x00000004);
}
/**
* <code>required string desc = 3;</code>
*/
public java.lang.String getDesc() {
java.lang.Object ref = desc_;
if (!(ref instanceof java.lang.String)) {
java.lang.String s = ((com.google.protobuf.ByteString) ref)
.toStringUtf8();
desc_ = s;
return s;
} else {
return (java.lang.String) ref;
}
}
/**
* <code>required string desc = 3;</code>
*/
public com.google.protobuf.ByteString
getDescBytes() {
java.lang.Object ref = desc_;
if (ref instanceof String) {
com.google.protobuf.ByteString b =
com.google.protobuf.ByteString.copyFromUtf8(
(java.lang.String) ref);
desc_ = b;
return b;
} else {
return (com.google.protobuf.ByteString) ref;
}
}
/**
* <code>required string desc = 3;</code>
*/
public Builder setDesc(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000004;
desc_ = value;
onChanged();
return this;
}
/**
* <code>required string desc = 3;</code>
*/
public Builder clearDesc() {
bitField0_ = (bitField0_ & ~0x00000004);
desc_ = getDefaultInstance().getDesc();
onChanged();
return this;
}
/**
* <code>required string desc = 3;</code>
*/
public Builder setDescBytes(
com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
bitField0_ |= 0x00000004;
desc_ = value;
onChanged();
return this;
} // @@protoc_insertion_point(builder_scope:netty.SubScriptResp)
} static {
defaultInstance = new SubScriptResp(true);
defaultInstance.initFields();
} // @@protoc_insertion_point(class_scope:netty.SubScriptResp)
} private static com.google.protobuf.Descriptors.Descriptor
internal_static_netty_SubScriptResp_descriptor;
private static
com.google.protobuf.GeneratedMessage.FieldAccessorTable
internal_static_netty_SubScriptResp_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\031netty/SubScriptResp.proto\022\005netty\"A\n\rSu" +
"bScriptResp\022\020\n\010subReqID\030\001 \002(\005\022\020\n\010respCod" +
"e\030\002 \002(\005\022\014\n\004desc\030\003 \002(\tB(\n\022object.server.i" +
"mplB\022SubScriptRespProto"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
public com.google.protobuf.ExtensionRegistry assignDescriptors(
com.google.protobuf.Descriptors.FileDescriptor root) {
descriptor = root;
internal_static_netty_SubScriptResp_descriptor =
getDescriptor().getMessageTypes().get(0);
internal_static_netty_SubScriptResp_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_netty_SubScriptResp_descriptor,
new java.lang.String[] { "SubReqID", "RespCode", "Desc", });
return null;
}
};
com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
}, assigner);
} // @@protoc_insertion_point(outer_class_scope)
}

2.3 测试

package protobuf.client.impl;

import object.server.impl.SubScriptReqProto;
import object.server.impl.SubScriptReqProto.SubScriptReq; import com.google.protobuf.InvalidProtocolBufferException; public class TestReqProto {
public static void main(String[] args)
throws InvalidProtocolBufferException {
SubScriptReqProto.SubScriptReq.Builder builder = SubScriptReqProto.SubScriptReq
.newBuilder(); builder.setSubReqID(1);
builder.setUserName("leifeng");
builder.setProductName("netty book !!!");
builder.setAddress("add1");
SubScriptReq req = builder.build();
System.out.println(req);
SubScriptReqProto.SubScriptReq requiem = decode(encode(req));
System.out.println(requiem);
System.out.println(req.equals(requiem)); } private static SubScriptReq decode(byte[] encode)
throws InvalidProtocolBufferException {
// TODO Auto-generated method stub
return SubScriptReqProto.SubScriptReq.parseFrom(encode);
} private static byte[] encode(SubScriptReq builder) { return builder.toByteArray();
}
}