diff --git a/google-protocol-buffer/pom.xml b/google-protocol-buffer/pom.xml index dc5d3bd5dae2..b8114c99f783 100644 --- a/google-protocol-buffer/pom.xml +++ b/google-protocol-buffer/pom.xml @@ -18,10 +18,16 @@ protobuf-java ${protobuf.version} + + org.junit.jupiter + junit-jupiter + ${junit.jupiter.version} + - 3.2.0 + 4.30.2 + 5.13.0-M2 \ No newline at end of file diff --git a/google-protocol-buffer/src/main/java/com/baeldung/generated/Food.java b/google-protocol-buffer/src/main/java/com/baeldung/generated/Food.java new file mode 100644 index 000000000000..e304a8ec096b --- /dev/null +++ b/google-protocol-buffer/src/main/java/com/baeldung/generated/Food.java @@ -0,0 +1,1446 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// NO CHECKED-IN PROTOBUF GENCODE +// source: src/main/resources/food.proto +// Protobuf Java Version: 4.30.2 + +package com.baeldung.generated; + +public final class Food { + + private Food() { + } + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 30, + /* patch= */ 2, + /* suffix= */ "", Food.class.getName()); + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + public interface MenuOrBuilder extends + // @@protoc_insertion_point(interface_extends:com.baeldung.Menu) + com.google.protobuf.MessageOrBuilder { + + /** + * map<string, float> items = 1; + */ + int getItemsCount(); + + /** + * map<string, float> items = 1; + */ + boolean containsItems(java.lang.String key); + + /** + * Use {@link #getItemsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map getItems(); + + /** + * map<string, float> items = 1; + */ + java.util.Map getItemsMap(); + + /** + * map<string, float> items = 1; + */ + float getItemsOrDefault(java.lang.String key, float defaultValue); + + /** + * map<string, float> items = 1; + */ + float getItemsOrThrow(java.lang.String key); + } + + /** + * Protobuf type {@code com.baeldung.Menu} + */ + public static final class Menu extends com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:com.baeldung.Menu) + MenuOrBuilder { + + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 30, + /* patch= */ 2, + /* suffix= */ "", Menu.class.getName()); + } + + // Use Menu.newBuilder() to construct. + private Menu(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private Menu() { + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.baeldung.generated.Food.internal_static_com_baeldung_Menu_descriptor; + } + + @SuppressWarnings({ "rawtypes" }) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(int number) { + switch (number) { + case 1: + return internalGetItems(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { + return com.baeldung.generated.Food.internal_static_com_baeldung_Menu_fieldAccessorTable.ensureFieldAccessorsInitialized( + com.baeldung.generated.Food.Menu.class, com.baeldung.generated.Food.Menu.Builder.class); + } + + public static final int ITEMS_FIELD_NUMBER = 1; + + private static final class ItemsDefaultEntryHolder { + + static final com.google.protobuf.MapEntry defaultEntry = com.google.protobuf.MapEntry. newDefaultInstance( + com.baeldung.generated.Food.internal_static_com_baeldung_Menu_ItemsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", + com.google.protobuf.WireFormat.FieldType.FLOAT, 0F); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField items_; + + private com.google.protobuf.MapField internalGetItems() { + if (items_ == null) { + return com.google.protobuf.MapField.emptyMapField(ItemsDefaultEntryHolder.defaultEntry); + } + return items_; + } + + public int getItemsCount() { + return internalGetItems().getMap() + .size(); + } + + /** + * map<string, float> items = 1; + */ + @java.lang.Override + public boolean containsItems(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetItems().getMap() + .containsKey(key); + } + + /** + * Use {@link #getItemsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getItems() { + return getItemsMap(); + } + + /** + * map<string, float> items = 1; + */ + @java.lang.Override + public java.util.Map getItemsMap() { + return internalGetItems().getMap(); + } + + /** + * map<string, float> items = 1; + */ + @java.lang.Override + public float getItemsOrDefault(java.lang.String key, float defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetItems().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * map<string, float> items = 1; + */ + @java.lang.Override + public float getItemsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetItems().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) { + return true; + } + if (isInitialized == 0) { + return false; + } + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + com.google.protobuf.GeneratedMessage.serializeStringMapTo(output, internalGetItems(), ItemsDefaultEntryHolder.defaultEntry, 1); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) { + return size; + } + + size = 0; + for (java.util.Map.Entry entry : internalGetItems().getMap() + .entrySet()) { + com.google.protobuf.MapEntry items__ = ItemsDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, items__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.baeldung.generated.Food.Menu)) { + return super.equals(obj); + } + com.baeldung.generated.Food.Menu other = (com.baeldung.generated.Food.Menu) obj; + + if (!internalGetItems().equals(other.internalGetItems())) { + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) { + return false; + } + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (!internalGetItems().getMap() + .isEmpty()) { + hash = (37 * hash) + ITEMS_FIELD_NUMBER; + hash = (53 * hash) + internalGetItems().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.baeldung.generated.Food.Menu parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.baeldung.generated.Food.Menu parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.baeldung.generated.Food.Menu parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.baeldung.generated.Food.Menu parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.baeldung.generated.Food.Menu parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.baeldung.generated.Food.Menu parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.baeldung.generated.Food.Menu parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.baeldung.generated.Food.Menu parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.baeldung.generated.Food.Menu parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.baeldung.generated.Food.Menu parseDelimitedFrom(java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static com.baeldung.generated.Food.Menu parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.baeldung.generated.Food.Menu parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.baeldung.generated.Food.Menu prototype) { + return DEFAULT_INSTANCE.toBuilder() + .mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code com.baeldung.Menu} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:com.baeldung.Menu) + com.baeldung.generated.Food.MenuOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.baeldung.generated.Food.internal_static_com_baeldung_Menu_descriptor; + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(int number) { + switch (number) { + case 1: + return internalGetItems(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(int number) { + switch (number) { + case 1: + return internalGetMutableItems(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { + return com.baeldung.generated.Food.internal_static_com_baeldung_Menu_fieldAccessorTable.ensureFieldAccessorsInitialized( + com.baeldung.generated.Food.Menu.class, com.baeldung.generated.Food.Menu.Builder.class); + } + + // Construct using com.baeldung.generated.Food.Menu.newBuilder() + private Builder() { + + } + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + internalGetMutableItems().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.baeldung.generated.Food.internal_static_com_baeldung_Menu_descriptor; + } + + @java.lang.Override + public com.baeldung.generated.Food.Menu getDefaultInstanceForType() { + return com.baeldung.generated.Food.Menu.getDefaultInstance(); + } + + @java.lang.Override + public com.baeldung.generated.Food.Menu build() { + com.baeldung.generated.Food.Menu result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.baeldung.generated.Food.Menu buildPartial() { + com.baeldung.generated.Food.Menu result = new com.baeldung.generated.Food.Menu(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.baeldung.generated.Food.Menu result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.items_ = internalGetItems(); + result.items_.makeImmutable(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.baeldung.generated.Food.Menu) { + return mergeFrom((com.baeldung.generated.Food.Menu) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.baeldung.generated.Food.Menu other) { + if (other == com.baeldung.generated.Food.Menu.getDefaultInstance()) { + return this; + } + internalGetMutableItems().mergeFrom(other.internalGetItems()); + bitField0_ |= 0x00000001; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.MapEntry items__ = input.readMessage( + ItemsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableItems().getMutableMap() + .put(items__.getKey(), items__.getValue()); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.protobuf.MapField items_; + + private com.google.protobuf.MapField internalGetItems() { + if (items_ == null) { + return com.google.protobuf.MapField.emptyMapField(ItemsDefaultEntryHolder.defaultEntry); + } + return items_; + } + + private com.google.protobuf.MapField internalGetMutableItems() { + if (items_ == null) { + items_ = com.google.protobuf.MapField.newMapField(ItemsDefaultEntryHolder.defaultEntry); + } + if (!items_.isMutable()) { + items_ = items_.copy(); + } + bitField0_ |= 0x00000001; + onChanged(); + return items_; + } + + public int getItemsCount() { + return internalGetItems().getMap() + .size(); + } + + /** + * map<string, float> items = 1; + */ + @java.lang.Override + public boolean containsItems(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetItems().getMap() + .containsKey(key); + } + + /** + * Use {@link #getItemsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getItems() { + return getItemsMap(); + } + + /** + * map<string, float> items = 1; + */ + @java.lang.Override + public java.util.Map getItemsMap() { + return internalGetItems().getMap(); + } + + /** + * map<string, float> items = 1; + */ + @java.lang.Override + public float getItemsOrDefault(java.lang.String key, float defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetItems().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * map<string, float> items = 1; + */ + @java.lang.Override + public float getItemsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetItems().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearItems() { + bitField0_ = (bitField0_ & ~0x00000001); + internalGetMutableItems().getMutableMap() + .clear(); + return this; + } + + /** + * map<string, float> items = 1; + */ + public Builder removeItems(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableItems().getMutableMap() + .remove(key); + return this; + } + + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map getMutableItems() { + bitField0_ |= 0x00000001; + return internalGetMutableItems().getMutableMap(); + } + + /** + * map<string, float> items = 1; + */ + public Builder putItems(java.lang.String key, float value) { + if (key == null) { + throw new NullPointerException("map key"); + } + + internalGetMutableItems().getMutableMap() + .put(key, value); + bitField0_ |= 0x00000001; + return this; + } + + /** + * map<string, float> items = 1; + */ + public Builder putAllItems(java.util.Map values) { + internalGetMutableItems().getMutableMap() + .putAll(values); + bitField0_ |= 0x00000001; + return this; + } + + // @@protoc_insertion_point(builder_scope:com.baeldung.Menu) + } + + // @@protoc_insertion_point(class_scope:com.baeldung.Menu) + private static final com.baeldung.generated.Food.Menu DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.baeldung.generated.Food.Menu(); + } + + public static com.baeldung.generated.Food.Menu getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Menu parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.baeldung.generated.Food.Menu getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface FoodDeliveryOrBuilder extends + // @@protoc_insertion_point(interface_extends:com.baeldung.FoodDelivery) + com.google.protobuf.MessageOrBuilder { + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + int getRestaurantsCount(); + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + boolean containsRestaurants(java.lang.String key); + + /** + * Use {@link #getRestaurantsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map getRestaurants(); + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + java.util.Map getRestaurantsMap(); + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + /* nullable */ + com.baeldung.generated.Food.Menu getRestaurantsOrDefault(java.lang.String key, + /* nullable */ + com.baeldung.generated.Food.Menu defaultValue); + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + com.baeldung.generated.Food.Menu getRestaurantsOrThrow(java.lang.String key); + } + + /** + * Protobuf type {@code com.baeldung.FoodDelivery} + */ + public static final class FoodDelivery extends com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:com.baeldung.FoodDelivery) + FoodDeliveryOrBuilder { + + private static final long serialVersionUID = 0L; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 30, + /* patch= */ 2, + /* suffix= */ "", FoodDelivery.class.getName()); + } + + // Use FoodDelivery.newBuilder() to construct. + private FoodDelivery(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + + private FoodDelivery() { + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.baeldung.generated.Food.internal_static_com_baeldung_FoodDelivery_descriptor; + } + + @SuppressWarnings({ "rawtypes" }) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(int number) { + switch (number) { + case 1: + return internalGetRestaurants(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { + return com.baeldung.generated.Food.internal_static_com_baeldung_FoodDelivery_fieldAccessorTable.ensureFieldAccessorsInitialized( + com.baeldung.generated.Food.FoodDelivery.class, com.baeldung.generated.Food.FoodDelivery.Builder.class); + } + + public static final int RESTAURANTS_FIELD_NUMBER = 1; + + private static final class RestaurantsDefaultEntryHolder { + + static final com.google.protobuf.MapEntry defaultEntry = com.google.protobuf.MapEntry. newDefaultInstance( + com.baeldung.generated.Food.internal_static_com_baeldung_FoodDelivery_RestaurantsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.baeldung.generated.Food.Menu.getDefaultInstance()); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField restaurants_; + + private com.google.protobuf.MapField internalGetRestaurants() { + if (restaurants_ == null) { + return com.google.protobuf.MapField.emptyMapField(RestaurantsDefaultEntryHolder.defaultEntry); + } + return restaurants_; + } + + public int getRestaurantsCount() { + return internalGetRestaurants().getMap() + .size(); + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + @java.lang.Override + public boolean containsRestaurants(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetRestaurants().getMap() + .containsKey(key); + } + + /** + * Use {@link #getRestaurantsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getRestaurants() { + return getRestaurantsMap(); + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + @java.lang.Override + public java.util.Map getRestaurantsMap() { + return internalGetRestaurants().getMap(); + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + @java.lang.Override + public /* nullable */ + com.baeldung.generated.Food.Menu getRestaurantsOrDefault(java.lang.String key, + /* nullable */ + com.baeldung.generated.Food.Menu defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetRestaurants().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + @java.lang.Override + public com.baeldung.generated.Food.Menu getRestaurantsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetRestaurants().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) { + return true; + } + if (isInitialized == 0) { + return false; + } + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + com.google.protobuf.GeneratedMessage.serializeStringMapTo(output, internalGetRestaurants(), RestaurantsDefaultEntryHolder.defaultEntry, 1); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) { + return size; + } + + size = 0; + for (java.util.Map.Entry entry : internalGetRestaurants().getMap() + .entrySet()) { + com.google.protobuf.MapEntry restaurants__ = RestaurantsDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, restaurants__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.baeldung.generated.Food.FoodDelivery)) { + return super.equals(obj); + } + com.baeldung.generated.Food.FoodDelivery other = (com.baeldung.generated.Food.FoodDelivery) obj; + + if (!internalGetRestaurants().equals(other.internalGetRestaurants())) { + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) { + return false; + } + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (!internalGetRestaurants().getMap() + .isEmpty()) { + hash = (37 * hash) + RESTAURANTS_FIELD_NUMBER; + hash = (53 * hash) + internalGetRestaurants().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.baeldung.generated.Food.FoodDelivery parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input); + } + + public static com.baeldung.generated.Food.FoodDelivery parseDelimitedFrom(java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input); + } + + public static com.baeldung.generated.Food.FoodDelivery parseFrom(com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.baeldung.generated.Food.FoodDelivery prototype) { + return DEFAULT_INSTANCE.toBuilder() + .mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code com.baeldung.FoodDelivery} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:com.baeldung.FoodDelivery) + com.baeldung.generated.Food.FoodDeliveryOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.baeldung.generated.Food.internal_static_com_baeldung_FoodDelivery_descriptor; + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(int number) { + switch (number) { + case 1: + return internalGetRestaurants(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(int number) { + switch (number) { + case 1: + return internalGetMutableRestaurants(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { + return com.baeldung.generated.Food.internal_static_com_baeldung_FoodDelivery_fieldAccessorTable.ensureFieldAccessorsInitialized( + com.baeldung.generated.Food.FoodDelivery.class, com.baeldung.generated.Food.FoodDelivery.Builder.class); + } + + // Construct using com.baeldung.generated.Food.FoodDelivery.newBuilder() + private Builder() { + + } + + private Builder(com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + internalGetMutableRestaurants().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.baeldung.generated.Food.internal_static_com_baeldung_FoodDelivery_descriptor; + } + + @java.lang.Override + public com.baeldung.generated.Food.FoodDelivery getDefaultInstanceForType() { + return com.baeldung.generated.Food.FoodDelivery.getDefaultInstance(); + } + + @java.lang.Override + public com.baeldung.generated.Food.FoodDelivery build() { + com.baeldung.generated.Food.FoodDelivery result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.baeldung.generated.Food.FoodDelivery buildPartial() { + com.baeldung.generated.Food.FoodDelivery result = new com.baeldung.generated.Food.FoodDelivery(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.baeldung.generated.Food.FoodDelivery result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.restaurants_ = internalGetRestaurants().build(RestaurantsDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.baeldung.generated.Food.FoodDelivery) { + return mergeFrom((com.baeldung.generated.Food.FoodDelivery) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.baeldung.generated.Food.FoodDelivery other) { + if (other == com.baeldung.generated.Food.FoodDelivery.getDefaultInstance()) { + return this; + } + internalGetMutableRestaurants().mergeFrom(other.internalGetRestaurants()); + bitField0_ |= 0x00000001; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.MapEntry restaurants__ = input.readMessage( + RestaurantsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableRestaurants().ensureBuilderMap() + .put(restaurants__.getKey(), restaurants__.getValue()); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private static final class RestaurantsConverter implements + com.google.protobuf.MapFieldBuilder.Converter { + + @java.lang.Override + public com.baeldung.generated.Food.Menu build(com.baeldung.generated.Food.MenuOrBuilder val) { + if (val instanceof com.baeldung.generated.Food.Menu) { + return (com.baeldung.generated.Food.Menu) val; + } + return ((com.baeldung.generated.Food.Menu.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return RestaurantsDefaultEntryHolder.defaultEntry; + } + } + + ; + private static final RestaurantsConverter restaurantsConverter = new RestaurantsConverter(); + + private com.google.protobuf.MapFieldBuilder restaurants_; + + private com.google.protobuf.MapFieldBuilder internalGetRestaurants() { + if (restaurants_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(restaurantsConverter); + } + return restaurants_; + } + + private com.google.protobuf.MapFieldBuilder internalGetMutableRestaurants() { + if (restaurants_ == null) { + restaurants_ = new com.google.protobuf.MapFieldBuilder<>(restaurantsConverter); + } + bitField0_ |= 0x00000001; + onChanged(); + return restaurants_; + } + + public int getRestaurantsCount() { + return internalGetRestaurants().ensureBuilderMap() + .size(); + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + @java.lang.Override + public boolean containsRestaurants(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetRestaurants().ensureBuilderMap() + .containsKey(key); + } + + /** + * Use {@link #getRestaurantsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getRestaurants() { + return getRestaurantsMap(); + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + @java.lang.Override + public java.util.Map getRestaurantsMap() { + return internalGetRestaurants().getImmutableMap(); + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + @java.lang.Override + public /* nullable */ + com.baeldung.generated.Food.Menu getRestaurantsOrDefault(java.lang.String key, + /* nullable */ + com.baeldung.generated.Food.Menu defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetMutableRestaurants().ensureBuilderMap(); + return map.containsKey(key) ? restaurantsConverter.build(map.get(key)) : defaultValue; + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + @java.lang.Override + public com.baeldung.generated.Food.Menu getRestaurantsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map map = internalGetMutableRestaurants().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return restaurantsConverter.build(map.get(key)); + } + + public Builder clearRestaurants() { + bitField0_ = (bitField0_ & ~0x00000001); + internalGetMutableRestaurants().clear(); + return this; + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + public Builder removeRestaurants(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableRestaurants().ensureBuilderMap() + .remove(key); + return this; + } + + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map getMutableRestaurants() { + bitField0_ |= 0x00000001; + return internalGetMutableRestaurants().ensureMessageMap(); + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + public Builder putRestaurants(java.lang.String key, com.baeldung.generated.Food.Menu value) { + if (key == null) { + throw new NullPointerException("map key"); + } + if (value == null) { + throw new NullPointerException("map value"); + } + internalGetMutableRestaurants().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000001; + return this; + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + public Builder putAllRestaurants(java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableRestaurants().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000001; + return this; + } + + /** + * map<string, .com.baeldung.Menu> restaurants = 1; + */ + public com.baeldung.generated.Food.Menu.Builder putRestaurantsBuilderIfAbsent(java.lang.String key) { + java.util.Map builderMap = internalGetMutableRestaurants().ensureBuilderMap(); + com.baeldung.generated.Food.MenuOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.baeldung.generated.Food.Menu.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.baeldung.generated.Food.Menu) { + entry = ((com.baeldung.generated.Food.Menu) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.baeldung.generated.Food.Menu.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:com.baeldung.FoodDelivery) + } + + // @@protoc_insertion_point(class_scope:com.baeldung.FoodDelivery) + private static final com.baeldung.generated.Food.FoodDelivery DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.baeldung.generated.Food.FoodDelivery(); + } + + public static com.baeldung.generated.Food.FoodDelivery getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FoodDelivery parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException() + .setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.baeldung.generated.Food.FoodDelivery getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor internal_static_com_baeldung_Menu_descriptor; + private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_com_baeldung_Menu_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_com_baeldung_Menu_ItemsEntry_descriptor; + private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_com_baeldung_Menu_ItemsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_com_baeldung_FoodDelivery_descriptor; + private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_com_baeldung_FoodDelivery_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_com_baeldung_FoodDelivery_RestaurantsEntry_descriptor; + private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_com_baeldung_FoodDelivery_RestaurantsEntry_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor descriptor; + + static { + java.lang.String[] descriptorData = { + "\n\035src/main/resources/food.proto\022\014com.bae" + "ldung\"b\n\004Menu\022,\n\005items\030\001 \003(\0132\035.com.baeld" + + "ung.Menu.ItemsEntry\032,\n\nItemsEntry\022\013\n\003key" + + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\002:\0028\001\"\230\001\n\014FoodDelive" + + "ry\022@\n\013restaurants\030\001 \003(\0132+.com.baeldung.F" + "oodDelivery.RestaurantsEntry\032F\n\020Restaura" + + "ntsEntry\022\013\n\003key\030\001 \001(\t\022!\n\005value\030\002 \001(\0132\022.c" + "om.baeldung.Menu:\0028\001B\030\n\026com.baeldung.gen" + + "eratedb\006proto3" }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] {}); + internal_static_com_baeldung_Menu_descriptor = getDescriptor().getMessageTypes() + .get(0); + internal_static_com_baeldung_Menu_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_com_baeldung_Menu_descriptor, new java.lang.String[] { "Items", }); + internal_static_com_baeldung_Menu_ItemsEntry_descriptor = internal_static_com_baeldung_Menu_descriptor.getNestedTypes() + .get(0); + internal_static_com_baeldung_Menu_ItemsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_com_baeldung_Menu_ItemsEntry_descriptor, new java.lang.String[] { "Key", "Value", }); + internal_static_com_baeldung_FoodDelivery_descriptor = getDescriptor().getMessageTypes() + .get(1); + internal_static_com_baeldung_FoodDelivery_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_com_baeldung_FoodDelivery_descriptor, new java.lang.String[] { "Restaurants", }); + internal_static_com_baeldung_FoodDelivery_RestaurantsEntry_descriptor = internal_static_com_baeldung_FoodDelivery_descriptor.getNestedTypes() + .get(0); + internal_static_com_baeldung_FoodDelivery_RestaurantsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_com_baeldung_FoodDelivery_RestaurantsEntry_descriptor, new java.lang.String[] { "Key", "Value", }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/google-protocol-buffer/src/main/java/com/baeldung/mapinprotobuf/FoodDelivery.java b/google-protocol-buffer/src/main/java/com/baeldung/mapinprotobuf/FoodDelivery.java new file mode 100644 index 000000000000..b4da93b91a72 --- /dev/null +++ b/google-protocol-buffer/src/main/java/com/baeldung/mapinprotobuf/FoodDelivery.java @@ -0,0 +1,71 @@ +package com.baeldung.mapinprotobuf; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Map; +import java.util.logging.Logger; + +import com.baeldung.generated.Food; + +public class FoodDelivery { + + private static final Logger logger = Logger.getLogger(FoodDelivery.class.getName()); + private final String FILE_PATH = "src/main/resources/foodfile.bin"; + + public FoodDelivery() { + + } + + public Food.FoodDelivery buildData() { + Food.FoodDelivery.Builder foodData = Food.FoodDelivery.newBuilder(); + Food.Menu pizzaMenu = Food.Menu.newBuilder() + .putItems("Margherita", 12.99f) + .putItems("Pepperoni", 14.99f) + .build(); + + Food.Menu sushiMenu = Food.Menu.newBuilder() + .putItems("Salmon Roll", 10.50f) + .putItems("Tuna Roll", 12.33f) + .build(); + + foodData.putRestaurants("Pizza Place", pizzaMenu); + foodData.putRestaurants("Sushi Place", sushiMenu); + + return foodData.build(); + } + + public void serializeToFile(Food.FoodDelivery delivery) { + try (FileOutputStream fos = new FileOutputStream(FILE_PATH)) { + delivery.writeTo(fos); + logger.info("Successfully wrote to the file."); + } catch (IOException ioe) { + logger.warning("Error serializing the Map or writing the file"); + } + } + + public Food.FoodDelivery deserializeFromFile(Food.FoodDelivery delivery) { + try (FileInputStream fis = new FileInputStream(FILE_PATH)) { + return Food.FoodDelivery.parseFrom(fis); + } catch (FileNotFoundException e) { + logger.severe(String.format("File not found: %s location", FILE_PATH)); + return Food.FoodDelivery.newBuilder() + .build(); + } catch (IOException e) { + logger.warning(String.format("Error reading file: %s location", FILE_PATH)); + return Food.FoodDelivery.newBuilder() + .build(); + } + } + + public void displayRestaurants(Food.FoodDelivery delivery) { + Map restaurants = delivery.getRestaurantsMap(); + for (Map.Entry restaurant : restaurants.entrySet()) { + logger.info("Restaurant: " + restaurant.getKey()); + restaurant.getValue() + .getItemsMap() + .forEach((menuItem, price) -> logger.info(String.format(" - %s costs $ %f", menuItem, price))); + } + } +} diff --git a/google-protocol-buffer/src/main/java/com/baeldung/protobuf/AddressBookProtos.java b/google-protocol-buffer/src/main/java/com/baeldung/protobuf/AddressBookProtos.java index ba885830b63c..3c7e1f60643e 100644 --- a/google-protocol-buffer/src/main/java/com/baeldung/protobuf/AddressBookProtos.java +++ b/google-protocol-buffer/src/main/java/com/baeldung/protobuf/AddressBookProtos.java @@ -1,1967 +1,1870 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! -// source: routeguide.proto +// NO CHECKED-IN PROTOBUF GENCODE +// source: src/main/resources/addressbook.proto +// Protobuf Java Version: 4.30.2 package com.baeldung.protobuf; public final class AddressBookProtos { - private AddressBookProtos() { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - - public interface PersonOrBuilder extends - // @@protoc_insertion_point(interface_extends:protobuf.Person) - com.google.protobuf.MessageOrBuilder { - - /** - * required string name = 1; - */ - boolean hasName(); - - /** - * required string name = 1; - */ - java.lang.String getName(); + private AddressBookProtos() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 30, + /* patch= */ 2, + /* suffix= */ "", + AddressBookProtos.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface PersonOrBuilder extends + // @@protoc_insertion_point(interface_extends:protobuf.Person) + com.google.protobuf.MessageOrBuilder { - /** - * required string name = 1; - */ - com.google.protobuf.ByteString + /** + * required string name = 1; + * @return Whether the name field is set. + */ + boolean hasName(); + /** + * required string name = 1; + * @return The name. + */ + java.lang.String getName(); + /** + * required string name = 1; + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); - /** - * required int32 id = 2; - */ - boolean hasId(); - - /** - * required int32 id = 2; - */ - int getId(); - - /** - * optional string email = 3; - */ - boolean hasEmail(); - - /** - * optional string email = 3; - */ - java.lang.String getEmail(); - - /** - * optional string email = 3; - */ - com.google.protobuf.ByteString + /** + * required int32 id = 2; + * @return Whether the id field is set. + */ + boolean hasId(); + /** + * required int32 id = 2; + * @return The id. + */ + int getId(); + + /** + * optional string email = 3; + * @return Whether the email field is set. + */ + boolean hasEmail(); + /** + * optional string email = 3; + * @return The email. + */ + java.lang.String getEmail(); + /** + * optional string email = 3; + * @return The bytes for email. + */ + com.google.protobuf.ByteString getEmailBytes(); - /** - * repeated string numbers = 4; - */ - java.util.List + /** + * repeated string numbers = 4; + * @return A list containing the numbers. + */ + java.util.List getNumbersList(); + /** + * repeated string numbers = 4; + * @return The count of numbers. + */ + int getNumbersCount(); + /** + * repeated string numbers = 4; + * @param index The index of the element to return. + * @return The numbers at the given index. + */ + java.lang.String getNumbers(int index); + /** + * repeated string numbers = 4; + * @param index The index of the value to return. + * @return The bytes of the numbers at the given index. + */ + com.google.protobuf.ByteString + getNumbersBytes(int index); + } + /** + * Protobuf type {@code protobuf.Person} + */ + public static final class Person extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:protobuf.Person) + PersonOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 30, + /* patch= */ 2, + /* suffix= */ "", + Person.class.getName()); + } + // Use Person.newBuilder() to construct. + private Person(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private Person() { + name_ = ""; + email_ = ""; + numbers_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + } - /** - * repeated string numbers = 4; - */ - int getNumbersCount(); + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_descriptor; + } - /** - * repeated string numbers = 4; - */ - java.lang.String getNumbers(int index); + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.baeldung.protobuf.AddressBookProtos.Person.class, com.baeldung.protobuf.AddressBookProtos.Person.Builder.class); + } - /** - * repeated string numbers = 4; - */ - com.google.protobuf.ByteString - getNumbersBytes(int index); + private int bitField0_; + public static final int NAME_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + * required string name = 1; + * @return Whether the name field is set. + */ + @java.lang.Override + public boolean hasName() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * required string name = 1; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + name_ = s; + } + return s; + } + } + /** + * required string name = 1; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } + public static final int ID_FIELD_NUMBER = 2; + private int id_ = 0; /** - * Protobuf type {@code protobuf.Person} + * required int32 id = 2; + * @return Whether the id field is set. */ - public static final class Person extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:protobuf.Person) - PersonOrBuilder { - // Use Person.newBuilder() to construct. - private Person(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } + @java.lang.Override + public boolean hasId() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * required int32 id = 2; + * @return The id. + */ + @java.lang.Override + public int getId() { + return id_; + } - private Person() { - name_ = ""; - id_ = 0; - email_ = ""; - numbers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - } + public static final int EMAIL_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object email_ = ""; + /** + * optional string email = 3; + * @return Whether the email field is set. + */ + @java.lang.Override + public boolean hasEmail() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * optional string email = 3; + * @return The email. + */ + @java.lang.Override + public java.lang.String getEmail() { + java.lang.Object ref = email_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + email_ = s; + } + return s; + } + } + /** + * optional string email = 3; + * @return The bytes for email. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getEmailBytes() { + java.lang.Object ref = email_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + email_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } + public static final int NUMBERS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList numbers_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * repeated string numbers = 4; + * @return A list containing the numbers. + */ + public com.google.protobuf.ProtocolStringList + getNumbersList() { + return numbers_; + } + /** + * repeated string numbers = 4; + * @return The count of numbers. + */ + public int getNumbersCount() { + return numbers_.size(); + } + /** + * repeated string numbers = 4; + * @param index The index of the element to return. + * @return The numbers at the given index. + */ + public java.lang.String getNumbers(int index) { + return numbers_.get(index); + } + /** + * repeated string numbers = 4; + * @param index The index of the value to return. + * @return The bytes of the numbers at the given index. + */ + public com.google.protobuf.ByteString + getNumbersBytes(int index) { + return numbers_.getByteString(index); + } - private Person( - 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; - name_ = bs; - break; - } - case 16: { - bitField0_ |= 0x00000002; - id_ = input.readInt32(); - break; - } - case 26: { - com.google.protobuf.ByteString bs = input.readBytes(); - bitField0_ |= 0x00000004; - email_ = bs; - break; - } - case 34: { - com.google.protobuf.ByteString bs = input.readBytes(); - if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) { - numbers_ = new com.google.protobuf.LazyStringArrayList(); - mutable_bitField0_ |= 0x00000008; - } - numbers_.add(bs); - 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_ & 0x00000008) == 0x00000008)) { - numbers_ = numbers_.getUnmodifiableView(); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + if (!hasName()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasId()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_descriptor; - } + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (((bitField0_ & 0x00000001) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, name_); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeInt32(2, id_); + } + if (((bitField0_ & 0x00000004) != 0)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, email_); + } + for (int i = 0; i < numbers_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, numbers_.getRaw(i)); + } + getUnknownFields().writeTo(output); + } - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.baeldung.protobuf.AddressBookProtos.Person.class, com.baeldung.protobuf.AddressBookProtos.Person.Builder.class); - } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, id_); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, email_); + } + { + int dataSize = 0; + for (int i = 0; i < numbers_.size(); i++) { + dataSize += computeStringSizeNoTag(numbers_.getRaw(i)); + } + size += dataSize; + size += 1 * getNumbersList().size(); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - private int bitField0_; - public static final int NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object name_; + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.baeldung.protobuf.AddressBookProtos.Person)) { + return super.equals(obj); + } + com.baeldung.protobuf.AddressBookProtos.Person other = (com.baeldung.protobuf.AddressBookProtos.Person) obj; + + if (hasName() != other.hasName()) return false; + if (hasName()) { + if (!getName() + .equals(other.getName())) return false; + } + if (hasId() != other.hasId()) return false; + if (hasId()) { + if (getId() + != other.getId()) return false; + } + if (hasEmail() != other.hasEmail()) return false; + if (hasEmail()) { + if (!getEmail() + .equals(other.getEmail())) return false; + } + if (!getNumbersList() + .equals(other.getNumbersList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } - /** - * required string name = 1; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasName()) { + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + } + if (hasId()) { + hash = (37 * hash) + ID_FIELD_NUMBER; + hash = (53 * hash) + getId(); + } + if (hasEmail()) { + hash = (37 * hash) + EMAIL_FIELD_NUMBER; + hash = (53 * hash) + getEmail().hashCode(); + } + if (getNumbersCount() > 0) { + hash = (37 * hash) + NUMBERS_FIELD_NUMBER; + hash = (53 * hash) + getNumbersList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - /** - * required string name = 1; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } - } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } - /** - * required string name = 1; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + public static com.baeldung.protobuf.AddressBookProtos.Person parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } - public static final int ID_FIELD_NUMBER = 2; - private int id_; + public static com.baeldung.protobuf.AddressBookProtos.Person parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } - /** - * required int32 id = 2; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.baeldung.protobuf.AddressBookProtos.Person prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } - /** - * required int32 id = 2; - */ - public int getId() { - return id_; - } + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code protobuf.Person} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:protobuf.Person) + com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.baeldung.protobuf.AddressBookProtos.Person.class, com.baeldung.protobuf.AddressBookProtos.Person.Builder.class); + } + + // Construct using com.baeldung.protobuf.AddressBookProtos.Person.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + name_ = ""; + id_ = 0; + email_ = ""; + numbers_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_descriptor; + } + + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.Person getDefaultInstanceForType() { + return com.baeldung.protobuf.AddressBookProtos.Person.getDefaultInstance(); + } + + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.Person build() { + com.baeldung.protobuf.AddressBookProtos.Person result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.Person buildPartial() { + com.baeldung.protobuf.AddressBookProtos.Person result = new com.baeldung.protobuf.AddressBookProtos.Person(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.baeldung.protobuf.AddressBookProtos.Person result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.id_ = id_; + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.email_ = email_; + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + numbers_.makeImmutable(); + result.numbers_ = numbers_; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.baeldung.protobuf.AddressBookProtos.Person) { + return mergeFrom((com.baeldung.protobuf.AddressBookProtos.Person)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.baeldung.protobuf.AddressBookProtos.Person other) { + if (other == com.baeldung.protobuf.AddressBookProtos.Person.getDefaultInstance()) return this; + if (other.hasName()) { + name_ = other.name_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasId()) { + setId(other.getId()); + } + if (other.hasEmail()) { + email_ = other.email_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.numbers_.isEmpty()) { + if (numbers_.isEmpty()) { + numbers_ = other.numbers_; + bitField0_ |= 0x00000008; + } else { + ensureNumbersIsMutable(); + numbers_.addAll(other.numbers_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + if (!hasName()) { + return false; + } + if (!hasId()) { + return false; + } + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + name_ = input.readBytes(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + id_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + email_ = input.readBytes(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + com.google.protobuf.ByteString bs = input.readBytes(); + ensureNumbersIsMutable(); + numbers_.add(bs); + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object name_ = ""; + /** + * required string name = 1; + * @return Whether the name field is set. + */ + public boolean hasName() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * required string name = 1; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + name_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * required string name = 1; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * required string name = 1; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * required string name = 1; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * required string name = 1; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int id_ ; + /** + * required int32 id = 2; + * @return Whether the id field is set. + */ + @java.lang.Override + public boolean hasId() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * required int32 id = 2; + * @return The id. + */ + @java.lang.Override + public int getId() { + return id_; + } + /** + * required int32 id = 2; + * @param value The id to set. + * @return This builder for chaining. + */ + public Builder setId(int value) { + + id_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * required int32 id = 2; + * @return This builder for chaining. + */ + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000002); + id_ = 0; + onChanged(); + return this; + } + + private java.lang.Object email_ = ""; + /** + * optional string email = 3; + * @return Whether the email field is set. + */ + public boolean hasEmail() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * optional string email = 3; + * @return The email. + */ + public java.lang.String getEmail() { + java.lang.Object ref = email_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (bs.isValidUtf8()) { + email_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * optional string email = 3; + * @return The bytes for email. + */ + public com.google.protobuf.ByteString + getEmailBytes() { + java.lang.Object ref = email_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + email_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * optional string email = 3; + * @param value The email to set. + * @return This builder for chaining. + */ + public Builder setEmail( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + email_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * optional string email = 3; + * @return This builder for chaining. + */ + public Builder clearEmail() { + email_ = getDefaultInstance().getEmail(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * optional string email = 3; + * @param value The bytes for email to set. + * @return This builder for chaining. + */ + public Builder setEmailBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + email_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList numbers_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureNumbersIsMutable() { + if (!numbers_.isModifiable()) { + numbers_ = new com.google.protobuf.LazyStringArrayList(numbers_); + } + bitField0_ |= 0x00000008; + } + /** + * repeated string numbers = 4; + * @return A list containing the numbers. + */ + public com.google.protobuf.ProtocolStringList + getNumbersList() { + numbers_.makeImmutable(); + return numbers_; + } + /** + * repeated string numbers = 4; + * @return The count of numbers. + */ + public int getNumbersCount() { + return numbers_.size(); + } + /** + * repeated string numbers = 4; + * @param index The index of the element to return. + * @return The numbers at the given index. + */ + public java.lang.String getNumbers(int index) { + return numbers_.get(index); + } + /** + * repeated string numbers = 4; + * @param index The index of the value to return. + * @return The bytes of the numbers at the given index. + */ + public com.google.protobuf.ByteString + getNumbersBytes(int index) { + return numbers_.getByteString(index); + } + /** + * repeated string numbers = 4; + * @param index The index to set the value at. + * @param value The numbers to set. + * @return This builder for chaining. + */ + public Builder setNumbers( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureNumbersIsMutable(); + numbers_.set(index, value); + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * repeated string numbers = 4; + * @param value The numbers to add. + * @return This builder for chaining. + */ + public Builder addNumbers( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureNumbersIsMutable(); + numbers_.add(value); + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * repeated string numbers = 4; + * @param values The numbers to add. + * @return This builder for chaining. + */ + public Builder addAllNumbers( + java.lang.Iterable values) { + ensureNumbersIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, numbers_); + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * repeated string numbers = 4; + * @return This builder for chaining. + */ + public Builder clearNumbers() { + numbers_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008);; + onChanged(); + return this; + } + /** + * repeated string numbers = 4; + * @param value The bytes of the numbers to add. + * @return This builder for chaining. + */ + public Builder addNumbersBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + ensureNumbersIsMutable(); + numbers_.add(value); + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:protobuf.Person) + } - public static final int EMAIL_FIELD_NUMBER = 3; - private volatile java.lang.Object email_; + // @@protoc_insertion_point(class_scope:protobuf.Person) + private static final com.baeldung.protobuf.AddressBookProtos.Person DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.baeldung.protobuf.AddressBookProtos.Person(); + } - /** - * optional string email = 3; - */ - public boolean hasEmail() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } + public static com.baeldung.protobuf.AddressBookProtos.Person getDefaultInstance() { + return DEFAULT_INSTANCE; + } - /** - * optional string email = 3; - */ - public java.lang.String getEmail() { - java.lang.Object ref = email_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - email_ = s; - } - return s; - } - } + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Person parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } - /** - * optional string email = 3; - */ - public com.google.protobuf.ByteString - getEmailBytes() { - java.lang.Object ref = email_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - email_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } - public static final int NUMBERS_FIELD_NUMBER = 4; - private com.google.protobuf.LazyStringList numbers_; + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.Person getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } - /** - * repeated string numbers = 4; - */ - public com.google.protobuf.ProtocolStringList - getNumbersList() { - return numbers_; - } + } - /** - * repeated string numbers = 4; - */ - public int getNumbersCount() { - return numbers_.size(); - } + public interface AddressBookOrBuilder extends + // @@protoc_insertion_point(interface_extends:protobuf.AddressBook) + com.google.protobuf.MessageOrBuilder { - /** - * repeated string numbers = 4; - */ - public java.lang.String getNumbers(int index) { - return numbers_.get(index); - } + /** + * repeated .protobuf.Person people = 1; + */ + java.util.List + getPeopleList(); + /** + * repeated .protobuf.Person people = 1; + */ + com.baeldung.protobuf.AddressBookProtos.Person getPeople(int index); + /** + * repeated .protobuf.Person people = 1; + */ + int getPeopleCount(); + /** + * repeated .protobuf.Person people = 1; + */ + java.util.List + getPeopleOrBuilderList(); + /** + * repeated .protobuf.Person people = 1; + */ + com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder getPeopleOrBuilder( + int index); + } + /** + * Protobuf type {@code protobuf.AddressBook} + */ + public static final class AddressBook extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:protobuf.AddressBook) + AddressBookOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 30, + /* patch= */ 2, + /* suffix= */ "", + AddressBook.class.getName()); + } + // Use AddressBook.newBuilder() to construct. + private AddressBook(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AddressBook() { + people_ = java.util.Collections.emptyList(); + } - /** - * repeated string numbers = 4; - */ - public com.google.protobuf.ByteString - getNumbersBytes(int index) { - return numbers_.getByteString(index); - } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_descriptor; + } - private byte memoizedIsInitialized = -1; + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.baeldung.protobuf.AddressBookProtos.AddressBook.class, com.baeldung.protobuf.AddressBookProtos.AddressBook.Builder.class); + } - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; + public static final int PEOPLE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List people_; + /** + * repeated .protobuf.Person people = 1; + */ + @java.lang.Override + public java.util.List getPeopleList() { + return people_; + } + /** + * repeated .protobuf.Person people = 1; + */ + @java.lang.Override + public java.util.List + getPeopleOrBuilderList() { + return people_; + } + /** + * repeated .protobuf.Person people = 1; + */ + @java.lang.Override + public int getPeopleCount() { + return people_.size(); + } + /** + * repeated .protobuf.Person people = 1; + */ + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.Person getPeople(int index) { + return people_.get(index); + } + /** + * repeated .protobuf.Person people = 1; + */ + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder getPeopleOrBuilder( + int index) { + return people_.get(index); + } - if (!hasName()) { - memoizedIsInitialized = 0; - return false; - } - if (!hasId()) { - memoizedIsInitialized = 0; - return false; - } - memoizedIsInitialized = 1; - return true; - } + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + for (int i = 0; i < getPeopleCount(); i++) { + if (!getPeople(i).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, name_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - output.writeInt32(2, id_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, email_); - } - for (int i = 0; i < numbers_.size(); i++) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, numbers_.getRaw(i)); - } - unknownFields.writeTo(output); - } + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < people_.size(); i++) { + output.writeMessage(1, people_.get(i)); + } + getUnknownFields().writeTo(output); + } - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < people_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, people_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } - size = 0; - if (((bitField0_ & 0x00000001) == 0x00000001)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); - } - if (((bitField0_ & 0x00000002) == 0x00000002)) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, id_); - } - if (((bitField0_ & 0x00000004) == 0x00000004)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, email_); - } - { - int dataSize = 0; - for (int i = 0; i < numbers_.size(); i++) { - dataSize += computeStringSizeNoTag(numbers_.getRaw(i)); - } - size += dataSize; - size += 1 * getNumbersList().size(); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.baeldung.protobuf.AddressBookProtos.AddressBook)) { + return super.equals(obj); + } + com.baeldung.protobuf.AddressBookProtos.AddressBook other = (com.baeldung.protobuf.AddressBookProtos.AddressBook) obj; + + if (!getPeopleList() + .equals(other.getPeopleList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } - private static final long serialVersionUID = 0L; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getPeopleCount() > 0) { + hash = (37 * hash) + PEOPLE_FIELD_NUMBER; + hash = (53 * hash) + getPeopleList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof com.baeldung.protobuf.AddressBookProtos.Person)) { - return super.equals(obj); - } - com.baeldung.protobuf.AddressBookProtos.Person other = (com.baeldung.protobuf.AddressBookProtos.Person) obj; + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } - boolean result = true; - result = result && (hasName() == other.hasName()); - if (hasName()) { - result = result && getName() - .equals(other.getName()); - } - result = result && (hasId() == other.hasId()); - if (hasId()) { - result = result && (getId() - == other.getId()); - } - result = result && (hasEmail() == other.hasEmail()); - if (hasEmail()) { - result = result && getEmail() - .equals(other.getEmail()); - } - result = result && getNumbersList() - .equals(other.getNumbersList()); - result = result && unknownFields.equals(other.unknownFields); - return result; - } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - if (hasName()) { - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - } - if (hasId()) { - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getId(); - } - if (hasEmail()) { - hash = (37 * hash) + EMAIL_FIELD_NUMBER; - hash = (53 * hash) + getEmail().hashCode(); - } - if (getNumbersCount() > 0) { - hash = (37 * hash) + NUMBERS_FIELD_NUMBER; - hash = (53 * hash) + getNumbersList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } - public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.baeldung.protobuf.AddressBookProtos.AddressBook prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } - public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code protobuf.AddressBook} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:protobuf.AddressBook) + com.baeldung.protobuf.AddressBookProtos.AddressBookOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.baeldung.protobuf.AddressBookProtos.AddressBook.class, com.baeldung.protobuf.AddressBookProtos.AddressBook.Builder.class); + } + + // Construct using com.baeldung.protobuf.AddressBookProtos.AddressBook.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (peopleBuilder_ == null) { + people_ = java.util.Collections.emptyList(); + } else { + people_ = null; + peopleBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_descriptor; + } + + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.AddressBook getDefaultInstanceForType() { + return com.baeldung.protobuf.AddressBookProtos.AddressBook.getDefaultInstance(); + } + + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.AddressBook build() { + com.baeldung.protobuf.AddressBookProtos.AddressBook result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.AddressBook buildPartial() { + com.baeldung.protobuf.AddressBookProtos.AddressBook result = new com.baeldung.protobuf.AddressBookProtos.AddressBook(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.baeldung.protobuf.AddressBookProtos.AddressBook result) { + if (peopleBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + people_ = java.util.Collections.unmodifiableList(people_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.people_ = people_; + } else { + result.people_ = peopleBuilder_.build(); + } + } + + private void buildPartial0(com.baeldung.protobuf.AddressBookProtos.AddressBook result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.baeldung.protobuf.AddressBookProtos.AddressBook) { + return mergeFrom((com.baeldung.protobuf.AddressBookProtos.AddressBook)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.baeldung.protobuf.AddressBookProtos.AddressBook other) { + if (other == com.baeldung.protobuf.AddressBookProtos.AddressBook.getDefaultInstance()) return this; + if (peopleBuilder_ == null) { + if (!other.people_.isEmpty()) { + if (people_.isEmpty()) { + people_ = other.people_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensurePeopleIsMutable(); + people_.addAll(other.people_); + } + onChanged(); + } + } else { + if (!other.people_.isEmpty()) { + if (peopleBuilder_.isEmpty()) { + peopleBuilder_.dispose(); + peopleBuilder_ = null; + people_ = other.people_; + bitField0_ = (bitField0_ & ~0x00000001); + peopleBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + internalGetPeopleFieldBuilder() : null; + } else { + peopleBuilder_.addAllMessages(other.people_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + for (int i = 0; i < getPeopleCount(); i++) { + if (!getPeople(i).isInitialized()) { + return false; + } + } + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.baeldung.protobuf.AddressBookProtos.Person m = + input.readMessage( + com.baeldung.protobuf.AddressBookProtos.Person.parser(), + extensionRegistry); + if (peopleBuilder_ == null) { + ensurePeopleIsMutable(); + people_.add(m); + } else { + peopleBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List people_ = + java.util.Collections.emptyList(); + private void ensurePeopleIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + people_ = new java.util.ArrayList(people_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.baeldung.protobuf.AddressBookProtos.Person, com.baeldung.protobuf.AddressBookProtos.Person.Builder, com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder> peopleBuilder_; + + /** + * repeated .protobuf.Person people = 1; + */ + public java.util.List getPeopleList() { + if (peopleBuilder_ == null) { + return java.util.Collections.unmodifiableList(people_); + } else { + return peopleBuilder_.getMessageList(); + } + } + /** + * repeated .protobuf.Person people = 1; + */ + public int getPeopleCount() { + if (peopleBuilder_ == null) { + return people_.size(); + } else { + return peopleBuilder_.getCount(); + } + } + /** + * repeated .protobuf.Person people = 1; + */ + public com.baeldung.protobuf.AddressBookProtos.Person getPeople(int index) { + if (peopleBuilder_ == null) { + return people_.get(index); + } else { + return peopleBuilder_.getMessage(index); + } + } + /** + * repeated .protobuf.Person people = 1; + */ + public Builder setPeople( + int index, com.baeldung.protobuf.AddressBookProtos.Person value) { + if (peopleBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePeopleIsMutable(); + people_.set(index, value); + onChanged(); + } else { + peopleBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .protobuf.Person people = 1; + */ + public Builder setPeople( + int index, com.baeldung.protobuf.AddressBookProtos.Person.Builder builderForValue) { + if (peopleBuilder_ == null) { + ensurePeopleIsMutable(); + people_.set(index, builderForValue.build()); + onChanged(); + } else { + peopleBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .protobuf.Person people = 1; + */ + public Builder addPeople(com.baeldung.protobuf.AddressBookProtos.Person value) { + if (peopleBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePeopleIsMutable(); + people_.add(value); + onChanged(); + } else { + peopleBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .protobuf.Person people = 1; + */ + public Builder addPeople( + int index, com.baeldung.protobuf.AddressBookProtos.Person value) { + if (peopleBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePeopleIsMutable(); + people_.add(index, value); + onChanged(); + } else { + peopleBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .protobuf.Person people = 1; + */ + public Builder addPeople( + com.baeldung.protobuf.AddressBookProtos.Person.Builder builderForValue) { + if (peopleBuilder_ == null) { + ensurePeopleIsMutable(); + people_.add(builderForValue.build()); + onChanged(); + } else { + peopleBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .protobuf.Person people = 1; + */ + public Builder addPeople( + int index, com.baeldung.protobuf.AddressBookProtos.Person.Builder builderForValue) { + if (peopleBuilder_ == null) { + ensurePeopleIsMutable(); + people_.add(index, builderForValue.build()); + onChanged(); + } else { + peopleBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .protobuf.Person people = 1; + */ + public Builder addAllPeople( + java.lang.Iterable values) { + if (peopleBuilder_ == null) { + ensurePeopleIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, people_); + onChanged(); + } else { + peopleBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .protobuf.Person people = 1; + */ + public Builder clearPeople() { + if (peopleBuilder_ == null) { + people_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + peopleBuilder_.clear(); + } + return this; + } + /** + * repeated .protobuf.Person people = 1; + */ + public Builder removePeople(int index) { + if (peopleBuilder_ == null) { + ensurePeopleIsMutable(); + people_.remove(index); + onChanged(); + } else { + peopleBuilder_.remove(index); + } + return this; + } + /** + * repeated .protobuf.Person people = 1; + */ + public com.baeldung.protobuf.AddressBookProtos.Person.Builder getPeopleBuilder( + int index) { + return internalGetPeopleFieldBuilder().getBuilder(index); + } + /** + * repeated .protobuf.Person people = 1; + */ + public com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder getPeopleOrBuilder( + int index) { + if (peopleBuilder_ == null) { + return people_.get(index); } else { + return peopleBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .protobuf.Person people = 1; + */ + public java.util.List + getPeopleOrBuilderList() { + if (peopleBuilder_ != null) { + return peopleBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(people_); + } + } + /** + * repeated .protobuf.Person people = 1; + */ + public com.baeldung.protobuf.AddressBookProtos.Person.Builder addPeopleBuilder() { + return internalGetPeopleFieldBuilder().addBuilder( + com.baeldung.protobuf.AddressBookProtos.Person.getDefaultInstance()); + } + /** + * repeated .protobuf.Person people = 1; + */ + public com.baeldung.protobuf.AddressBookProtos.Person.Builder addPeopleBuilder( + int index) { + return internalGetPeopleFieldBuilder().addBuilder( + index, com.baeldung.protobuf.AddressBookProtos.Person.getDefaultInstance()); + } + /** + * repeated .protobuf.Person people = 1; + */ + public java.util.List + getPeopleBuilderList() { + return internalGetPeopleFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.baeldung.protobuf.AddressBookProtos.Person, com.baeldung.protobuf.AddressBookProtos.Person.Builder, com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder> + internalGetPeopleFieldBuilder() { + if (peopleBuilder_ == null) { + peopleBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.baeldung.protobuf.AddressBookProtos.Person, com.baeldung.protobuf.AddressBookProtos.Person.Builder, com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder>( + people_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + people_ = null; + } + return peopleBuilder_; + } + + // @@protoc_insertion_point(builder_scope:protobuf.AddressBook) + } - public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } + // @@protoc_insertion_point(class_scope:protobuf.AddressBook) + private static final com.baeldung.protobuf.AddressBookProtos.AddressBook DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.baeldung.protobuf.AddressBookProtos.AddressBook(); + } - public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } + public static com.baeldung.protobuf.AddressBookProtos.AddressBook getDefaultInstance() { + return DEFAULT_INSTANCE; + } - public static com.baeldung.protobuf.AddressBookProtos.Person parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - - public static com.baeldung.protobuf.AddressBookProtos.Person 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 com.baeldung.protobuf.AddressBookProtos.Person parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static com.baeldung.protobuf.AddressBookProtos.Person 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 com.baeldung.protobuf.AddressBookProtos.Person parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - - public static com.baeldung.protobuf.AddressBookProtos.Person 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(com.baeldung.protobuf.AddressBookProtos.Person prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - - /** - * Protobuf type {@code protobuf.Person} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:protobuf.Person) - com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_descriptor; - } - - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.baeldung.protobuf.AddressBookProtos.Person.class, com.baeldung.protobuf.AddressBookProtos.Person.Builder.class); - } - - // Construct using com.baeldung.protobuf.AddressBookProtos.Person.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - } - } - - public Builder clear() { - super.clear(); - name_ = ""; - bitField0_ = (bitField0_ & ~0x00000001); - id_ = 0; - bitField0_ = (bitField0_ & ~0x00000002); - email_ = ""; - bitField0_ = (bitField0_ & ~0x00000004); - numbers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - return this; - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_Person_descriptor; - } - - public com.baeldung.protobuf.AddressBookProtos.Person getDefaultInstanceForType() { - return com.baeldung.protobuf.AddressBookProtos.Person.getDefaultInstance(); - } - - public com.baeldung.protobuf.AddressBookProtos.Person build() { - com.baeldung.protobuf.AddressBookProtos.Person result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public com.baeldung.protobuf.AddressBookProtos.Person buildPartial() { - com.baeldung.protobuf.AddressBookProtos.Person result = new com.baeldung.protobuf.AddressBookProtos.Person(this); - int from_bitField0_ = bitField0_; - int to_bitField0_ = 0; - if (((from_bitField0_ & 0x00000001) == 0x00000001)) { - to_bitField0_ |= 0x00000001; - } - result.name_ = name_; - if (((from_bitField0_ & 0x00000002) == 0x00000002)) { - to_bitField0_ |= 0x00000002; - } - result.id_ = id_; - if (((from_bitField0_ & 0x00000004) == 0x00000004)) { - to_bitField0_ |= 0x00000004; - } - result.email_ = email_; - if (((bitField0_ & 0x00000008) == 0x00000008)) { - numbers_ = numbers_.getUnmodifiableView(); - bitField0_ = (bitField0_ & ~0x00000008); - } - result.numbers_ = numbers_; - 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 com.baeldung.protobuf.AddressBookProtos.Person) { - return mergeFrom((com.baeldung.protobuf.AddressBookProtos.Person) other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(com.baeldung.protobuf.AddressBookProtos.Person other) { - if (other == com.baeldung.protobuf.AddressBookProtos.Person.getDefaultInstance()) return this; - if (other.hasName()) { - bitField0_ |= 0x00000001; - name_ = other.name_; - onChanged(); - } - if (other.hasId()) { - setId(other.getId()); - } - if (other.hasEmail()) { - bitField0_ |= 0x00000004; - email_ = other.email_; - onChanged(); - } - if (!other.numbers_.isEmpty()) { - if (numbers_.isEmpty()) { - numbers_ = other.numbers_; - bitField0_ = (bitField0_ & ~0x00000008); - } else { - ensureNumbersIsMutable(); - numbers_.addAll(other.numbers_); - } - onChanged(); - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - public final boolean isInitialized() { - if (!hasName()) { - return false; - } - if (!hasId()) { - return false; - } - return true; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - com.baeldung.protobuf.AddressBookProtos.Person parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (com.baeldung.protobuf.AddressBookProtos.Person) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private int bitField0_; - - private java.lang.Object name_ = ""; - - /** - * required string name = 1; - */ - public boolean hasName() { - return ((bitField0_ & 0x00000001) == 0x00000001); - } - - /** - * required string name = 1; - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - name_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } - } - - /** - * required string name = 1; - */ - public com.google.protobuf.ByteString - getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - /** - * required string name = 1; - */ - public Builder setName( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - onChanged(); - return this; - } - - /** - * required string name = 1; - */ - public Builder clearName() { - bitField0_ = (bitField0_ & ~0x00000001); - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - - /** - * required string name = 1; - */ - public Builder setNameBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000001; - name_ = value; - onChanged(); - return this; - } - - private int id_; - - /** - * required int32 id = 2; - */ - public boolean hasId() { - return ((bitField0_ & 0x00000002) == 0x00000002); - } - - /** - * required int32 id = 2; - */ - public int getId() { - return id_; - } - - /** - * required int32 id = 2; - */ - public Builder setId(int value) { - bitField0_ |= 0x00000002; - id_ = value; - onChanged(); - return this; - } - - /** - * required int32 id = 2; - */ - public Builder clearId() { - bitField0_ = (bitField0_ & ~0x00000002); - id_ = 0; - onChanged(); - return this; - } - - private java.lang.Object email_ = ""; - - /** - * optional string email = 3; - */ - public boolean hasEmail() { - return ((bitField0_ & 0x00000004) == 0x00000004); - } - - /** - * optional string email = 3; - */ - public java.lang.String getEmail() { - java.lang.Object ref = email_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - if (bs.isValidUtf8()) { - email_ = s; - } - return s; - } else { - return (java.lang.String) ref; - } - } - - /** - * optional string email = 3; - */ - public com.google.protobuf.ByteString - getEmailBytes() { - java.lang.Object ref = email_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - email_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - /** - * optional string email = 3; - */ - public Builder setEmail( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - email_ = value; - onChanged(); - return this; - } - - /** - * optional string email = 3; - */ - public Builder clearEmail() { - bitField0_ = (bitField0_ & ~0x00000004); - email_ = getDefaultInstance().getEmail(); - onChanged(); - return this; - } - - /** - * optional string email = 3; - */ - public Builder setEmailBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - bitField0_ |= 0x00000004; - email_ = value; - onChanged(); - return this; - } - - private com.google.protobuf.LazyStringList numbers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - - private void ensureNumbersIsMutable() { - if (!((bitField0_ & 0x00000008) == 0x00000008)) { - numbers_ = new com.google.protobuf.LazyStringArrayList(numbers_); - bitField0_ |= 0x00000008; - } - } - - /** - * repeated string numbers = 4; - */ - public com.google.protobuf.ProtocolStringList - getNumbersList() { - return numbers_.getUnmodifiableView(); - } - - /** - * repeated string numbers = 4; - */ - public int getNumbersCount() { - return numbers_.size(); - } - - /** - * repeated string numbers = 4; - */ - public java.lang.String getNumbers(int index) { - return numbers_.get(index); - } - - /** - * repeated string numbers = 4; - */ - public com.google.protobuf.ByteString - getNumbersBytes(int index) { - return numbers_.getByteString(index); - } - - /** - * repeated string numbers = 4; - */ - public Builder setNumbers( - int index, java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureNumbersIsMutable(); - numbers_.set(index, value); - onChanged(); - return this; - } - - /** - * repeated string numbers = 4; - */ - public Builder addNumbers( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ensureNumbersIsMutable(); - numbers_.add(value); - onChanged(); - return this; - } - - /** - * repeated string numbers = 4; - */ - public Builder addAllNumbers( - java.lang.Iterable values) { - ensureNumbersIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, numbers_); - onChanged(); - return this; - } - - /** - * repeated string numbers = 4; - */ - public Builder clearNumbers() { - numbers_ = com.google.protobuf.LazyStringArrayList.EMPTY; - bitField0_ = (bitField0_ & ~0x00000008); - onChanged(); - return this; - } - - /** - * repeated string numbers = 4; - */ - public Builder addNumbersBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - ensureNumbersIsMutable(); - numbers_.add(value); - 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:protobuf.Person) - } - - // @@protoc_insertion_point(class_scope:protobuf.Person) - private static final com.baeldung.protobuf.AddressBookProtos.Person DEFAULT_INSTANCE; - - static { - DEFAULT_INSTANCE = new com.baeldung.protobuf.AddressBookProtos.Person(); - } - - public static com.baeldung.protobuf.AddressBookProtos.Person getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - @java.lang.Deprecated - public static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public Person parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Person(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public com.baeldung.protobuf.AddressBookProtos.Person getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface AddressBookOrBuilder extends - // @@protoc_insertion_point(interface_extends:protobuf.AddressBook) - com.google.protobuf.MessageOrBuilder { - - /** - * repeated .protobuf.Person people = 1; - */ - java.util.List - getPeopleList(); - - /** - * repeated .protobuf.Person people = 1; - */ - com.baeldung.protobuf.AddressBookProtos.Person getPeople(int index); - - /** - * repeated .protobuf.Person people = 1; - */ - int getPeopleCount(); - - /** - * repeated .protobuf.Person people = 1; - */ - java.util.List - getPeopleOrBuilderList(); - - /** - * repeated .protobuf.Person people = 1; - */ - com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder getPeopleOrBuilder( - int index); - } - - /** - * Protobuf type {@code protobuf.AddressBook} - */ - public static final class AddressBook extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:protobuf.AddressBook) - AddressBookOrBuilder { - // Use AddressBook.newBuilder() to construct. - private AddressBook(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - - private AddressBook() { - people_ = java.util.Collections.emptyList(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - - private AddressBook( - 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: { - if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { - people_ = new java.util.ArrayList(); - mutable_bitField0_ |= 0x00000001; - } - people_.add( - input.readMessage(com.baeldung.protobuf.AddressBookProtos.Person.PARSER, extensionRegistry)); - 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_ & 0x00000001) == 0x00000001)) { - people_ = java.util.Collections.unmodifiableList(people_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_descriptor; - } - - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.baeldung.protobuf.AddressBookProtos.AddressBook.class, com.baeldung.protobuf.AddressBookProtos.AddressBook.Builder.class); - } - - public static final int PEOPLE_FIELD_NUMBER = 1; - private java.util.List people_; - - /** - * repeated .protobuf.Person people = 1; - */ - public java.util.List getPeopleList() { - return people_; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public java.util.List - getPeopleOrBuilderList() { - return people_; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public int getPeopleCount() { - return people_.size(); - } - - /** - * repeated .protobuf.Person people = 1; - */ - public com.baeldung.protobuf.AddressBookProtos.Person getPeople(int index) { - return people_.get(index); - } - - /** - * repeated .protobuf.Person people = 1; - */ - public com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder getPeopleOrBuilder( - int index) { - return people_.get(index); - } - - 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 < getPeopleCount(); i++) { - if (!getPeople(i).isInitialized()) { - memoizedIsInitialized = 0; - return false; - } - } - memoizedIsInitialized = 1; - return true; - } - - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - for (int i = 0; i < people_.size(); i++) { - output.writeMessage(1, people_.get(i)); - } - unknownFields.writeTo(output); - } - - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - for (int i = 0; i < people_.size(); i++) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, people_.get(i)); - } - size += unknownFields.getSerializedSize(); - memoizedSize = size; - return size; - } - - private static final long serialVersionUID = 0L; - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof com.baeldung.protobuf.AddressBookProtos.AddressBook)) { - return super.equals(obj); - } - com.baeldung.protobuf.AddressBookProtos.AddressBook other = (com.baeldung.protobuf.AddressBookProtos.AddressBook) obj; - - boolean result = true; - result = result && getPeopleList() - .equals(other.getPeopleList()); - result = result && unknownFields.equals(other.unknownFields); - return result; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptorForType().hashCode(); - if (getPeopleCount() > 0) { - hash = (37 * hash) + PEOPLE_FIELD_NUMBER; - hash = (53 * hash) + getPeopleList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - - public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - - public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - - public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - - public static com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - - public static com.baeldung.protobuf.AddressBookProtos.AddressBook 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 com.baeldung.protobuf.AddressBookProtos.AddressBook parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - - public static com.baeldung.protobuf.AddressBookProtos.AddressBook 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 com.baeldung.protobuf.AddressBookProtos.AddressBook parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - - public static com.baeldung.protobuf.AddressBookProtos.AddressBook 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(com.baeldung.protobuf.AddressBookProtos.AddressBook prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - - public Builder toBuilder() { - return this == DEFAULT_INSTANCE - ? new Builder() : new Builder().mergeFrom(this); - } - - @java.lang.Override - protected Builder newBuilderForType( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - Builder builder = new Builder(parent); - return builder; - } - - /** - * Protobuf type {@code protobuf.AddressBook} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:protobuf.AddressBook) - com.baeldung.protobuf.AddressBookProtos.AddressBookOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_descriptor; - } - - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_fieldAccessorTable - .ensureFieldAccessorsInitialized( - com.baeldung.protobuf.AddressBookProtos.AddressBook.class, com.baeldung.protobuf.AddressBookProtos.AddressBook.Builder.class); - } - - // Construct using com.baeldung.protobuf.AddressBookProtos.AddressBook.newBuilder() - private Builder() { - maybeForceBuilderInitialization(); - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3 - .alwaysUseFieldBuilders) { - getPeopleFieldBuilder(); - } - } - - public Builder clear() { - super.clear(); - if (peopleBuilder_ == null) { - people_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - peopleBuilder_.clear(); - } - return this; - } - - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return com.baeldung.protobuf.AddressBookProtos.internal_static_protobuf_AddressBook_descriptor; - } - - public com.baeldung.protobuf.AddressBookProtos.AddressBook getDefaultInstanceForType() { - return com.baeldung.protobuf.AddressBookProtos.AddressBook.getDefaultInstance(); - } - - public com.baeldung.protobuf.AddressBookProtos.AddressBook build() { - com.baeldung.protobuf.AddressBookProtos.AddressBook result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - public com.baeldung.protobuf.AddressBookProtos.AddressBook buildPartial() { - com.baeldung.protobuf.AddressBookProtos.AddressBook result = new com.baeldung.protobuf.AddressBookProtos.AddressBook(this); - int from_bitField0_ = bitField0_; - if (peopleBuilder_ == null) { - if (((bitField0_ & 0x00000001) == 0x00000001)) { - people_ = java.util.Collections.unmodifiableList(people_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.people_ = people_; - } else { - result.people_ = peopleBuilder_.build(); - } - 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 com.baeldung.protobuf.AddressBookProtos.AddressBook) { - return mergeFrom((com.baeldung.protobuf.AddressBookProtos.AddressBook) other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(com.baeldung.protobuf.AddressBookProtos.AddressBook other) { - if (other == com.baeldung.protobuf.AddressBookProtos.AddressBook.getDefaultInstance()) return this; - if (peopleBuilder_ == null) { - if (!other.people_.isEmpty()) { - if (people_.isEmpty()) { - people_ = other.people_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensurePeopleIsMutable(); - people_.addAll(other.people_); - } - onChanged(); - } - } else { - if (!other.people_.isEmpty()) { - if (peopleBuilder_.isEmpty()) { - peopleBuilder_.dispose(); - peopleBuilder_ = null; - people_ = other.people_; - bitField0_ = (bitField0_ & ~0x00000001); - peopleBuilder_ = - com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? - getPeopleFieldBuilder() : null; - } else { - peopleBuilder_.addAllMessages(other.people_); - } - } - } - this.mergeUnknownFields(other.unknownFields); - onChanged(); - return this; - } - - public final boolean isInitialized() { - for (int i = 0; i < getPeopleCount(); i++) { - if (!getPeople(i).isInitialized()) { - return false; - } - } - return true; - } - - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - com.baeldung.protobuf.AddressBookProtos.AddressBook parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (com.baeldung.protobuf.AddressBookProtos.AddressBook) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private int bitField0_; - - private java.util.List people_ = - java.util.Collections.emptyList(); - - private void ensurePeopleIsMutable() { - if (!((bitField0_ & 0x00000001) == 0x00000001)) { - people_ = new java.util.ArrayList(people_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - com.baeldung.protobuf.AddressBookProtos.Person, com.baeldung.protobuf.AddressBookProtos.Person.Builder, com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder> peopleBuilder_; - - /** - * repeated .protobuf.Person people = 1; - */ - public java.util.List getPeopleList() { - if (peopleBuilder_ == null) { - return java.util.Collections.unmodifiableList(people_); - } else { - return peopleBuilder_.getMessageList(); - } - } - - /** - * repeated .protobuf.Person people = 1; - */ - public int getPeopleCount() { - if (peopleBuilder_ == null) { - return people_.size(); - } else { - return peopleBuilder_.getCount(); - } - } - - /** - * repeated .protobuf.Person people = 1; - */ - public com.baeldung.protobuf.AddressBookProtos.Person getPeople(int index) { - if (peopleBuilder_ == null) { - return people_.get(index); - } else { - return peopleBuilder_.getMessage(index); - } - } - - /** - * repeated .protobuf.Person people = 1; - */ - public Builder setPeople( - int index, com.baeldung.protobuf.AddressBookProtos.Person value) { - if (peopleBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensurePeopleIsMutable(); - people_.set(index, value); - onChanged(); - } else { - peopleBuilder_.setMessage(index, value); - } - return this; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public Builder setPeople( - int index, com.baeldung.protobuf.AddressBookProtos.Person.Builder builderForValue) { - if (peopleBuilder_ == null) { - ensurePeopleIsMutable(); - people_.set(index, builderForValue.build()); - onChanged(); - } else { - peopleBuilder_.setMessage(index, builderForValue.build()); - } - return this; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public Builder addPeople(com.baeldung.protobuf.AddressBookProtos.Person value) { - if (peopleBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensurePeopleIsMutable(); - people_.add(value); - onChanged(); - } else { - peopleBuilder_.addMessage(value); - } - return this; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public Builder addPeople( - int index, com.baeldung.protobuf.AddressBookProtos.Person value) { - if (peopleBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensurePeopleIsMutable(); - people_.add(index, value); - onChanged(); - } else { - peopleBuilder_.addMessage(index, value); - } - return this; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public Builder addPeople( - com.baeldung.protobuf.AddressBookProtos.Person.Builder builderForValue) { - if (peopleBuilder_ == null) { - ensurePeopleIsMutable(); - people_.add(builderForValue.build()); - onChanged(); - } else { - peopleBuilder_.addMessage(builderForValue.build()); - } - return this; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public Builder addPeople( - int index, com.baeldung.protobuf.AddressBookProtos.Person.Builder builderForValue) { - if (peopleBuilder_ == null) { - ensurePeopleIsMutable(); - people_.add(index, builderForValue.build()); - onChanged(); - } else { - peopleBuilder_.addMessage(index, builderForValue.build()); - } - return this; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public Builder addAllPeople( - java.lang.Iterable values) { - if (peopleBuilder_ == null) { - ensurePeopleIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll( - values, people_); - onChanged(); - } else { - peopleBuilder_.addAllMessages(values); - } - return this; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public Builder clearPeople() { - if (peopleBuilder_ == null) { - people_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - peopleBuilder_.clear(); - } - return this; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public Builder removePeople(int index) { - if (peopleBuilder_ == null) { - ensurePeopleIsMutable(); - people_.remove(index); - onChanged(); - } else { - peopleBuilder_.remove(index); - } - return this; - } - - /** - * repeated .protobuf.Person people = 1; - */ - public com.baeldung.protobuf.AddressBookProtos.Person.Builder getPeopleBuilder( - int index) { - return getPeopleFieldBuilder().getBuilder(index); - } - - /** - * repeated .protobuf.Person people = 1; - */ - public com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder getPeopleOrBuilder( - int index) { - if (peopleBuilder_ == null) { - return people_.get(index); - } else { - return peopleBuilder_.getMessageOrBuilder(index); - } - } - - /** - * repeated .protobuf.Person people = 1; - */ - public java.util.List - getPeopleOrBuilderList() { - if (peopleBuilder_ != null) { - return peopleBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(people_); - } - } - - /** - * repeated .protobuf.Person people = 1; - */ - public com.baeldung.protobuf.AddressBookProtos.Person.Builder addPeopleBuilder() { - return getPeopleFieldBuilder().addBuilder( - com.baeldung.protobuf.AddressBookProtos.Person.getDefaultInstance()); - } - - /** - * repeated .protobuf.Person people = 1; - */ - public com.baeldung.protobuf.AddressBookProtos.Person.Builder addPeopleBuilder( - int index) { - return getPeopleFieldBuilder().addBuilder( - index, com.baeldung.protobuf.AddressBookProtos.Person.getDefaultInstance()); - } - - /** - * repeated .protobuf.Person people = 1; - */ - public java.util.List - getPeopleBuilderList() { - return getPeopleFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilderV3< - com.baeldung.protobuf.AddressBookProtos.Person, com.baeldung.protobuf.AddressBookProtos.Person.Builder, com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder> - getPeopleFieldBuilder() { - if (peopleBuilder_ == null) { - peopleBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< - com.baeldung.protobuf.AddressBookProtos.Person, com.baeldung.protobuf.AddressBookProtos.Person.Builder, com.baeldung.protobuf.AddressBookProtos.PersonOrBuilder>( - people_, - ((bitField0_ & 0x00000001) == 0x00000001), - getParentForChildren(), - isClean()); - people_ = null; - } - return peopleBuilder_; - } - - 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:protobuf.AddressBook) - } - - // @@protoc_insertion_point(class_scope:protobuf.AddressBook) - private static final com.baeldung.protobuf.AddressBookProtos.AddressBook DEFAULT_INSTANCE; - - static { - DEFAULT_INSTANCE = new com.baeldung.protobuf.AddressBookProtos.AddressBook(); - } - - public static com.baeldung.protobuf.AddressBookProtos.AddressBook getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - @java.lang.Deprecated - public static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - public AddressBook parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new AddressBook(input, extensionRegistry); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - public com.baeldung.protobuf.AddressBookProtos.AddressBook getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AddressBook parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; } - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_protobuf_Person_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_protobuf_Person_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_protobuf_AddressBook_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_protobuf_AddressBook_fieldAccessorTable; - - public static com.google.protobuf.Descriptors.FileDescriptor - getDescriptor() { - return descriptor; + @java.lang.Override + public com.baeldung.protobuf.AddressBookProtos.AddressBook getDefaultInstanceForType() { + return DEFAULT_INSTANCE; } - private static com.google.protobuf.Descriptors.FileDescriptor - descriptor; - - static { - java.lang.String[] descriptorData = { - "\n\020routeguide.proto\022\010protobuf\"B\n\006Person\022\014" + - "\n\004name\030\001 \002(\t\022\n\n\002id\030\002 \002(\005\022\r\n\005email\030\003 \001(\t\022" + - "\017\n\007numbers\030\004 \003(\t\"/\n\013AddressBook\022 \n\006peopl" + - "e\030\001 \003(\0132\020.protobuf.PersonB*\n\025com.baeldun" + - "g.protobufB\021AddressBookProtos" - }; - 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_protobuf_Person_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_protobuf_Person_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_protobuf_Person_descriptor, - new java.lang.String[]{"Name", "Id", "Email", "Numbers",}); - internal_static_protobuf_AddressBook_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_protobuf_AddressBook_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_protobuf_AddressBook_descriptor, - new java.lang.String[]{"People",}); - } - -// @@protoc_insertion_point(outer_class_scope) -} \ No newline at end of file + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_protobuf_Person_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_protobuf_Person_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_protobuf_AddressBook_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_protobuf_AddressBook_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n$src/main/resources/addressbook.proto\022\010" + + "protobuf\"B\n\006Person\022\014\n\004name\030\001 \002(\t\022\n\n\002id\030\002" + + " \002(\005\022\r\n\005email\030\003 \001(\t\022\017\n\007numbers\030\004 \003(\t\"/\n\013" + + "AddressBook\022 \n\006people\030\001 \003(\0132\020.protobuf.P" + + "ersonB*\n\025com.baeldung.protobufB\021AddressB" + + "ookProtos" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_protobuf_Person_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_protobuf_Person_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_protobuf_Person_descriptor, + new java.lang.String[] { "Name", "Id", "Email", "Numbers", }); + internal_static_protobuf_AddressBook_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_protobuf_AddressBook_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_protobuf_AddressBook_descriptor, + new java.lang.String[] { "People", }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/google-protocol-buffer/src/main/resources/food.proto b/google-protocol-buffer/src/main/resources/food.proto new file mode 100644 index 000000000000..dde6e4b2cb34 --- /dev/null +++ b/google-protocol-buffer/src/main/resources/food.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; + +package com.baeldung; + +option java_package = "com.baeldung.generated"; + +message Menu { + map items = 1; +} + +message FoodDelivery{ + map restaurants = 1; +} diff --git a/google-protocol-buffer/src/test/java/com/baeldung/mapinprotobuf/FoodDeliveryUnitTest.java b/google-protocol-buffer/src/test/java/com/baeldung/mapinprotobuf/FoodDeliveryUnitTest.java new file mode 100644 index 000000000000..abb73867bfdf --- /dev/null +++ b/google-protocol-buffer/src/test/java/com/baeldung/mapinprotobuf/FoodDeliveryUnitTest.java @@ -0,0 +1,112 @@ +package com.baeldung.mapinprotobuf; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; + +import org.junit.jupiter.api.TestInstance; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import com.baeldung.generated.Food; +import com.baeldung.mapinprotobuf.FoodDelivery; + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +class FoodDeliveryUnitTest { + + private static final String FILE_PATH = "src/main/resources/foodfile.bin"; + + private final FoodDelivery foodDelivery = new FoodDelivery(); + + private Food.FoodDelivery testData; + + @BeforeEach + void setUp() { + testData = foodDelivery.buildData(); + } + + @Test + void givenValidData_whenBuildData_thenShouldContainExpectedValues() { + assertTrue(testData.getRestaurantsMap() + .containsKey("Pizza Place"), "Should contain 'Pizza Place'"); + assertTrue(testData.getRestaurantsMap() + .containsKey("Sushi Place"), "Should contain 'Sushi Place'"); + assertEquals(12.99f, testData.getRestaurantsMap() + .get("Pizza Place") + .getItemsMap() + .get("Margherita"), "Margherita price should be 12.99"); + + } + + @Test + void givenProtobufObject_whenSerializeToFile_thenFileShouldExist() { + foodDelivery.serializeToFile(testData); + File file = new File(FILE_PATH); + assertTrue(file.exists(), "Serialized file should exist"); + } + + @Test + void givenSerializedFile_whenDeserialize_thenShouldMatchOriginalData() { + foodDelivery.serializeToFile(testData); + Food.FoodDelivery deserializedData = foodDelivery.deserializeFromFile(testData); + assertEquals(testData.getRestaurantsMap(), deserializedData.getRestaurantsMap(), "Deserialized data should match the original data"); + } + + @Test + void givenDeserializedObject_whenDisplayRestaurants_thenShouldLogCorrectOutput() { + foodDelivery.serializeToFile(testData); + Food.FoodDelivery deserializedData = foodDelivery.deserializeFromFile(testData); + Logger logger = Logger.getLogger(FoodDelivery.class.getName()); + TestLogHandler testHandler = new TestLogHandler(); + logger.addHandler(testHandler); + logger.setUseParentHandlers(false); + foodDelivery.displayRestaurants(deserializedData); + List logs = testHandler.getLogs(); + assertTrue(logs.stream() + .anyMatch(log -> log.contains("Restaurant: Pizza Place")), "Log should contain 'Restaurant: Pizza Place'"); + assertTrue(logs.stream() + .anyMatch(log -> log.contains("Margherita costs $ 12.99")), "Log should contain 'Margherita costs $ 12.99'"); + } + + @AfterAll + static void cleanup() { + File file = new File(FILE_PATH); + if (file.exists()) { + file.delete(); + } + } + + static class TestLogHandler extends Handler { + + private final List logMessages = new ArrayList<>(); + + @Override + public void publish(LogRecord record) { + if (record.getLevel() + .intValue() >= Level.INFO.intValue()) { + logMessages.add(record.getMessage()); + } + } + + @Override + public void flush() { + } + + @Override + public void close() throws SecurityException { + } + + public List getLogs() { + return logMessages; + } + } +}