/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: GooglePB.proto

package org.apache.dubbo.common.serialize.protobuf.support.model;

public final class GooglePB {
    private GooglePB() {
    }

    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }

    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
        registerAllExtensions(
            (com.google.protobuf.ExtensionRegistryLite) registry);
    }

    /**
     * Protobuf enum {@code org.apache.dubbo.common.serialize.protobuf.model.PhoneType}
     */
    public enum PhoneType
        implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * <code>MOBILE = 0;</code>
         */
        MOBILE(0),
        /**
         * <code>HOME = 1;</code>
         */
        HOME(1),
        /**
         * <code>WORK = 2;</code>
         */
        WORK(2),
        ;

        /**
         * <code>MOBILE = 0;</code>
         */
        public static final int MOBILE_VALUE = 0;
        /**
         * <code>HOME = 1;</code>
         */
        public static final int HOME_VALUE = 1;
        /**
         * <code>WORK = 2;</code>
         */
        public static final int WORK_VALUE = 2;


        public final int getNumber() {
            return value;
        }

        /**
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @Deprecated
        public static PhoneType valueOf(int value) {
            return forNumber(value);
        }

        public static PhoneType forNumber(int value) {
            switch (value) {
                case 0:
                    return MOBILE;
                case 1:
                    return HOME;
                case 2:
                    return WORK;
                default:
                    return null;
            }
        }

        public static com.google.protobuf.Internal.EnumLiteMap<PhoneType>
        internalGetValueMap() {
            return internalValueMap;
        }

        private static final com.google.protobuf.Internal.EnumLiteMap<
            PhoneType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PhoneType>() {
                public PhoneType findValueByNumber(int number) {
                    return PhoneType.forNumber(number);
                }
            };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
            return getDescriptor().getValues().get(ordinal());
        }

        public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
            return getDescriptor();
        }

        public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
            return GooglePB.getDescriptor().getEnumTypes().get(0);
        }

        private static final PhoneType[] VALUES = values();

        public static PhoneType valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
            if (desc.getType() != getDescriptor()) {
                throw new IllegalArgumentException(
                    "EnumValueDescriptor is not for this type.");
            }
            return VALUES[desc.getIndex()];
        }

        private final int value;

        PhoneType(int value) {
            this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:org.apache.dubbo.common.serialize.protobuf.model.PhoneType)
    }

    public interface PBRequestTypeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
        com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional double money = 1;</code>
         */
        boolean hasMoney();

        /**
         * <code>optional double money = 1;</code>
         */
        double getMoney();

        /**
         * <code>optional float cash = 2;</code>
         */
        boolean hasCash();

        /**
         * <code>optional float cash = 2;</code>
         */
        float getCash();

        /**
         * <code>optional int32 age = 3;</code>
         */
        boolean hasAge();

        /**
         * <code>optional int32 age = 3;</code>
         */
        int getAge();

        /**
         * <code>optional int64 num = 4;</code>
         */
        boolean hasNum();

        /**
         * <code>optional int64 num = 4;</code>
         */
        long getNum();

        /**
         * <code>optional bool sex = 5;</code>
         */
        boolean hasSex();

        /**
         * <code>optional bool sex = 5;</code>
         */
        boolean getSex();

        /**
         * <code>optional string name = 6;</code>
         */
        boolean hasName();

        /**
         * <code>optional string name = 6;</code>
         */
        String getName();

        /**
         * <code>optional string name = 6;</code>
         */
        com.google.protobuf.ByteString
        getNameBytes();

        /**
         * <code>optional bytes msg = 7;</code>
         */
        boolean hasMsg();

        /**
         * <code>optional bytes msg = 7;</code>
         */
        com.google.protobuf.ByteString getMsg();

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        java.util.List<PhoneNumber>
        getPhoneList();

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        GooglePB.PhoneNumber getPhone(int index);

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        int getPhoneCount();

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        java.util.List<? extends PhoneNumberOrBuilder>
        getPhoneOrBuilderList();

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        GooglePB.PhoneNumberOrBuilder getPhoneOrBuilder(
            int index);

        /**
         * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
         */
        int getDoubleMapCount();

        /**
         * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
         */
        boolean containsDoubleMap(
            String key);

        /**
         * Use {@link #getDoubleMapMap()} instead.
         */
        @Deprecated
        java.util.Map<String, PhoneNumber>
        getDoubleMap();

        /**
         * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
         */
        java.util.Map<String, PhoneNumber>
        getDoubleMapMap();

        /**
         * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
         */

        GooglePB.PhoneNumber getDoubleMapOrDefault(
            String key,
            GooglePB.PhoneNumber defaultValue);

        /**
         * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
         */

        GooglePB.PhoneNumber getDoubleMapOrThrow(
            String key);
    }

    /**
     * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PBRequestType}
     */
    public static final class PBRequestType extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
        PBRequestTypeOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use PBRequestType.newBuilder() to construct.
        private PBRequestType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private PBRequestType() {
            money_ = 0D;
            cash_ = 0F;
            age_ = 0;
            num_ = 0L;
            sex_ = false;
            name_ = "";
            msg_ = com.google.protobuf.ByteString.EMPTY;
            phone_ = java.util.Collections.emptyList();
        }

        @Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
            return this.unknownFields;
        }

        private PBRequestType(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            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 9: {
                            bitField0_ |= 0x00000001;
                            money_ = input.readDouble();
                            break;
                        }
                        case 21: {
                            bitField0_ |= 0x00000002;
                            cash_ = input.readFloat();
                            break;
                        }
                        case 24: {
                            bitField0_ |= 0x00000004;
                            age_ = input.readInt32();
                            break;
                        }
                        case 32: {
                            bitField0_ |= 0x00000008;
                            num_ = input.readInt64();
                            break;
                        }
                        case 40: {
                            bitField0_ |= 0x00000010;
                            sex_ = input.readBool();
                            break;
                        }
                        case 50: {
                            com.google.protobuf.ByteString bs = input.readBytes();
                            bitField0_ |= 0x00000020;
                            name_ = bs;
                            break;
                        }
                        case 58: {
                            bitField0_ |= 0x00000040;
                            msg_ = input.readBytes();
                            break;
                        }
                        case 66: {
                            if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                                phone_ = new java.util.ArrayList<PhoneNumber>();
                                mutable_bitField0_ |= 0x00000080;
                            }
                            phone_.add(
                                input.readMessage(GooglePB.PhoneNumber.PARSER, extensionRegistry));
                            break;
                        }
                        case 74: {
                            if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                                doubleMap_ = com.google.protobuf.MapField.newMapField(
                                    DoubleMapDefaultEntryHolder.defaultEntry);
                                mutable_bitField0_ |= 0x00000100;
                            }
                            com.google.protobuf.MapEntry<String, PhoneNumber>
                                doubleMap__ = input.readMessage(
                                DoubleMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                            doubleMap_.getMutableMap().put(
                                doubleMap__.getKey(), doubleMap__.getValue());
                            break;
                        }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(
                    e).setUnfinishedMessage(this);
            } finally {
                if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                    phone_ = java.util.Collections.unmodifiableList(phone_);
                }
                this.unknownFields = unknownFields.build();
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
            return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor;
        }

        @SuppressWarnings({"rawtypes"})
        protected com.google.protobuf.MapField internalGetMapField(
            int number) {
            switch (number) {
                case 9:
                    return internalGetDoubleMap();
                default:
                    throw new RuntimeException(
                        "Invalid map field number: " + number);
            }
        }

        protected FieldAccessorTable
        internalGetFieldAccessorTable() {
            return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    GooglePB.PBRequestType.class, GooglePB.PBRequestType.Builder.class);
        }

        private int bitField0_;
        public static final int MONEY_FIELD_NUMBER = 1;
        private double money_;

        /**
         * <code>optional double money = 1;</code>
         */
        public boolean hasMoney() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        /**
         * <code>optional double money = 1;</code>
         */
        public double getMoney() {
            return money_;
        }

        public static final int CASH_FIELD_NUMBER = 2;
        private float cash_;

        /**
         * <code>optional float cash = 2;</code>
         */
        public boolean hasCash() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        /**
         * <code>optional float cash = 2;</code>
         */
        public float getCash() {
            return cash_;
        }

        public static final int AGE_FIELD_NUMBER = 3;
        private int age_;

        /**
         * <code>optional int32 age = 3;</code>
         */
        public boolean hasAge() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
        }

        /**
         * <code>optional int32 age = 3;</code>
         */
        public int getAge() {
            return age_;
        }

        public static final int NUM_FIELD_NUMBER = 4;
        private long num_;

        /**
         * <code>optional int64 num = 4;</code>
         */
        public boolean hasNum() {
            return ((bitField0_ & 0x00000008) == 0x00000008);
        }

        /**
         * <code>optional int64 num = 4;</code>
         */
        public long getNum() {
            return num_;
        }

        public static final int SEX_FIELD_NUMBER = 5;
        private boolean sex_;

        /**
         * <code>optional bool sex = 5;</code>
         */
        public boolean hasSex() {
            return ((bitField0_ & 0x00000010) == 0x00000010);
        }

        /**
         * <code>optional bool sex = 5;</code>
         */
        public boolean getSex() {
            return sex_;
        }

        public static final int NAME_FIELD_NUMBER = 6;
        private volatile Object name_;

        /**
         * <code>optional string name = 6;</code>
         */
        public boolean hasName() {
            return ((bitField0_ & 0x00000020) == 0x00000020);
        }

        /**
         * <code>optional string name = 6;</code>
         */
        public String getName() {
            Object ref = name_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (bs.isValidUtf8()) {
                    name_ = s;
                }
                return s;
            }
        }

        /**
         * <code>optional string name = 6;</code>
         */
        public com.google.protobuf.ByteString
        getNameBytes() {
            Object ref = name_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                        (String) ref);
                name_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int MSG_FIELD_NUMBER = 7;
        private com.google.protobuf.ByteString msg_;

        /**
         * <code>optional bytes msg = 7;</code>
         */
        public boolean hasMsg() {
            return ((bitField0_ & 0x00000040) == 0x00000040);
        }

        /**
         * <code>optional bytes msg = 7;</code>
         */
        public com.google.protobuf.ByteString getMsg() {
            return msg_;
        }

        public static final int PHONE_FIELD_NUMBER = 8;
        private java.util.List<PhoneNumber> phone_;

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        public java.util.List<PhoneNumber> getPhoneList() {
            return phone_;
        }

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        public java.util.List<? extends PhoneNumberOrBuilder>
        getPhoneOrBuilderList() {
            return phone_;
        }

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        public int getPhoneCount() {
            return phone_.size();
        }

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        public GooglePB.PhoneNumber getPhone(int index) {
            return phone_.get(index);
        }

        /**
         * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
         */
        public GooglePB.PhoneNumberOrBuilder getPhoneOrBuilder(
            int index) {
            return phone_.get(index);
        }

        public static final int DOUBLEMAP_FIELD_NUMBER = 9;

        private static final class DoubleMapDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<
                String, PhoneNumber> defaultEntry =
                com.google.protobuf.MapEntry
                    .<String, GooglePB.PhoneNumber>newDefaultInstance(
                        GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_descriptor,
                        com.google.protobuf.WireFormat.FieldType.STRING,
                        "",
                        com.google.protobuf.WireFormat.FieldType.MESSAGE,
                        GooglePB.PhoneNumber.getDefaultInstance());
        }

        private com.google.protobuf.MapField<
            String, PhoneNumber> doubleMap_;

        private com.google.protobuf.MapField<String, PhoneNumber>
        internalGetDoubleMap() {
            if (doubleMap_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                    DoubleMapDefaultEntryHolder.defaultEntry);
            }
            return doubleMap_;
        }

        public int getDoubleMapCount() {
            return internalGetDoubleMap().getMap().size();
        }

        /**
         * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
         */

        public boolean containsDoubleMap(
            String key) {
            if (key == null) {
                throw new NullPointerException();
            }
            return internalGetDoubleMap().getMap().containsKey(key);
        }

        /**
         * Use {@link #getDoubleMapMap()} instead.
         */
        @Deprecated
        public java.util.Map<String, PhoneNumber> getDoubleMap() {
            return getDoubleMapMap();
        }

        /**
         * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
         */

        public java.util.Map<String, PhoneNumber> getDoubleMapMap() {
            return internalGetDoubleMap().getMap();
        }

        /**
         * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
         */

        public GooglePB.PhoneNumber getDoubleMapOrDefault(
            String key,
            GooglePB.PhoneNumber defaultValue) {
            if (key == null) {
                throw new NullPointerException();
            }
            java.util.Map<String, PhoneNumber> map =
                internalGetDoubleMap().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
         */

        public GooglePB.PhoneNumber getDoubleMapOrThrow(
            String key) {
            if (key == null) {
                throw new NullPointerException();
            }
            java.util.Map<String, PhoneNumber> map =
                internalGetDoubleMap().getMap();
            if (!map.containsKey(key)) {
                throw new IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            for (int i = 0; i < getPhoneCount(); i++) {
                if (!getPhone(i).isInitialized()) {
                    memoizedIsInitialized = 0;
                    return false;
                }
            }
            for (GooglePB.PhoneNumber item : getDoubleMapMap().values()) {
                if (!item.isInitialized()) {
                    memoizedIsInitialized = 0;
                    return false;
                }
            }
            memoizedIsInitialized = 1;
            return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
                output.writeDouble(1, money_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
                output.writeFloat(2, cash_);
            }
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
                output.writeInt32(3, age_);
            }
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
                output.writeInt64(4, num_);
            }
            if (((bitField0_ & 0x00000010) == 0x00000010)) {
                output.writeBool(5, sex_);
            }
            if (((bitField0_ & 0x00000020) == 0x00000020)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 6, name_);
            }
            if (((bitField0_ & 0x00000040) == 0x00000040)) {
                output.writeBytes(7, msg_);
            }
            for (int i = 0; i < phone_.size(); i++) {
                output.writeMessage(8, phone_.get(i));
            }
            com.google.protobuf.GeneratedMessageV3
                .serializeStringMapTo(
                    output,
                    internalGetDoubleMap(),
                    DoubleMapDefaultEntryHolder.defaultEntry,
                    9);
            unknownFields.writeTo(output);
        }

        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeDoubleSize(1, money_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeFloatSize(2, cash_);
            }
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeInt32Size(3, age_);
            }
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeInt64Size(4, num_);
            }
            if (((bitField0_ & 0x00000010) == 0x00000010)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBoolSize(5, sex_);
            }
            if (((bitField0_ & 0x00000020) == 0x00000020)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, name_);
            }
            if (((bitField0_ & 0x00000040) == 0x00000040)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeBytesSize(7, msg_);
            }
            for (int i = 0; i < phone_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream
                    .computeMessageSize(8, phone_.get(i));
            }
            for (java.util.Map.Entry<String, PhoneNumber> entry
                : internalGetDoubleMap().getMap().entrySet()) {
                com.google.protobuf.MapEntry<String, PhoneNumber>
                    doubleMap__ = DoubleMapDefaultEntryHolder.defaultEntry.newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
                size += com.google.protobuf.CodedOutputStream
                    .computeMessageSize(9, doubleMap__);
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @Override
        public boolean equals(final Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof GooglePB.PBRequestType)) {
                return super.equals(obj);
            }
            GooglePB.PBRequestType other = (GooglePB.PBRequestType) obj;

            boolean result = true;
            result = result && (hasMoney() == other.hasMoney());
            if (hasMoney()) {
                result = result && (
                    Double.doubleToLongBits(getMoney())
                        == Double.doubleToLongBits(
                        other.getMoney()));
            }
            result = result && (hasCash() == other.hasCash());
            if (hasCash()) {
                result = result && (
                    Float.floatToIntBits(getCash())
                        == Float.floatToIntBits(
                        other.getCash()));
            }
            result = result && (hasAge() == other.hasAge());
            if (hasAge()) {
                result = result && (getAge()
                    == other.getAge());
            }
            result = result && (hasNum() == other.hasNum());
            if (hasNum()) {
                result = result && (getNum()
                    == other.getNum());
            }
            result = result && (hasSex() == other.hasSex());
            if (hasSex()) {
                result = result && (getSex()
                    == other.getSex());
            }
            result = result && (hasName() == other.hasName());
            if (hasName()) {
                result = result && getName()
                    .equals(other.getName());
            }
            result = result && (hasMsg() == other.hasMsg());
            if (hasMsg()) {
                result = result && getMsg()
                    .equals(other.getMsg());
            }
            result = result && getPhoneList()
                .equals(other.getPhoneList());
            result = result && internalGetDoubleMap().equals(
                other.internalGetDoubleMap());
            result = result && unknownFields.equals(other.unknownFields);
            return result;
        }

        @Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasMoney()) {
                hash = (37 * hash) + MONEY_FIELD_NUMBER;
                hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                    Double.doubleToLongBits(getMoney()));
            }
            if (hasCash()) {
                hash = (37 * hash) + CASH_FIELD_NUMBER;
                hash = (53 * hash) + Float.floatToIntBits(
                    getCash());
            }
            if (hasAge()) {
                hash = (37 * hash) + AGE_FIELD_NUMBER;
                hash = (53 * hash) + getAge();
            }
            if (hasNum()) {
                hash = (37 * hash) + NUM_FIELD_NUMBER;
                hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                    getNum());
            }
            if (hasSex()) {
                hash = (37 * hash) + SEX_FIELD_NUMBER;
                hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
                    getSex());
            }
            if (hasName()) {
                hash = (37 * hash) + NAME_FIELD_NUMBER;
                hash = (53 * hash) + getName().hashCode();
            }
            if (hasMsg()) {
                hash = (37 * hash) + MSG_FIELD_NUMBER;
                hash = (53 * hash) + getMsg().hashCode();
            }
            if (getPhoneCount() > 0) {
                hash = (37 * hash) + PHONE_FIELD_NUMBER;
                hash = (53 * hash) + getPhoneList().hashCode();
            }
            if (!internalGetDoubleMap().getMap().isEmpty()) {
                hash = (37 * hash) + DOUBLEMAP_FIELD_NUMBER;
                hash = (53 * hash) + internalGetDoubleMap().hashCode();
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static GooglePB.PBRequestType parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static GooglePB.PBRequestType parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static GooglePB.PBRequestType parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static GooglePB.PBRequestType parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static GooglePB.PBRequestType parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static GooglePB.PBRequestType parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static GooglePB.PBRequestType parseFrom(java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static GooglePB.PBRequestType parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static GooglePB.PBRequestType parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
        }

        public static GooglePB.PBRequestType parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static GooglePB.PBRequestType parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static GooglePB.PBRequestType parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(GooglePB.PBRequestType prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
        }

        @Override
        protected Builder newBuilderForType(
            BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PBRequestType}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
            GooglePB.PBRequestTypeOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor;
            }

            @SuppressWarnings({"rawtypes"})
            protected com.google.protobuf.MapField internalGetMapField(
                int number) {
                switch (number) {
                    case 9:
                        return internalGetDoubleMap();
                    default:
                        throw new RuntimeException(
                            "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({"rawtypes"})
            protected com.google.protobuf.MapField internalGetMutableMapField(
                int number) {
                switch (number) {
                    case 9:
                        return internalGetMutableDoubleMap();
                    default:
                        throw new RuntimeException(
                            "Invalid map field number: " + number);
                }
            }

            protected FieldAccessorTable
            internalGetFieldAccessorTable() {
                return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                        GooglePB.PBRequestType.class, GooglePB.PBRequestType.Builder.class);
            }

            // Construct using org.apache.dubbo.common.serialize.protobuf.model.GooglePB.PBRequestType.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
                    getPhoneFieldBuilder();
                }
            }

            public Builder clear() {
                super.clear();
                money_ = 0D;
                bitField0_ = (bitField0_ & ~0x00000001);
                cash_ = 0F;
                bitField0_ = (bitField0_ & ~0x00000002);
                age_ = 0;
                bitField0_ = (bitField0_ & ~0x00000004);
                num_ = 0L;
                bitField0_ = (bitField0_ & ~0x00000008);
                sex_ = false;
                bitField0_ = (bitField0_ & ~0x00000010);
                name_ = "";
                bitField0_ = (bitField0_ & ~0x00000020);
                msg_ = com.google.protobuf.ByteString.EMPTY;
                bitField0_ = (bitField0_ & ~0x00000040);
                if (phoneBuilder_ == null) {
                    phone_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000080);
                } else {
                    phoneBuilder_.clear();
                }
                internalGetMutableDoubleMap().clear();
                return this;
            }

            public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
                return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor;
            }

            public GooglePB.PBRequestType getDefaultInstanceForType() {
                return GooglePB.PBRequestType.getDefaultInstance();
            }

            public GooglePB.PBRequestType build() {
                GooglePB.PBRequestType result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            public GooglePB.PBRequestType buildPartial() {
                GooglePB.PBRequestType result = new GooglePB.PBRequestType(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                    to_bitField0_ |= 0x00000001;
                }
                result.money_ = money_;
                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                    to_bitField0_ |= 0x00000002;
                }
                result.cash_ = cash_;
                if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
                    to_bitField0_ |= 0x00000004;
                }
                result.age_ = age_;
                if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
                    to_bitField0_ |= 0x00000008;
                }
                result.num_ = num_;
                if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
                    to_bitField0_ |= 0x00000010;
                }
                result.sex_ = sex_;
                if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
                    to_bitField0_ |= 0x00000020;
                }
                result.name_ = name_;
                if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
                    to_bitField0_ |= 0x00000040;
                }
                result.msg_ = msg_;
                if (phoneBuilder_ == null) {
                    if (((bitField0_ & 0x00000080) == 0x00000080)) {
                        phone_ = java.util.Collections.unmodifiableList(phone_);
                        bitField0_ = (bitField0_ & ~0x00000080);
                    }
                    result.phone_ = phone_;
                } else {
                    result.phone_ = phoneBuilder_.build();
                }
                result.doubleMap_ = internalGetDoubleMap();
                result.doubleMap_.makeImmutable();
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
            }

            public Builder clone() {
                return (Builder) super.clone();
            }

            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                Object value) {
                return (Builder) super.setField(field, value);
            }

            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
                return (Builder) super.clearField(field);
            }

            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return (Builder) super.clearOneof(oneof);
            }

            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, Object value) {
                return (Builder) super.setRepeatedField(field, index, value);
            }

            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                Object value) {
                return (Builder) super.addRepeatedField(field, value);
            }

            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof GooglePB.PBRequestType) {
                    return mergeFrom((GooglePB.PBRequestType) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(GooglePB.PBRequestType other) {
                if (other == GooglePB.PBRequestType.getDefaultInstance()) return this;
                if (other.hasMoney()) {
                    setMoney(other.getMoney());
                }
                if (other.hasCash()) {
                    setCash(other.getCash());
                }
                if (other.hasAge()) {
                    setAge(other.getAge());
                }
                if (other.hasNum()) {
                    setNum(other.getNum());
                }
                if (other.hasSex()) {
                    setSex(other.getSex());
                }
                if (other.hasName()) {
                    bitField0_ |= 0x00000020;
                    name_ = other.name_;
                    onChanged();
                }
                if (other.hasMsg()) {
                    setMsg(other.getMsg());
                }
                if (phoneBuilder_ == null) {
                    if (!other.phone_.isEmpty()) {
                        if (phone_.isEmpty()) {
                            phone_ = other.phone_;
                            bitField0_ = (bitField0_ & ~0x00000080);
                        } else {
                            ensurePhoneIsMutable();
                            phone_.addAll(other.phone_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.phone_.isEmpty()) {
                        if (phoneBuilder_.isEmpty()) {
                            phoneBuilder_.dispose();
                            phoneBuilder_ = null;
                            phone_ = other.phone_;
                            bitField0_ = (bitField0_ & ~0x00000080);
                            phoneBuilder_ =
                                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                                    getPhoneFieldBuilder() : null;
                        } else {
                            phoneBuilder_.addAllMessages(other.phone_);
                        }
                    }
                }
                internalGetMutableDoubleMap().mergeFrom(
                    other.internalGetDoubleMap());
                this.mergeUnknownFields(other.unknownFields);
                onChanged();
                return this;
            }

            public final boolean isInitialized() {
                for (int i = 0; i < getPhoneCount(); i++) {
                    if (!getPhone(i).isInitialized()) {
                        return false;
                    }
                }
                for (GooglePB.PhoneNumber item : getDoubleMapMap().values()) {
                    if (!item.isInitialized()) {
                        return false;
                    }
                }
                return true;
            }

            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
                GooglePB.PBRequestType parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (GooglePB.PBRequestType) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int bitField0_;

            private double money_;

            /**
             * <code>optional double money = 1;</code>
             */
            public boolean hasMoney() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
            }

            /**
             * <code>optional double money = 1;</code>
             */
            public double getMoney() {
                return money_;
            }

            /**
             * <code>optional double money = 1;</code>
             */
            public Builder setMoney(double value) {
                bitField0_ |= 0x00000001;
                money_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional double money = 1;</code>
             */
            public Builder clearMoney() {
                bitField0_ = (bitField0_ & ~0x00000001);
                money_ = 0D;
                onChanged();
                return this;
            }

            private float cash_;

            /**
             * <code>optional float cash = 2;</code>
             */
            public boolean hasCash() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            /**
             * <code>optional float cash = 2;</code>
             */
            public float getCash() {
                return cash_;
            }

            /**
             * <code>optional float cash = 2;</code>
             */
            public Builder setCash(float value) {
                bitField0_ |= 0x00000002;
                cash_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional float cash = 2;</code>
             */
            public Builder clearCash() {
                bitField0_ = (bitField0_ & ~0x00000002);
                cash_ = 0F;
                onChanged();
                return this;
            }

            private int age_;

            /**
             * <code>optional int32 age = 3;</code>
             */
            public boolean hasAge() {
                return ((bitField0_ & 0x00000004) == 0x00000004);
            }

            /**
             * <code>optional int32 age = 3;</code>
             */
            public int getAge() {
                return age_;
            }

            /**
             * <code>optional int32 age = 3;</code>
             */
            public Builder setAge(int value) {
                bitField0_ |= 0x00000004;
                age_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional int32 age = 3;</code>
             */
            public Builder clearAge() {
                bitField0_ = (bitField0_ & ~0x00000004);
                age_ = 0;
                onChanged();
                return this;
            }

            private long num_;

            /**
             * <code>optional int64 num = 4;</code>
             */
            public boolean hasNum() {
                return ((bitField0_ & 0x00000008) == 0x00000008);
            }

            /**
             * <code>optional int64 num = 4;</code>
             */
            public long getNum() {
                return num_;
            }

            /**
             * <code>optional int64 num = 4;</code>
             */
            public Builder setNum(long value) {
                bitField0_ |= 0x00000008;
                num_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional int64 num = 4;</code>
             */
            public Builder clearNum() {
                bitField0_ = (bitField0_ & ~0x00000008);
                num_ = 0L;
                onChanged();
                return this;
            }

            private boolean sex_;

            /**
             * <code>optional bool sex = 5;</code>
             */
            public boolean hasSex() {
                return ((bitField0_ & 0x00000010) == 0x00000010);
            }

            /**
             * <code>optional bool sex = 5;</code>
             */
            public boolean getSex() {
                return sex_;
            }

            /**
             * <code>optional bool sex = 5;</code>
             */
            public Builder setSex(boolean value) {
                bitField0_ |= 0x00000010;
                sex_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bool sex = 5;</code>
             */
            public Builder clearSex() {
                bitField0_ = (bitField0_ & ~0x00000010);
                sex_ = false;
                onChanged();
                return this;
            }

            private Object name_ = "";

            /**
             * <code>optional string name = 6;</code>
             */
            public boolean hasName() {
                return ((bitField0_ & 0x00000020) == 0x00000020);
            }

            /**
             * <code>optional string name = 6;</code>
             */
            public String getName() {
                Object ref = name_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    if (bs.isValidUtf8()) {
                        name_ = s;
                    }
                    return s;
                } else {
                    return (String) ref;
                }
            }

            /**
             * <code>optional string name = 6;</code>
             */
            public com.google.protobuf.ByteString
            getNameBytes() {
                Object ref = name_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
                    name_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string name = 6;</code>
             */
            public Builder setName(
                String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000020;
                name_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional string name = 6;</code>
             */
            public Builder clearName() {
                bitField0_ = (bitField0_ & ~0x00000020);
                name_ = getDefaultInstance().getName();
                onChanged();
                return this;
            }

            /**
             * <code>optional string name = 6;</code>
             */
            public Builder setNameBytes(
                com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000020;
                name_ = value;
                onChanged();
                return this;
            }

            private com.google.protobuf.ByteString msg_ = com.google.protobuf.ByteString.EMPTY;

            /**
             * <code>optional bytes msg = 7;</code>
             */
            public boolean hasMsg() {
                return ((bitField0_ & 0x00000040) == 0x00000040);
            }

            /**
             * <code>optional bytes msg = 7;</code>
             */
            public com.google.protobuf.ByteString getMsg() {
                return msg_;
            }

            /**
             * <code>optional bytes msg = 7;</code>
             */
            public Builder setMsg(com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000040;
                msg_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional bytes msg = 7;</code>
             */
            public Builder clearMsg() {
                bitField0_ = (bitField0_ & ~0x00000040);
                msg_ = getDefaultInstance().getMsg();
                onChanged();
                return this;
            }

            private java.util.List<PhoneNumber> phone_ =
                java.util.Collections.emptyList();

            private void ensurePhoneIsMutable() {
                if (!((bitField0_ & 0x00000080) == 0x00000080)) {
                    phone_ = new java.util.ArrayList<PhoneNumber>(phone_);
                    bitField0_ |= 0x00000080;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<
                PhoneNumber, PhoneNumber.Builder, PhoneNumberOrBuilder> phoneBuilder_;

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public java.util.List<PhoneNumber> getPhoneList() {
                if (phoneBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(phone_);
                } else {
                    return phoneBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public int getPhoneCount() {
                if (phoneBuilder_ == null) {
                    return phone_.size();
                } else {
                    return phoneBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public GooglePB.PhoneNumber getPhone(int index) {
                if (phoneBuilder_ == null) {
                    return phone_.get(index);
                } else {
                    return phoneBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public Builder setPhone(
                int index, GooglePB.PhoneNumber value) {
                if (phoneBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensurePhoneIsMutable();
                    phone_.set(index, value);
                    onChanged();
                } else {
                    phoneBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public Builder setPhone(
                int index, GooglePB.PhoneNumber.Builder builderForValue) {
                if (phoneBuilder_ == null) {
                    ensurePhoneIsMutable();
                    phone_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    phoneBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public Builder addPhone(GooglePB.PhoneNumber value) {
                if (phoneBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensurePhoneIsMutable();
                    phone_.add(value);
                    onChanged();
                } else {
                    phoneBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public Builder addPhone(
                int index, GooglePB.PhoneNumber value) {
                if (phoneBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensurePhoneIsMutable();
                    phone_.add(index, value);
                    onChanged();
                } else {
                    phoneBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public Builder addPhone(
                GooglePB.PhoneNumber.Builder builderForValue) {
                if (phoneBuilder_ == null) {
                    ensurePhoneIsMutable();
                    phone_.add(builderForValue.build());
                    onChanged();
                } else {
                    phoneBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public Builder addPhone(
                int index, GooglePB.PhoneNumber.Builder builderForValue) {
                if (phoneBuilder_ == null) {
                    ensurePhoneIsMutable();
                    phone_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    phoneBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public Builder addAllPhone(
                Iterable<? extends PhoneNumber> values) {
                if (phoneBuilder_ == null) {
                    ensurePhoneIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, phone_);
                    onChanged();
                } else {
                    phoneBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public Builder clearPhone() {
                if (phoneBuilder_ == null) {
                    phone_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000080);
                    onChanged();
                } else {
                    phoneBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public Builder removePhone(int index) {
                if (phoneBuilder_ == null) {
                    ensurePhoneIsMutable();
                    phone_.remove(index);
                    onChanged();
                } else {
                    phoneBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public GooglePB.PhoneNumber.Builder getPhoneBuilder(
                int index) {
                return getPhoneFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public GooglePB.PhoneNumberOrBuilder getPhoneOrBuilder(
                int index) {
                if (phoneBuilder_ == null) {
                    return phone_.get(index);
                } else {
                    return phoneBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public java.util.List<? extends PhoneNumberOrBuilder>
            getPhoneOrBuilderList() {
                if (phoneBuilder_ != null) {
                    return phoneBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(phone_);
                }
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public GooglePB.PhoneNumber.Builder addPhoneBuilder() {
                return getPhoneFieldBuilder().addBuilder(
                    GooglePB.PhoneNumber.getDefaultInstance());
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public GooglePB.PhoneNumber.Builder addPhoneBuilder(
                int index) {
                return getPhoneFieldBuilder().addBuilder(
                    index, GooglePB.PhoneNumber.getDefaultInstance());
            }

            /**
             * <code>repeated .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber phone = 8;</code>
             */
            public java.util.List<PhoneNumber.Builder>
            getPhoneBuilderList() {
                return getPhoneFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<
                PhoneNumber, PhoneNumber.Builder, PhoneNumberOrBuilder>
            getPhoneFieldBuilder() {
                if (phoneBuilder_ == null) {
                    phoneBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                        PhoneNumber, PhoneNumber.Builder, PhoneNumberOrBuilder>(
                        phone_,
                        ((bitField0_ & 0x00000080) == 0x00000080),
                        getParentForChildren(),
                        isClean());
                    phone_ = null;
                }
                return phoneBuilder_;
            }

            private com.google.protobuf.MapField<
                String, PhoneNumber> doubleMap_;

            private com.google.protobuf.MapField<String, PhoneNumber>
            internalGetDoubleMap() {
                if (doubleMap_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                        DoubleMapDefaultEntryHolder.defaultEntry);
                }
                return doubleMap_;
            }

            private com.google.protobuf.MapField<String, PhoneNumber>
            internalGetMutableDoubleMap() {
                onChanged();
                if (doubleMap_ == null) {
                    doubleMap_ = com.google.protobuf.MapField.newMapField(
                        DoubleMapDefaultEntryHolder.defaultEntry);
                }
                if (!doubleMap_.isMutable()) {
                    doubleMap_ = doubleMap_.copy();
                }
                return doubleMap_;
            }

            public int getDoubleMapCount() {
                return internalGetDoubleMap().getMap().size();
            }

            /**
             * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
             */

            public boolean containsDoubleMap(
                String key) {
                if (key == null) {
                    throw new NullPointerException();
                }
                return internalGetDoubleMap().getMap().containsKey(key);
            }

            /**
             * Use {@link #getDoubleMapMap()} instead.
             */
            @Deprecated
            public java.util.Map<String, PhoneNumber> getDoubleMap() {
                return getDoubleMapMap();
            }

            /**
             * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
             */

            public java.util.Map<String, PhoneNumber> getDoubleMapMap() {
                return internalGetDoubleMap().getMap();
            }

            /**
             * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
             */

            public GooglePB.PhoneNumber getDoubleMapOrDefault(
                String key,
                GooglePB.PhoneNumber defaultValue) {
                if (key == null) {
                    throw new NullPointerException();
                }
                java.util.Map<String, PhoneNumber> map =
                    internalGetDoubleMap().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
             */

            public GooglePB.PhoneNumber getDoubleMapOrThrow(
                String key) {
                if (key == null) {
                    throw new NullPointerException();
                }
                java.util.Map<String, PhoneNumber> map =
                    internalGetDoubleMap().getMap();
                if (!map.containsKey(key)) {
                    throw new IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearDoubleMap() {
                internalGetMutableDoubleMap().getMutableMap()
                    .clear();
                return this;
            }

            /**
             * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
             */

            public Builder removeDoubleMap(
                String key) {
                if (key == null) {
                    throw new NullPointerException();
                }
                internalGetMutableDoubleMap().getMutableMap()
                    .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @Deprecated
            public java.util.Map<String, PhoneNumber>
            getMutableDoubleMap() {
                return internalGetMutableDoubleMap().getMutableMap();
            }

            /**
             * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
             */
            public Builder putDoubleMap(
                String key,
                GooglePB.PhoneNumber value) {
                if (key == null) {
                    throw new NullPointerException();
                }
                if (value == null) {
                    throw new NullPointerException();
                }
                internalGetMutableDoubleMap().getMutableMap()
                    .put(key, value);
                return this;
            }

            /**
             * <code>map&lt;string, .org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber&gt; doubleMap = 9;</code>
             */

            public Builder putAllDoubleMap(
                java.util.Map<String, PhoneNumber> values) {
                internalGetMutableDoubleMap().getMutableMap()
                    .putAll(values);
                return this;
            }

            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }


            // @@protoc_insertion_point(builder_scope:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
        }

        // @@protoc_insertion_point(class_scope:org.apache.dubbo.common.serialize.protobuf.model.PBRequestType)
        private static final GooglePB.PBRequestType DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new GooglePB.PBRequestType();
        }

        public static GooglePB.PBRequestType getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        @Deprecated
        public static final com.google.protobuf.Parser<PBRequestType>
            PARSER = new com.google.protobuf.AbstractParser<PBRequestType>() {
            public PBRequestType parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
                return new PBRequestType(input, extensionRegistry);
            }
        };

        public static com.google.protobuf.Parser<PBRequestType> parser() {
            return PARSER;
        }

        @Override
        public com.google.protobuf.Parser<PBRequestType> getParserForType() {
            return PARSER;
        }

        public GooglePB.PBRequestType getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface PBResponseTypeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
        com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional string msg = 1;</code>
         */
        boolean hasMsg();

        /**
         * <code>optional string msg = 1;</code>
         */
        String getMsg();

        /**
         * <code>optional string msg = 1;</code>
         */
        com.google.protobuf.ByteString
        getMsgBytes();

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
         */
        boolean hasCDubboPBRequestType();

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
         */
        GooglePB.PBRequestType getCDubboPBRequestType();

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
         */
        GooglePB.PBRequestTypeOrBuilder getCDubboPBRequestTypeOrBuilder();
    }

    /**
     * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PBResponseType}
     */
    public static final class PBResponseType extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
        PBResponseTypeOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use PBResponseType.newBuilder() to construct.
        private PBResponseType(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private PBResponseType() {
            msg_ = "";
        }

        @Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
            return this.unknownFields;
        }

        private PBResponseType(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            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 10: {
                            com.google.protobuf.ByteString bs = input.readBytes();
                            bitField0_ |= 0x00000001;
                            msg_ = bs;
                            break;
                        }
                        case 26: {
                            GooglePB.PBRequestType.Builder subBuilder = null;
                            if (((bitField0_ & 0x00000002) == 0x00000002)) {
                                subBuilder = cDubboPBRequestType_.toBuilder();
                            }
                            cDubboPBRequestType_ = input.readMessage(GooglePB.PBRequestType.PARSER, extensionRegistry);
                            if (subBuilder != null) {
                                subBuilder.mergeFrom(cDubboPBRequestType_);
                                cDubboPBRequestType_ = subBuilder.buildPartial();
                            }
                            bitField0_ |= 0x00000002;
                            break;
                        }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(
                    e).setUnfinishedMessage(this);
            } finally {
                this.unknownFields = unknownFields.build();
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
            return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor;
        }

        protected FieldAccessorTable
        internalGetFieldAccessorTable() {
            return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    GooglePB.PBResponseType.class, GooglePB.PBResponseType.Builder.class);
        }

        private int bitField0_;
        public static final int MSG_FIELD_NUMBER = 1;
        private volatile Object msg_;

        /**
         * <code>optional string msg = 1;</code>
         */
        public boolean hasMsg() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        /**
         * <code>optional string msg = 1;</code>
         */
        public String getMsg() {
            Object ref = msg_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (bs.isValidUtf8()) {
                    msg_ = s;
                }
                return s;
            }
        }

        /**
         * <code>optional string msg = 1;</code>
         */
        public com.google.protobuf.ByteString
        getMsgBytes() {
            Object ref = msg_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                        (String) ref);
                msg_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int CDUBBOPBREQUESTTYPE_FIELD_NUMBER = 3;
        private GooglePB.PBRequestType cDubboPBRequestType_;

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
         */
        public boolean hasCDubboPBRequestType() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
         */
        public GooglePB.PBRequestType getCDubboPBRequestType() {
            return cDubboPBRequestType_ == null ? GooglePB.PBRequestType.getDefaultInstance() : cDubboPBRequestType_;
        }

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
         */
        public GooglePB.PBRequestTypeOrBuilder getCDubboPBRequestTypeOrBuilder() {
            return cDubboPBRequestType_ == null ? GooglePB.PBRequestType.getDefaultInstance() : cDubboPBRequestType_;
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            if (hasCDubboPBRequestType()) {
                if (!getCDubboPBRequestType().isInitialized()) {
                    memoizedIsInitialized = 0;
                    return false;
                }
            }
            memoizedIsInitialized = 1;
            return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, msg_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
                output.writeMessage(3, getCDubboPBRequestType());
            }
            unknownFields.writeTo(output);
        }

        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, msg_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeMessageSize(3, getCDubboPBRequestType());
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @Override
        public boolean equals(final Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof GooglePB.PBResponseType)) {
                return super.equals(obj);
            }
            GooglePB.PBResponseType other = (GooglePB.PBResponseType) obj;

            boolean result = true;
            result = result && (hasMsg() == other.hasMsg());
            if (hasMsg()) {
                result = result && getMsg()
                    .equals(other.getMsg());
            }
            result = result && (hasCDubboPBRequestType() == other.hasCDubboPBRequestType());
            if (hasCDubboPBRequestType()) {
                result = result && getCDubboPBRequestType()
                    .equals(other.getCDubboPBRequestType());
            }
            result = result && unknownFields.equals(other.unknownFields);
            return result;
        }

        @Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasMsg()) {
                hash = (37 * hash) + MSG_FIELD_NUMBER;
                hash = (53 * hash) + getMsg().hashCode();
            }
            if (hasCDubboPBRequestType()) {
                hash = (37 * hash) + CDUBBOPBREQUESTTYPE_FIELD_NUMBER;
                hash = (53 * hash) + getCDubboPBRequestType().hashCode();
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static GooglePB.PBResponseType parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static GooglePB.PBResponseType parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static GooglePB.PBResponseType parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static GooglePB.PBResponseType parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static GooglePB.PBResponseType parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static GooglePB.PBResponseType parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static GooglePB.PBResponseType parseFrom(java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static GooglePB.PBResponseType parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static GooglePB.PBResponseType parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
        }

        public static GooglePB.PBResponseType parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static GooglePB.PBResponseType parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static GooglePB.PBResponseType parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(GooglePB.PBResponseType prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
        }

        @Override
        protected Builder newBuilderForType(
            BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PBResponseType}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
            GooglePB.PBResponseTypeOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor;
            }

            protected FieldAccessorTable
            internalGetFieldAccessorTable() {
                return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                        GooglePB.PBResponseType.class, GooglePB.PBResponseType.Builder.class);
            }

            // Construct using org.apache.dubbo.common.serialize.protobuf.model.GooglePB.PBResponseType.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
                    getCDubboPBRequestTypeFieldBuilder();
                }
            }

            public Builder clear() {
                super.clear();
                msg_ = "";
                bitField0_ = (bitField0_ & ~0x00000001);
                if (cDubboPBRequestTypeBuilder_ == null) {
                    cDubboPBRequestType_ = null;
                } else {
                    cDubboPBRequestTypeBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000002);
                return this;
            }

            public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
                return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor;
            }

            public GooglePB.PBResponseType getDefaultInstanceForType() {
                return GooglePB.PBResponseType.getDefaultInstance();
            }

            public GooglePB.PBResponseType build() {
                GooglePB.PBResponseType result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            public GooglePB.PBResponseType buildPartial() {
                GooglePB.PBResponseType result = new GooglePB.PBResponseType(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                    to_bitField0_ |= 0x00000001;
                }
                result.msg_ = msg_;
                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                    to_bitField0_ |= 0x00000002;
                }
                if (cDubboPBRequestTypeBuilder_ == null) {
                    result.cDubboPBRequestType_ = cDubboPBRequestType_;
                } else {
                    result.cDubboPBRequestType_ = cDubboPBRequestTypeBuilder_.build();
                }
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
            }

            public Builder clone() {
                return (Builder) super.clone();
            }

            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                Object value) {
                return (Builder) super.setField(field, value);
            }

            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
                return (Builder) super.clearField(field);
            }

            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return (Builder) super.clearOneof(oneof);
            }

            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, Object value) {
                return (Builder) super.setRepeatedField(field, index, value);
            }

            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                Object value) {
                return (Builder) super.addRepeatedField(field, value);
            }

            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof GooglePB.PBResponseType) {
                    return mergeFrom((GooglePB.PBResponseType) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(GooglePB.PBResponseType other) {
                if (other == GooglePB.PBResponseType.getDefaultInstance()) return this;
                if (other.hasMsg()) {
                    bitField0_ |= 0x00000001;
                    msg_ = other.msg_;
                    onChanged();
                }
                if (other.hasCDubboPBRequestType()) {
                    mergeCDubboPBRequestType(other.getCDubboPBRequestType());
                }
                this.mergeUnknownFields(other.unknownFields);
                onChanged();
                return this;
            }

            public final boolean isInitialized() {
                if (hasCDubboPBRequestType()) {
                    if (!getCDubboPBRequestType().isInitialized()) {
                        return false;
                    }
                }
                return true;
            }

            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
                GooglePB.PBResponseType parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (GooglePB.PBResponseType) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int bitField0_;

            private Object msg_ = "";

            /**
             * <code>optional string msg = 1;</code>
             */
            public boolean hasMsg() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
            }

            /**
             * <code>optional string msg = 1;</code>
             */
            public String getMsg() {
                Object ref = msg_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    if (bs.isValidUtf8()) {
                        msg_ = s;
                    }
                    return s;
                } else {
                    return (String) ref;
                }
            }

            /**
             * <code>optional string msg = 1;</code>
             */
            public com.google.protobuf.ByteString
            getMsgBytes() {
                Object ref = msg_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
                    msg_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string msg = 1;</code>
             */
            public Builder setMsg(
                String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                msg_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>optional string msg = 1;</code>
             */
            public Builder clearMsg() {
                bitField0_ = (bitField0_ & ~0x00000001);
                msg_ = getDefaultInstance().getMsg();
                onChanged();
                return this;
            }

            /**
             * <code>optional string msg = 1;</code>
             */
            public Builder setMsgBytes(
                com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                msg_ = value;
                onChanged();
                return this;
            }

            private GooglePB.PBRequestType cDubboPBRequestType_ = null;
            private com.google.protobuf.SingleFieldBuilderV3<
                PBRequestType, PBRequestType.Builder, PBRequestTypeOrBuilder> cDubboPBRequestTypeBuilder_;

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
             */
            public boolean hasCDubboPBRequestType() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
             */
            public GooglePB.PBRequestType getCDubboPBRequestType() {
                if (cDubboPBRequestTypeBuilder_ == null) {
                    return cDubboPBRequestType_ == null ? GooglePB.PBRequestType.getDefaultInstance() : cDubboPBRequestType_;
                } else {
                    return cDubboPBRequestTypeBuilder_.getMessage();
                }
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
             */
            public Builder setCDubboPBRequestType(GooglePB.PBRequestType value) {
                if (cDubboPBRequestTypeBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    cDubboPBRequestType_ = value;
                    onChanged();
                } else {
                    cDubboPBRequestTypeBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                return this;
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
             */
            public Builder setCDubboPBRequestType(
                GooglePB.PBRequestType.Builder builderForValue) {
                if (cDubboPBRequestTypeBuilder_ == null) {
                    cDubboPBRequestType_ = builderForValue.build();
                    onChanged();
                } else {
                    cDubboPBRequestTypeBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                return this;
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
             */
            public Builder mergeCDubboPBRequestType(GooglePB.PBRequestType value) {
                if (cDubboPBRequestTypeBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) == 0x00000002) &&
                        cDubboPBRequestType_ != null &&
                        cDubboPBRequestType_ != GooglePB.PBRequestType.getDefaultInstance()) {
                        cDubboPBRequestType_ =
                            GooglePB.PBRequestType.newBuilder(cDubboPBRequestType_).mergeFrom(value).buildPartial();
                    } else {
                        cDubboPBRequestType_ = value;
                    }
                    onChanged();
                } else {
                    cDubboPBRequestTypeBuilder_.mergeFrom(value);
                }
                bitField0_ |= 0x00000002;
                return this;
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
             */
            public Builder clearCDubboPBRequestType() {
                if (cDubboPBRequestTypeBuilder_ == null) {
                    cDubboPBRequestType_ = null;
                    onChanged();
                } else {
                    cDubboPBRequestTypeBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000002);
                return this;
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
             */
            public GooglePB.PBRequestType.Builder getCDubboPBRequestTypeBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getCDubboPBRequestTypeFieldBuilder().getBuilder();
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
             */
            public GooglePB.PBRequestTypeOrBuilder getCDubboPBRequestTypeOrBuilder() {
                if (cDubboPBRequestTypeBuilder_ != null) {
                    return cDubboPBRequestTypeBuilder_.getMessageOrBuilder();
                } else {
                    return cDubboPBRequestType_ == null ?
                        GooglePB.PBRequestType.getDefaultInstance() : cDubboPBRequestType_;
                }
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PBRequestType CDubboPBRequestType = 3;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<
                PBRequestType, PBRequestType.Builder, PBRequestTypeOrBuilder>
            getCDubboPBRequestTypeFieldBuilder() {
                if (cDubboPBRequestTypeBuilder_ == null) {
                    cDubboPBRequestTypeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                        PBRequestType, PBRequestType.Builder, PBRequestTypeOrBuilder>(
                        getCDubboPBRequestType(),
                        getParentForChildren(),
                        isClean());
                    cDubboPBRequestType_ = null;
                }
                return cDubboPBRequestTypeBuilder_;
            }

            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }


            // @@protoc_insertion_point(builder_scope:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
        }

        // @@protoc_insertion_point(class_scope:org.apache.dubbo.common.serialize.protobuf.model.PBResponseType)
        private static final GooglePB.PBResponseType DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new GooglePB.PBResponseType();
        }

        public static GooglePB.PBResponseType getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        @Deprecated
        public static final com.google.protobuf.Parser<PBResponseType>
            PARSER = new com.google.protobuf.AbstractParser<PBResponseType>() {
            public PBResponseType parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
                return new PBResponseType(input, extensionRegistry);
            }
        };

        public static com.google.protobuf.Parser<PBResponseType> parser() {
            return PARSER;
        }

        @Override
        public com.google.protobuf.Parser<PBResponseType> getParserForType() {
            return PARSER;
        }

        public GooglePB.PBResponseType getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface PhoneNumberOrBuilder extends
        // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
        com.google.protobuf.MessageOrBuilder {

        /**
         * <code>required string number = 1;</code>
         */
        boolean hasNumber();

        /**
         * <code>required string number = 1;</code>
         */
        String getNumber();

        /**
         * <code>required string number = 1;</code>
         */
        com.google.protobuf.ByteString
        getNumberBytes();

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
         */
        boolean hasType();

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
         */
        GooglePB.PhoneType getType();
    }

    /**
     * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber}
     */
    public static final class PhoneNumber extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
        PhoneNumberOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use PhoneNumber.newBuilder() to construct.
        private PhoneNumber(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private PhoneNumber() {
            number_ = "";
            type_ = 1;
        }

        @Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
            return this.unknownFields;
        }

        private PhoneNumber(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            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 10: {
                            com.google.protobuf.ByteString bs = input.readBytes();
                            bitField0_ |= 0x00000001;
                            number_ = bs;
                            break;
                        }
                        case 16: {
                            int rawValue = input.readEnum();
                            GooglePB.PhoneType value = GooglePB.PhoneType.valueOf(rawValue);
                            if (value == null) {
                                unknownFields.mergeVarintField(2, rawValue);
                            } else {
                                bitField0_ |= 0x00000002;
                                type_ = rawValue;
                            }
                            break;
                        }
                    }
                }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(
                    e).setUnfinishedMessage(this);
            } finally {
                this.unknownFields = unknownFields.build();
                makeExtensionsImmutable();
            }
        }

        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
            return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor;
        }

        protected FieldAccessorTable
        internalGetFieldAccessorTable() {
            return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    GooglePB.PhoneNumber.class, GooglePB.PhoneNumber.Builder.class);
        }

        private int bitField0_;
        public static final int NUMBER_FIELD_NUMBER = 1;
        private volatile Object number_;

        /**
         * <code>required string number = 1;</code>
         */
        public boolean hasNumber() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
        }

        /**
         * <code>required string number = 1;</code>
         */
        public String getNumber() {
            Object ref = number_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                if (bs.isValidUtf8()) {
                    number_ = s;
                }
                return s;
            }
        }

        /**
         * <code>required string number = 1;</code>
         */
        public com.google.protobuf.ByteString
        getNumberBytes() {
            Object ref = number_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                        (String) ref);
                number_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int TYPE_FIELD_NUMBER = 2;
        private int type_;

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
         */
        public boolean hasType() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
        }

        /**
         * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
         */
        public GooglePB.PhoneType getType() {
            GooglePB.PhoneType result = GooglePB.PhoneType.valueOf(type_);
            return result == null ? GooglePB.PhoneType.HOME : result;
        }

        private byte memoizedIsInitialized = -1;

        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;

            if (!hasNumber()) {
                memoizedIsInitialized = 0;
                return false;
            }
            memoizedIsInitialized = 1;
            return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, number_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
                output.writeEnum(2, type_);
            }
            unknownFields.writeTo(output);
        }

        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;

            size = 0;
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, number_);
            }
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
                size += com.google.protobuf.CodedOutputStream
                    .computeEnumSize(2, type_);
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @Override
        public boolean equals(final Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof GooglePB.PhoneNumber)) {
                return super.equals(obj);
            }
            GooglePB.PhoneNumber other = (GooglePB.PhoneNumber) obj;

            boolean result = true;
            result = result && (hasNumber() == other.hasNumber());
            if (hasNumber()) {
                result = result && getNumber()
                    .equals(other.getNumber());
            }
            result = result && (hasType() == other.hasType());
            if (hasType()) {
                result = result && type_ == other.type_;
            }
            result = result && unknownFields.equals(other.unknownFields);
            return result;
        }

        @Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasNumber()) {
                hash = (37 * hash) + NUMBER_FIELD_NUMBER;
                hash = (53 * hash) + getNumber().hashCode();
            }
            if (hasType()) {
                hash = (37 * hash) + TYPE_FIELD_NUMBER;
                hash = (53 * hash) + type_;
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static GooglePB.PhoneNumber parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static GooglePB.PhoneNumber parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static GooglePB.PhoneNumber parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static GooglePB.PhoneNumber parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static GooglePB.PhoneNumber parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static GooglePB.PhoneNumber parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static GooglePB.PhoneNumber parseFrom(java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static GooglePB.PhoneNumber parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static GooglePB.PhoneNumber parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
        }

        public static GooglePB.PhoneNumber parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static GooglePB.PhoneNumber parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
        }

        public static GooglePB.PhoneNumber parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(GooglePB.PhoneNumber prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
        }

        @Override
        protected Builder newBuilderForType(
            BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
            GooglePB.PhoneNumberOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
                return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor;
            }

            protected FieldAccessorTable
            internalGetFieldAccessorTable() {
                return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                        GooglePB.PhoneNumber.class, GooglePB.PhoneNumber.Builder.class);
            }

            // Construct using org.apache.dubbo.common.serialize.protobuf.model.GooglePB.PhoneNumber.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
                }
            }

            public Builder clear() {
                super.clear();
                number_ = "";
                bitField0_ = (bitField0_ & ~0x00000001);
                type_ = 1;
                bitField0_ = (bitField0_ & ~0x00000002);
                return this;
            }

            public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
                return GooglePB.internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor;
            }

            public GooglePB.PhoneNumber getDefaultInstanceForType() {
                return GooglePB.PhoneNumber.getDefaultInstance();
            }

            public GooglePB.PhoneNumber build() {
                GooglePB.PhoneNumber result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            public GooglePB.PhoneNumber buildPartial() {
                GooglePB.PhoneNumber result = new GooglePB.PhoneNumber(this);
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
                    to_bitField0_ |= 0x00000001;
                }
                result.number_ = number_;
                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
                    to_bitField0_ |= 0x00000002;
                }
                result.type_ = type_;
                result.bitField0_ = to_bitField0_;
                onBuilt();
                return result;
            }

            public Builder clone() {
                return (Builder) super.clone();
            }

            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                Object value) {
                return (Builder) super.setField(field, value);
            }

            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
                return (Builder) super.clearField(field);
            }

            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return (Builder) super.clearOneof(oneof);
            }

            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, Object value) {
                return (Builder) super.setRepeatedField(field, index, value);
            }

            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                Object value) {
                return (Builder) super.addRepeatedField(field, value);
            }

            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof GooglePB.PhoneNumber) {
                    return mergeFrom((GooglePB.PhoneNumber) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(GooglePB.PhoneNumber other) {
                if (other == GooglePB.PhoneNumber.getDefaultInstance()) return this;
                if (other.hasNumber()) {
                    bitField0_ |= 0x00000001;
                    number_ = other.number_;
                    onChanged();
                }
                if (other.hasType()) {
                    setType(other.getType());
                }
                this.mergeUnknownFields(other.unknownFields);
                onChanged();
                return this;
            }

            public final boolean isInitialized() {
                if (!hasNumber()) {
                    return false;
                }
                return true;
            }

            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
                GooglePB.PhoneNumber parsedMessage = null;
                try {
                    parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    parsedMessage = (GooglePB.PhoneNumber) e.getUnfinishedMessage();
                    throw e.unwrapIOException();
                } finally {
                    if (parsedMessage != null) {
                        mergeFrom(parsedMessage);
                    }
                }
                return this;
            }

            private int bitField0_;

            private Object number_ = "";

            /**
             * <code>required string number = 1;</code>
             */
            public boolean hasNumber() {
                return ((bitField0_ & 0x00000001) == 0x00000001);
            }

            /**
             * <code>required string number = 1;</code>
             */
            public String getNumber() {
                Object ref = number_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    if (bs.isValidUtf8()) {
                        number_ = s;
                    }
                    return s;
                } else {
                    return (String) ref;
                }
            }

            /**
             * <code>required string number = 1;</code>
             */
            public com.google.protobuf.ByteString
            getNumberBytes() {
                Object ref = number_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                            (String) ref);
                    number_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>required string number = 1;</code>
             */
            public Builder setNumber(
                String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                number_ = value;
                onChanged();
                return this;
            }

            /**
             * <code>required string number = 1;</code>
             */
            public Builder clearNumber() {
                bitField0_ = (bitField0_ & ~0x00000001);
                number_ = getDefaultInstance().getNumber();
                onChanged();
                return this;
            }

            /**
             * <code>required string number = 1;</code>
             */
            public Builder setNumberBytes(
                com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                number_ = value;
                onChanged();
                return this;
            }

            private int type_ = 1;

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
             */
            public boolean hasType() {
                return ((bitField0_ & 0x00000002) == 0x00000002);
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
             */
            public GooglePB.PhoneType getType() {
                GooglePB.PhoneType result = GooglePB.PhoneType.valueOf(type_);
                return result == null ? GooglePB.PhoneType.HOME : result;
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
             */
            public Builder setType(GooglePB.PhoneType value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000002;
                type_ = value.getNumber();
                onChanged();
                return this;
            }

            /**
             * <code>optional .org.apache.dubbo.common.serialize.protobuf.model.PhoneType type = 2 [default = HOME];</code>
             */
            public Builder clearType() {
                bitField0_ = (bitField0_ & ~0x00000002);
                type_ = 1;
                onChanged();
                return this;
            }

            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }


            // @@protoc_insertion_point(builder_scope:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
        }

        // @@protoc_insertion_point(class_scope:org.apache.dubbo.common.serialize.protobuf.model.PhoneNumber)
        private static final GooglePB.PhoneNumber DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new GooglePB.PhoneNumber();
        }

        public static GooglePB.PhoneNumber getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        @Deprecated
        public static final com.google.protobuf.Parser<PhoneNumber>
            PARSER = new com.google.protobuf.AbstractParser<PhoneNumber>() {
            public PhoneNumber parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
                return new PhoneNumber(input, extensionRegistry);
            }
        };

        public static com.google.protobuf.Parser<PhoneNumber> parser() {
            return PARSER;
        }

        @Override
        public com.google.protobuf.Parser<PhoneNumber> getParserForType() {
            return PARSER;
        }

        public GooglePB.PhoneNumber getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    private static final com.google.protobuf.Descriptors.Descriptor
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor;
    private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_fieldAccessorTable;

    public static com.google.protobuf.Descriptors.FileDescriptor
    getDescriptor() {
        return descriptor;
    }

    private static com.google.protobuf.Descriptors.FileDescriptor
        descriptor;

    static {
        String[] descriptorData = {
            "\n\016GooglePB.proto\0220org.apache.dubbo.commo" +
                "n.serialize.protobuf.model\"\220\003\n\rPBRequest" +
                "Type\022\r\n\005money\030\001 \001(\001\022\014\n\004cash\030\002 \001(\002\022\013\n\003age" +
                "\030\003 \001(\005\022\013\n\003num\030\004 \001(\003\022\013\n\003sex\030\005 \001(\010\022\014\n\004name" +
                "\030\006 \001(\t\022\013\n\003msg\030\007 \001(\014\022L\n\005phone\030\010 \003(\0132=.org" +
                ".apache.dubbo.common.serialize.protobuf." +
                "model.PhoneNumber\022a\n\tdoubleMap\030\t \003(\0132N.o" +
                "rg.apache.dubbo.common.serialize.protobu" +
                "f.model.PBRequestType.DoubleMapEntry\032o\n\016" +
                "DoubleMapEntry\022\013\n\003key\030\001 \001(\t\022L\n\005value\030\002 \001",
            "(\0132=.org.apache.dubbo.common.serialize.p" +
                "rotobuf.model.PhoneNumber:\0028\001\"{\n\016PBRespo" +
                "nseType\022\013\n\003msg\030\001 \001(\t\022\\\n\023CDubboPBRequestT" +
                "ype\030\003 \001(\0132?.org.apache.dubbo.common.seri" +
                "alize.protobuf.model.PBRequestType\"n\n\013Ph" +
                "oneNumber\022\016\n\006number\030\001 \002(\t\022O\n\004type\030\002 \001(\0162" +
                ";.org.apache.dubbo.common.serialize.prot" +
                "obuf.model.PhoneType:\004HOME*+\n\tPhoneType\022" +
                "\n\n\006MOBILE\020\000\022\010\n\004HOME\020\001\022\010\n\004WORK\020\0022\241\001\n\017CDub" +
                "boPBService\022\215\001\n\010sayHello\022?.org.apache.du",
            "bbo.common.serialize.protobuf.model.PBRe" +
                "questType\032@.org.apache.dubbo.common.seri" +
                "alize.protobuf.model.PBResponseType"
        };
        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;
                    return null;
                }
            };
        com.google.protobuf.Descriptors.FileDescriptor
            .internalBuildGeneratedFileFrom(descriptorData,
                new com.google.protobuf.Descriptors.FileDescriptor[]{
                }, assigner);
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor =
            getDescriptor().getMessageTypes().get(0);
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor,
            new String[]{"Money", "Cash", "Age", "Num", "Sex", "Name", "Msg", "Phone", "DoubleMap",});
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_descriptor =
            internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_descriptor.getNestedTypes().get(0);
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBRequestType_DoubleMapEntry_descriptor,
            new String[]{"Key", "Value",});
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor =
            getDescriptor().getMessageTypes().get(1);
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_org_apache_dubbo_common_serialize_protobuf_model_PBResponseType_descriptor,
            new String[]{"Msg", "CDubboPBRequestType",});
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor =
            getDescriptor().getMessageTypes().get(2);
        internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_org_apache_dubbo_common_serialize_protobuf_model_PhoneNumber_descriptor,
            new String[]{"Number", "Type",});
    }

    // @@protoc_insertion_point(outer_class_scope)
}
