diff --git a/build.gradle b/build.gradle index cec78f414..a9f478618 100644 --- a/build.gradle +++ b/build.gradle @@ -65,7 +65,8 @@ test.classpath += configurations.developmentOnly run.jvmArgs('-noverify', '-XX:TieredStopAtLevel=1', '-Dmicronaut.environments=dev', - '-Dmicronaut.io.watch.restart=true' + '-Dmicronaut.io.watch.restart=true', + '-Xmx2560m' ) tasks.withType(JavaCompile){ diff --git a/src/main/java/org/akhq/utils/ProtobufToJsonDeserializer.java b/src/main/java/org/akhq/utils/ProtobufToJsonDeserializer.java index 016cd8f4e..d544e7423 100644 --- a/src/main/java/org/akhq/utils/ProtobufToJsonDeserializer.java +++ b/src/main/java/org/akhq/utils/ProtobufToJsonDeserializer.java @@ -2,6 +2,7 @@ import com.google.protobuf.DescriptorProtos.FileDescriptorProto; import com.google.protobuf.DescriptorProtos.FileDescriptorSet; +import com.google.protobuf.Descriptors; import com.google.protobuf.Descriptors.Descriptor; import com.google.protobuf.Descriptors.DescriptorValidationException; import com.google.protobuf.Descriptors.FileDescriptor; @@ -28,14 +29,17 @@ public class ProtobufToJsonDeserializer { private final Map> descriptors; private final List topicsMapping; private final String protobufDescriptorsFolder; + private final Map> descriptorByTypeName; public ProtobufToJsonDeserializer(Connection.ProtobufDeserializationTopicsMapping protobufDeserializationTopicsMapping) { if (protobufDeserializationTopicsMapping == null) { this.descriptors = new HashMap<>(); this.topicsMapping = new ArrayList<>(); this.protobufDescriptorsFolder = null; + this.descriptorByTypeName = null; } else { this.protobufDescriptorsFolder = protobufDeserializationTopicsMapping.getDescriptorsFolder(); + this.descriptorByTypeName = new HashMap<>(); this.topicsMapping = protobufDeserializationTopicsMapping.getTopicsMapping(); this.descriptors = buildAllDescriptors(); } @@ -63,9 +67,44 @@ private Map> buildAllDescriptors() { throw new RuntimeException(String.format("Cannot build Protobuf descriptors for the topics regex [%s]", mapping.getTopicRegex()), e); } } + buildAdditionalDescriptors(); return allDescriptors; } + /** + * Build descriptors for files from Protobuf descriptor folder, which are not specified in topics mapping. + * These descriptors can be used for deserializing dynamic messages with {@code Any} field. + */ + private void buildAdditionalDescriptors() { + List filesFromTopicsMapping = topicsMapping.stream() + .map(TopicsMapping::getDescriptorFile) + .collect(Collectors.toList()); + List additionalFiles = getDescriptorFiles().stream() + .filter(file -> !filesFromTopicsMapping.contains(file)) + .map(file -> protobufDescriptorsFolder + File.separator + file) + .collect(Collectors.toList()); + for (String file : additionalFiles) { + try { + byte[] fileBytes = Files.readAllBytes(Path.of(file)); + buildAllDescriptorsForDescriptorFile(fileBytes); + } catch (IOException | DescriptorValidationException e) { + e.printStackTrace(); + } + } + } + + /** + * Extracts all descriptor files from Protobuf descriptor folder + */ + private List getDescriptorFiles() { + if (protobufDescriptorsFolder != null && Files.exists(Path.of(protobufDescriptorsFolder))) { + File path = new File(protobufDescriptorsFolder); + String[] fileNames = path.list(); + return fileNames == null ? Collections.emptyList() : Arrays.asList(fileNames); + } + return Collections.emptyList(); + } + byte[] getDescriptorFileAsBytes(TopicsMapping mapping) throws IOException { if (protobufDescriptorsFolder != null && Files.exists(Path.of(protobufDescriptorsFolder))) { String descriptorFile = mapping.getDescriptorFile(); @@ -96,9 +135,18 @@ private List buildAllDescriptorsForDescriptorFile(byte[] descriptorF fileDescriptorsWithDependencies.add(fd); } - return fileDescriptorsWithDependencies - .stream().flatMap(desc -> desc.getMessageTypes().stream()) - .collect(Collectors.toList()); + return buildDescriptorsByTypeName(fileDescriptorsWithDependencies); + } + + private List buildDescriptorsByTypeName(List fileDescriptorsWithDependencies) { + List result = new ArrayList<>(); + for (FileDescriptor fd : fileDescriptorsWithDependencies) { + for (Descriptor messageType : fd.getMessageTypes()) { + descriptorByTypeName.put(messageType.getFullName(), fd.getMessageTypes()); + result.add(messageType); + } + } + return result; } /** @@ -131,8 +179,10 @@ public String deserialize(String topic, byte[] buffer, boolean isKey) { try { result = tryToDeserializeWithMessageType(buffer, matchingConfig.getTopicRegex(), messageType); } catch (Exception e) { - throw new SerializationException(String.format("Cannot deserialize message with Protobuf deserializer " + - "for topic [%s] and message type [%s]", topic, messageType), e); + String cannotSeserializeMessage = String.format("Cannot deserialize message with Protobuf deserializer " + + "for topic [%s] and message type [%s]", topic, messageType); + log.error(cannotSeserializeMessage + ". Raw message bytes [{}]", buffer, e); + throw new SerializationException(cannotSeserializeMessage, e); } return result; } @@ -171,8 +221,53 @@ private String tryToDeserializeWithMessageType(byte[] buffer, String topicRegex, private String tryToParseDataToJsonWithDescriptor(byte[] buffer, Descriptor descriptor, List allDependencies) throws IOException { DynamicMessage message = DynamicMessage.parseFrom(descriptor, buffer); - JsonFormat.TypeRegistry typeRegistry = JsonFormat.TypeRegistry.newBuilder().add(allDependencies).build(); + JsonFormat.TypeRegistry.Builder builder = JsonFormat.TypeRegistry.newBuilder().add(allDependencies); + + Set descriptorsForFieldsWithTypeAny = getDescriptorsForFieldsWithTypeAny(message); + if (!descriptorsForFieldsWithTypeAny.isEmpty()) { + builder.add(descriptorsForFieldsWithTypeAny); + } + + JsonFormat.TypeRegistry typeRegistry = builder.build(); JsonFormat.Printer printer = JsonFormat.printer().usingTypeRegistry(typeRegistry); return printer.print(message); } + + /** + * If a message contains a field with type {@code Any}, we can find out an actual field type + * at the runtime from the message, get descriptors for this field type and add them to TypeRegistry. + * Multiple layer complex objects with {@code Any} fields on any layers are also supported using recursion. + */ + private Set getDescriptorsForFieldsWithTypeAny(DynamicMessage message) { + Set result = new HashSet<>(); + for (Object fieldDescriptor : message.getAllFields().values()) { + if (isFieldTypeAny(fieldDescriptor)) { + var internalFields = ((DynamicMessage) fieldDescriptor).getAllFields().entrySet(); + for (var internalField : internalFields) { + if (isFieldTypeAnyTypeUrl(internalField.getKey())) { + String typeNameFromUrl = internalField.getValue().toString().split("/")[1]; + result.addAll(descriptorByTypeName.get(typeNameFromUrl)); + } + } + } else if (isDynamicMessage(fieldDescriptor)) { + result.addAll(getDescriptorsForFieldsWithTypeAny((DynamicMessage) fieldDescriptor)); + } + } + return result; + } + + private boolean isDynamicMessage(Object fieldDescriptor) { + return fieldDescriptor instanceof DynamicMessage; + } + + private boolean isFieldTypeAny(Object fieldDescriptor) { + if (fieldDescriptor instanceof DynamicMessage) { + return (((DynamicMessage) fieldDescriptor).getDescriptorForType().getFullName().equals("google.protobuf.Any")); + } + return false; + } + + private boolean isFieldTypeAnyTypeUrl(Descriptors.FieldDescriptor field) { + return field.getFullName().equals("google.protobuf.Any.type_url"); + } } diff --git a/src/test/java/org/akhq/utils/ComplexWithBookInsideProto.java b/src/test/java/org/akhq/utils/ComplexWithBookInsideProto.java new file mode 100644 index 000000000..8f205142c --- /dev/null +++ b/src/test/java/org/akhq/utils/ComplexWithBookInsideProto.java @@ -0,0 +1,2208 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: complexWithBookInside.proto + +package org.akhq.utils; + +public final class ComplexWithBookInsideProto { + private ComplexWithBookInsideProto() {} + 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 BookOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.akhq.utils.Book) + com.google.protobuf.MessageOrBuilder { + + /** + * string title = 1; + * @return The title. + */ + java.lang.String getTitle(); + /** + * string title = 1; + * @return The bytes for title. + */ + com.google.protobuf.ByteString + getTitleBytes(); + + /** + * string author = 2; + * @return The author. + */ + java.lang.String getAuthor(); + /** + * string author = 2; + * @return The bytes for author. + */ + com.google.protobuf.ByteString + getAuthorBytes(); + + /** + * .google.protobuf.DoubleValue price = 3; + * @return Whether the price field is set. + */ + boolean hasPrice(); + /** + * .google.protobuf.DoubleValue price = 3; + * @return The price. + */ + com.google.protobuf.DoubleValue getPrice(); + /** + * .google.protobuf.DoubleValue price = 3; + */ + com.google.protobuf.DoubleValueOrBuilder getPriceOrBuilder(); + } + /** + * Protobuf type {@code org.akhq.utils.Book} + */ + public static final class Book extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:org.akhq.utils.Book) + BookOrBuilder { + private static final long serialVersionUID = 0L; + // Use Book.newBuilder() to construct. + private Book(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Book() { + title_ = ""; + author_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Book(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private Book( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + 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; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + title_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + author_ = s; + break; + } + case 26: { + com.google.protobuf.DoubleValue.Builder subBuilder = null; + if (price_ != null) { + subBuilder = price_.toBuilder(); + } + price_ = input.readMessage(com.google.protobuf.DoubleValue.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(price_); + price_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_Book_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_Book_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.akhq.utils.ComplexWithBookInsideProto.Book.class, org.akhq.utils.ComplexWithBookInsideProto.Book.Builder.class); + } + + public static final int TITLE_FIELD_NUMBER = 1; + private volatile java.lang.Object title_; + /** + * string title = 1; + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + 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(); + title_ = s; + return s; + } + } + /** + * string title = 1; + * @return The bytes for title. + */ + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AUTHOR_FIELD_NUMBER = 2; + private volatile java.lang.Object author_; + /** + * string author = 2; + * @return The author. + */ + public java.lang.String getAuthor() { + java.lang.Object ref = author_; + 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(); + author_ = s; + return s; + } + } + /** + * string author = 2; + * @return The bytes for author. + */ + public com.google.protobuf.ByteString + getAuthorBytes() { + java.lang.Object ref = author_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + author_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PRICE_FIELD_NUMBER = 3; + private com.google.protobuf.DoubleValue price_; + /** + * .google.protobuf.DoubleValue price = 3; + * @return Whether the price field is set. + */ + public boolean hasPrice() { + return price_ != null; + } + /** + * .google.protobuf.DoubleValue price = 3; + * @return The price. + */ + public com.google.protobuf.DoubleValue getPrice() { + return price_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : price_; + } + /** + * .google.protobuf.DoubleValue price = 3; + */ + public com.google.protobuf.DoubleValueOrBuilder getPriceOrBuilder() { + return getPrice(); + } + + 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 { + if (!getTitleBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, title_); + } + if (!getAuthorBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, author_); + } + if (price_ != null) { + output.writeMessage(3, getPrice()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getTitleBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, title_); + } + if (!getAuthorBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, author_); + } + if (price_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getPrice()); + } + 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 org.akhq.utils.ComplexWithBookInsideProto.Book)) { + return super.equals(obj); + } + org.akhq.utils.ComplexWithBookInsideProto.Book other = (org.akhq.utils.ComplexWithBookInsideProto.Book) obj; + + if (!getTitle() + .equals(other.getTitle())) return false; + if (!getAuthor() + .equals(other.getAuthor())) return false; + if (hasPrice() != other.hasPrice()) return false; + if (hasPrice()) { + if (!getPrice() + .equals(other.getPrice())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + hash = (37 * hash) + AUTHOR_FIELD_NUMBER; + hash = (53 * hash) + getAuthor().hashCode(); + if (hasPrice()) { + hash = (37 * hash) + PRICE_FIELD_NUMBER; + hash = (53 * hash) + getPrice().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.akhq.utils.ComplexWithBookInsideProto.Book parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.akhq.utils.ComplexWithBookInsideProto.Book parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.akhq.utils.ComplexWithBookInsideProto.Book parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.akhq.utils.ComplexWithBookInsideProto.Book parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.akhq.utils.ComplexWithBookInsideProto.Book parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.akhq.utils.ComplexWithBookInsideProto.Book parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.akhq.utils.ComplexWithBookInsideProto.Book parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.akhq.utils.ComplexWithBookInsideProto.Book 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 org.akhq.utils.ComplexWithBookInsideProto.Book parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static org.akhq.utils.ComplexWithBookInsideProto.Book 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 org.akhq.utils.ComplexWithBookInsideProto.Book parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.akhq.utils.ComplexWithBookInsideProto.Book parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(org.akhq.utils.ComplexWithBookInsideProto.Book 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.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code org.akhq.utils.Book} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:org.akhq.utils.Book) + org.akhq.utils.ComplexWithBookInsideProto.BookOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_Book_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_Book_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.akhq.utils.ComplexWithBookInsideProto.Book.class, org.akhq.utils.ComplexWithBookInsideProto.Book.Builder.class); + } + + // Construct using org.akhq.utils.ComplexWithBookInsideProto.Book.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + title_ = ""; + + author_ = ""; + + if (priceBuilder_ == null) { + price_ = null; + } else { + price_ = null; + priceBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_Book_descriptor; + } + + @java.lang.Override + public org.akhq.utils.ComplexWithBookInsideProto.Book getDefaultInstanceForType() { + return org.akhq.utils.ComplexWithBookInsideProto.Book.getDefaultInstance(); + } + + @java.lang.Override + public org.akhq.utils.ComplexWithBookInsideProto.Book build() { + org.akhq.utils.ComplexWithBookInsideProto.Book result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.akhq.utils.ComplexWithBookInsideProto.Book buildPartial() { + org.akhq.utils.ComplexWithBookInsideProto.Book result = new org.akhq.utils.ComplexWithBookInsideProto.Book(this); + result.title_ = title_; + result.author_ = author_; + if (priceBuilder_ == null) { + result.price_ = price_; + } else { + result.price_ = priceBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.akhq.utils.ComplexWithBookInsideProto.Book) { + return mergeFrom((org.akhq.utils.ComplexWithBookInsideProto.Book)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.akhq.utils.ComplexWithBookInsideProto.Book other) { + if (other == org.akhq.utils.ComplexWithBookInsideProto.Book.getDefaultInstance()) return this; + if (!other.getTitle().isEmpty()) { + title_ = other.title_; + onChanged(); + } + if (!other.getAuthor().isEmpty()) { + author_ = other.author_; + onChanged(); + } + if (other.hasPrice()) { + mergePrice(other.getPrice()); + } + this.mergeUnknownFields(other.unknownFields); + 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 { + org.akhq.utils.ComplexWithBookInsideProto.Book parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.akhq.utils.ComplexWithBookInsideProto.Book) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object title_ = ""; + /** + * string title = 1; + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string title = 1; + * @return The bytes for title. + */ + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string title = 1; + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + title_ = value; + onChanged(); + return this; + } + /** + * string title = 1; + * @return This builder for chaining. + */ + public Builder clearTitle() { + + title_ = getDefaultInstance().getTitle(); + onChanged(); + return this; + } + /** + * string title = 1; + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + title_ = value; + onChanged(); + return this; + } + + private java.lang.Object author_ = ""; + /** + * string author = 2; + * @return The author. + */ + public java.lang.String getAuthor() { + java.lang.Object ref = author_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + author_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string author = 2; + * @return The bytes for author. + */ + public com.google.protobuf.ByteString + getAuthorBytes() { + java.lang.Object ref = author_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + author_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string author = 2; + * @param value The author to set. + * @return This builder for chaining. + */ + public Builder setAuthor( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + author_ = value; + onChanged(); + return this; + } + /** + * string author = 2; + * @return This builder for chaining. + */ + public Builder clearAuthor() { + + author_ = getDefaultInstance().getAuthor(); + onChanged(); + return this; + } + /** + * string author = 2; + * @param value The bytes for author to set. + * @return This builder for chaining. + */ + public Builder setAuthorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + author_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.DoubleValue price_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> priceBuilder_; + /** + * .google.protobuf.DoubleValue price = 3; + * @return Whether the price field is set. + */ + public boolean hasPrice() { + return priceBuilder_ != null || price_ != null; + } + /** + * .google.protobuf.DoubleValue price = 3; + * @return The price. + */ + public com.google.protobuf.DoubleValue getPrice() { + if (priceBuilder_ == null) { + return price_ == null ? com.google.protobuf.DoubleValue.getDefaultInstance() : price_; + } else { + return priceBuilder_.getMessage(); + } + } + /** + * .google.protobuf.DoubleValue price = 3; + */ + public Builder setPrice(com.google.protobuf.DoubleValue value) { + if (priceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + price_ = value; + onChanged(); + } else { + priceBuilder_.setMessage(value); + } + + return this; + } + /** + * .google.protobuf.DoubleValue price = 3; + */ + public Builder setPrice( + com.google.protobuf.DoubleValue.Builder builderForValue) { + if (priceBuilder_ == null) { + price_ = builderForValue.build(); + onChanged(); + } else { + priceBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .google.protobuf.DoubleValue price = 3; + */ + public Builder mergePrice(com.google.protobuf.DoubleValue value) { + if (priceBuilder_ == null) { + if (price_ != null) { + price_ = + com.google.protobuf.DoubleValue.newBuilder(price_).mergeFrom(value).buildPartial(); + } else { + price_ = value; + } + onChanged(); + } else { + priceBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .google.protobuf.DoubleValue price = 3; + */ + public Builder clearPrice() { + if (priceBuilder_ == null) { + price_ = null; + onChanged(); + } else { + price_ = null; + priceBuilder_ = null; + } + + return this; + } + /** + * .google.protobuf.DoubleValue price = 3; + */ + public com.google.protobuf.DoubleValue.Builder getPriceBuilder() { + + onChanged(); + return getPriceFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.DoubleValue price = 3; + */ + public com.google.protobuf.DoubleValueOrBuilder getPriceOrBuilder() { + if (priceBuilder_ != null) { + return priceBuilder_.getMessageOrBuilder(); + } else { + return price_ == null ? + com.google.protobuf.DoubleValue.getDefaultInstance() : price_; + } + } + /** + * .google.protobuf.DoubleValue price = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder> + getPriceFieldBuilder() { + if (priceBuilder_ == null) { + priceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.DoubleValue, com.google.protobuf.DoubleValue.Builder, com.google.protobuf.DoubleValueOrBuilder>( + getPrice(), + getParentForChildren(), + isClean()); + price_ = null; + } + return priceBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:org.akhq.utils.Book) + } + + // @@protoc_insertion_point(class_scope:org.akhq.utils.Book) + private static final org.akhq.utils.ComplexWithBookInsideProto.Book DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new org.akhq.utils.ComplexWithBookInsideProto.Book(); + } + + public static org.akhq.utils.ComplexWithBookInsideProto.Book getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Book parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Book(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.akhq.utils.ComplexWithBookInsideProto.Book getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ComplexWithBookInsideOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.akhq.utils.ComplexWithBookInside) + com.google.protobuf.MessageOrBuilder { + + /** + * .org.akhq.utils.Album album = 1; + * @return Whether the album field is set. + */ + boolean hasAlbum(); + /** + * .org.akhq.utils.Album album = 1; + * @return The album. + */ + org.akhq.utils.AlbumProto.Album getAlbum(); + /** + * .org.akhq.utils.Album album = 1; + */ + org.akhq.utils.AlbumProto.AlbumOrBuilder getAlbumOrBuilder(); + + /** + * .org.akhq.utils.Film film = 2; + * @return Whether the film field is set. + */ + boolean hasFilm(); + /** + * .org.akhq.utils.Film film = 2; + * @return The film. + */ + org.akhq.utils.FilmProto.Film getFilm(); + /** + * .org.akhq.utils.Film film = 2; + */ + org.akhq.utils.FilmProto.FilmOrBuilder getFilmOrBuilder(); + + /** + * .google.protobuf.StringValue stringWrapper = 3; + * @return Whether the stringWrapper field is set. + */ + boolean hasStringWrapper(); + /** + * .google.protobuf.StringValue stringWrapper = 3; + * @return The stringWrapper. + */ + com.google.protobuf.StringValue getStringWrapper(); + /** + * .google.protobuf.StringValue stringWrapper = 3; + */ + com.google.protobuf.StringValueOrBuilder getStringWrapperOrBuilder(); + + /** + * .google.protobuf.Any anything = 4; + * @return Whether the anything field is set. + */ + boolean hasAnything(); + /** + * .google.protobuf.Any anything = 4; + * @return The anything. + */ + com.google.protobuf.Any getAnything(); + /** + * .google.protobuf.Any anything = 4; + */ + com.google.protobuf.AnyOrBuilder getAnythingOrBuilder(); + } + /** + * Protobuf type {@code org.akhq.utils.ComplexWithBookInside} + */ + public static final class ComplexWithBookInside extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:org.akhq.utils.ComplexWithBookInside) + ComplexWithBookInsideOrBuilder { + private static final long serialVersionUID = 0L; + // Use ComplexWithBookInside.newBuilder() to construct. + private ComplexWithBookInside(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ComplexWithBookInside() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new ComplexWithBookInside(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ComplexWithBookInside( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + 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; + case 10: { + org.akhq.utils.AlbumProto.Album.Builder subBuilder = null; + if (album_ != null) { + subBuilder = album_.toBuilder(); + } + album_ = input.readMessage(org.akhq.utils.AlbumProto.Album.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(album_); + album_ = subBuilder.buildPartial(); + } + + break; + } + case 18: { + org.akhq.utils.FilmProto.Film.Builder subBuilder = null; + if (film_ != null) { + subBuilder = film_.toBuilder(); + } + film_ = input.readMessage(org.akhq.utils.FilmProto.Film.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(film_); + film_ = subBuilder.buildPartial(); + } + + break; + } + case 26: { + com.google.protobuf.StringValue.Builder subBuilder = null; + if (stringWrapper_ != null) { + subBuilder = stringWrapper_.toBuilder(); + } + stringWrapper_ = input.readMessage(com.google.protobuf.StringValue.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(stringWrapper_); + stringWrapper_ = subBuilder.buildPartial(); + } + + break; + } + case 34: { + com.google.protobuf.Any.Builder subBuilder = null; + if (anything_ != null) { + subBuilder = anything_.toBuilder(); + } + anything_ = input.readMessage(com.google.protobuf.Any.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(anything_); + anything_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_ComplexWithBookInside_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_ComplexWithBookInside_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside.class, org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside.Builder.class); + } + + public static final int ALBUM_FIELD_NUMBER = 1; + private org.akhq.utils.AlbumProto.Album album_; + /** + * .org.akhq.utils.Album album = 1; + * @return Whether the album field is set. + */ + public boolean hasAlbum() { + return album_ != null; + } + /** + * .org.akhq.utils.Album album = 1; + * @return The album. + */ + public org.akhq.utils.AlbumProto.Album getAlbum() { + return album_ == null ? org.akhq.utils.AlbumProto.Album.getDefaultInstance() : album_; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public org.akhq.utils.AlbumProto.AlbumOrBuilder getAlbumOrBuilder() { + return getAlbum(); + } + + public static final int FILM_FIELD_NUMBER = 2; + private org.akhq.utils.FilmProto.Film film_; + /** + * .org.akhq.utils.Film film = 2; + * @return Whether the film field is set. + */ + public boolean hasFilm() { + return film_ != null; + } + /** + * .org.akhq.utils.Film film = 2; + * @return The film. + */ + public org.akhq.utils.FilmProto.Film getFilm() { + return film_ == null ? org.akhq.utils.FilmProto.Film.getDefaultInstance() : film_; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public org.akhq.utils.FilmProto.FilmOrBuilder getFilmOrBuilder() { + return getFilm(); + } + + public static final int STRINGWRAPPER_FIELD_NUMBER = 3; + private com.google.protobuf.StringValue stringWrapper_; + /** + * .google.protobuf.StringValue stringWrapper = 3; + * @return Whether the stringWrapper field is set. + */ + public boolean hasStringWrapper() { + return stringWrapper_ != null; + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + * @return The stringWrapper. + */ + public com.google.protobuf.StringValue getStringWrapper() { + return stringWrapper_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : stringWrapper_; + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + */ + public com.google.protobuf.StringValueOrBuilder getStringWrapperOrBuilder() { + return getStringWrapper(); + } + + public static final int ANYTHING_FIELD_NUMBER = 4; + private com.google.protobuf.Any anything_; + /** + * .google.protobuf.Any anything = 4; + * @return Whether the anything field is set. + */ + public boolean hasAnything() { + return anything_ != null; + } + /** + * .google.protobuf.Any anything = 4; + * @return The anything. + */ + public com.google.protobuf.Any getAnything() { + return anything_ == null ? com.google.protobuf.Any.getDefaultInstance() : anything_; + } + /** + * .google.protobuf.Any anything = 4; + */ + public com.google.protobuf.AnyOrBuilder getAnythingOrBuilder() { + return getAnything(); + } + + 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 { + if (album_ != null) { + output.writeMessage(1, getAlbum()); + } + if (film_ != null) { + output.writeMessage(2, getFilm()); + } + if (stringWrapper_ != null) { + output.writeMessage(3, getStringWrapper()); + } + if (anything_ != null) { + output.writeMessage(4, getAnything()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (album_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getAlbum()); + } + if (film_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getFilm()); + } + if (stringWrapper_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getStringWrapper()); + } + if (anything_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getAnything()); + } + 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 org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside)) { + return super.equals(obj); + } + org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside other = (org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside) obj; + + if (hasAlbum() != other.hasAlbum()) return false; + if (hasAlbum()) { + if (!getAlbum() + .equals(other.getAlbum())) return false; + } + if (hasFilm() != other.hasFilm()) return false; + if (hasFilm()) { + if (!getFilm() + .equals(other.getFilm())) return false; + } + if (hasStringWrapper() != other.hasStringWrapper()) return false; + if (hasStringWrapper()) { + if (!getStringWrapper() + .equals(other.getStringWrapper())) return false; + } + if (hasAnything() != other.hasAnything()) return false; + if (hasAnything()) { + if (!getAnything() + .equals(other.getAnything())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasAlbum()) { + hash = (37 * hash) + ALBUM_FIELD_NUMBER; + hash = (53 * hash) + getAlbum().hashCode(); + } + if (hasFilm()) { + hash = (37 * hash) + FILM_FIELD_NUMBER; + hash = (53 * hash) + getFilm().hashCode(); + } + if (hasStringWrapper()) { + hash = (37 * hash) + STRINGWRAPPER_FIELD_NUMBER; + hash = (53 * hash) + getStringWrapper().hashCode(); + } + if (hasAnything()) { + hash = (37 * hash) + ANYTHING_FIELD_NUMBER; + hash = (53 * hash) + getAnything().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside 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 org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside 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 org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside 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.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code org.akhq.utils.ComplexWithBookInside} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:org.akhq.utils.ComplexWithBookInside) + org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInsideOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_ComplexWithBookInside_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_ComplexWithBookInside_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside.class, org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside.Builder.class); + } + + // Construct using org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (albumBuilder_ == null) { + album_ = null; + } else { + album_ = null; + albumBuilder_ = null; + } + if (filmBuilder_ == null) { + film_ = null; + } else { + film_ = null; + filmBuilder_ = null; + } + if (stringWrapperBuilder_ == null) { + stringWrapper_ = null; + } else { + stringWrapper_ = null; + stringWrapperBuilder_ = null; + } + if (anythingBuilder_ == null) { + anything_ = null; + } else { + anything_ = null; + anythingBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.akhq.utils.ComplexWithBookInsideProto.internal_static_org_akhq_utils_ComplexWithBookInside_descriptor; + } + + @java.lang.Override + public org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside getDefaultInstanceForType() { + return org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside.getDefaultInstance(); + } + + @java.lang.Override + public org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside build() { + org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside buildPartial() { + org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside result = new org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside(this); + if (albumBuilder_ == null) { + result.album_ = album_; + } else { + result.album_ = albumBuilder_.build(); + } + if (filmBuilder_ == null) { + result.film_ = film_; + } else { + result.film_ = filmBuilder_.build(); + } + if (stringWrapperBuilder_ == null) { + result.stringWrapper_ = stringWrapper_; + } else { + result.stringWrapper_ = stringWrapperBuilder_.build(); + } + if (anythingBuilder_ == null) { + result.anything_ = anything_; + } else { + result.anything_ = anythingBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside) { + return mergeFrom((org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside other) { + if (other == org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside.getDefaultInstance()) return this; + if (other.hasAlbum()) { + mergeAlbum(other.getAlbum()); + } + if (other.hasFilm()) { + mergeFilm(other.getFilm()); + } + if (other.hasStringWrapper()) { + mergeStringWrapper(other.getStringWrapper()); + } + if (other.hasAnything()) { + mergeAnything(other.getAnything()); + } + this.mergeUnknownFields(other.unknownFields); + 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 { + org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private org.akhq.utils.AlbumProto.Album album_; + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.AlbumProto.Album, org.akhq.utils.AlbumProto.Album.Builder, org.akhq.utils.AlbumProto.AlbumOrBuilder> albumBuilder_; + /** + * .org.akhq.utils.Album album = 1; + * @return Whether the album field is set. + */ + public boolean hasAlbum() { + return albumBuilder_ != null || album_ != null; + } + /** + * .org.akhq.utils.Album album = 1; + * @return The album. + */ + public org.akhq.utils.AlbumProto.Album getAlbum() { + if (albumBuilder_ == null) { + return album_ == null ? org.akhq.utils.AlbumProto.Album.getDefaultInstance() : album_; + } else { + return albumBuilder_.getMessage(); + } + } + /** + * .org.akhq.utils.Album album = 1; + */ + public Builder setAlbum(org.akhq.utils.AlbumProto.Album value) { + if (albumBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + album_ = value; + onChanged(); + } else { + albumBuilder_.setMessage(value); + } + + return this; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public Builder setAlbum( + org.akhq.utils.AlbumProto.Album.Builder builderForValue) { + if (albumBuilder_ == null) { + album_ = builderForValue.build(); + onChanged(); + } else { + albumBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public Builder mergeAlbum(org.akhq.utils.AlbumProto.Album value) { + if (albumBuilder_ == null) { + if (album_ != null) { + album_ = + org.akhq.utils.AlbumProto.Album.newBuilder(album_).mergeFrom(value).buildPartial(); + } else { + album_ = value; + } + onChanged(); + } else { + albumBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public Builder clearAlbum() { + if (albumBuilder_ == null) { + album_ = null; + onChanged(); + } else { + album_ = null; + albumBuilder_ = null; + } + + return this; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public org.akhq.utils.AlbumProto.Album.Builder getAlbumBuilder() { + + onChanged(); + return getAlbumFieldBuilder().getBuilder(); + } + /** + * .org.akhq.utils.Album album = 1; + */ + public org.akhq.utils.AlbumProto.AlbumOrBuilder getAlbumOrBuilder() { + if (albumBuilder_ != null) { + return albumBuilder_.getMessageOrBuilder(); + } else { + return album_ == null ? + org.akhq.utils.AlbumProto.Album.getDefaultInstance() : album_; + } + } + /** + * .org.akhq.utils.Album album = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.AlbumProto.Album, org.akhq.utils.AlbumProto.Album.Builder, org.akhq.utils.AlbumProto.AlbumOrBuilder> + getAlbumFieldBuilder() { + if (albumBuilder_ == null) { + albumBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.AlbumProto.Album, org.akhq.utils.AlbumProto.Album.Builder, org.akhq.utils.AlbumProto.AlbumOrBuilder>( + getAlbum(), + getParentForChildren(), + isClean()); + album_ = null; + } + return albumBuilder_; + } + + private org.akhq.utils.FilmProto.Film film_; + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.FilmProto.Film, org.akhq.utils.FilmProto.Film.Builder, org.akhq.utils.FilmProto.FilmOrBuilder> filmBuilder_; + /** + * .org.akhq.utils.Film film = 2; + * @return Whether the film field is set. + */ + public boolean hasFilm() { + return filmBuilder_ != null || film_ != null; + } + /** + * .org.akhq.utils.Film film = 2; + * @return The film. + */ + public org.akhq.utils.FilmProto.Film getFilm() { + if (filmBuilder_ == null) { + return film_ == null ? org.akhq.utils.FilmProto.Film.getDefaultInstance() : film_; + } else { + return filmBuilder_.getMessage(); + } + } + /** + * .org.akhq.utils.Film film = 2; + */ + public Builder setFilm(org.akhq.utils.FilmProto.Film value) { + if (filmBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + film_ = value; + onChanged(); + } else { + filmBuilder_.setMessage(value); + } + + return this; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public Builder setFilm( + org.akhq.utils.FilmProto.Film.Builder builderForValue) { + if (filmBuilder_ == null) { + film_ = builderForValue.build(); + onChanged(); + } else { + filmBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public Builder mergeFilm(org.akhq.utils.FilmProto.Film value) { + if (filmBuilder_ == null) { + if (film_ != null) { + film_ = + org.akhq.utils.FilmProto.Film.newBuilder(film_).mergeFrom(value).buildPartial(); + } else { + film_ = value; + } + onChanged(); + } else { + filmBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public Builder clearFilm() { + if (filmBuilder_ == null) { + film_ = null; + onChanged(); + } else { + film_ = null; + filmBuilder_ = null; + } + + return this; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public org.akhq.utils.FilmProto.Film.Builder getFilmBuilder() { + + onChanged(); + return getFilmFieldBuilder().getBuilder(); + } + /** + * .org.akhq.utils.Film film = 2; + */ + public org.akhq.utils.FilmProto.FilmOrBuilder getFilmOrBuilder() { + if (filmBuilder_ != null) { + return filmBuilder_.getMessageOrBuilder(); + } else { + return film_ == null ? + org.akhq.utils.FilmProto.Film.getDefaultInstance() : film_; + } + } + /** + * .org.akhq.utils.Film film = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.FilmProto.Film, org.akhq.utils.FilmProto.Film.Builder, org.akhq.utils.FilmProto.FilmOrBuilder> + getFilmFieldBuilder() { + if (filmBuilder_ == null) { + filmBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.FilmProto.Film, org.akhq.utils.FilmProto.Film.Builder, org.akhq.utils.FilmProto.FilmOrBuilder>( + getFilm(), + getParentForChildren(), + isClean()); + film_ = null; + } + return filmBuilder_; + } + + private com.google.protobuf.StringValue stringWrapper_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> stringWrapperBuilder_; + /** + * .google.protobuf.StringValue stringWrapper = 3; + * @return Whether the stringWrapper field is set. + */ + public boolean hasStringWrapper() { + return stringWrapperBuilder_ != null || stringWrapper_ != null; + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + * @return The stringWrapper. + */ + public com.google.protobuf.StringValue getStringWrapper() { + if (stringWrapperBuilder_ == null) { + return stringWrapper_ == null ? com.google.protobuf.StringValue.getDefaultInstance() : stringWrapper_; + } else { + return stringWrapperBuilder_.getMessage(); + } + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + */ + public Builder setStringWrapper(com.google.protobuf.StringValue value) { + if (stringWrapperBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + stringWrapper_ = value; + onChanged(); + } else { + stringWrapperBuilder_.setMessage(value); + } + + return this; + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + */ + public Builder setStringWrapper( + com.google.protobuf.StringValue.Builder builderForValue) { + if (stringWrapperBuilder_ == null) { + stringWrapper_ = builderForValue.build(); + onChanged(); + } else { + stringWrapperBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + */ + public Builder mergeStringWrapper(com.google.protobuf.StringValue value) { + if (stringWrapperBuilder_ == null) { + if (stringWrapper_ != null) { + stringWrapper_ = + com.google.protobuf.StringValue.newBuilder(stringWrapper_).mergeFrom(value).buildPartial(); + } else { + stringWrapper_ = value; + } + onChanged(); + } else { + stringWrapperBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + */ + public Builder clearStringWrapper() { + if (stringWrapperBuilder_ == null) { + stringWrapper_ = null; + onChanged(); + } else { + stringWrapper_ = null; + stringWrapperBuilder_ = null; + } + + return this; + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + */ + public com.google.protobuf.StringValue.Builder getStringWrapperBuilder() { + + onChanged(); + return getStringWrapperFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + */ + public com.google.protobuf.StringValueOrBuilder getStringWrapperOrBuilder() { + if (stringWrapperBuilder_ != null) { + return stringWrapperBuilder_.getMessageOrBuilder(); + } else { + return stringWrapper_ == null ? + com.google.protobuf.StringValue.getDefaultInstance() : stringWrapper_; + } + } + /** + * .google.protobuf.StringValue stringWrapper = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder> + getStringWrapperFieldBuilder() { + if (stringWrapperBuilder_ == null) { + stringWrapperBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.StringValue, com.google.protobuf.StringValue.Builder, com.google.protobuf.StringValueOrBuilder>( + getStringWrapper(), + getParentForChildren(), + isClean()); + stringWrapper_ = null; + } + return stringWrapperBuilder_; + } + + private com.google.protobuf.Any anything_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> anythingBuilder_; + /** + * .google.protobuf.Any anything = 4; + * @return Whether the anything field is set. + */ + public boolean hasAnything() { + return anythingBuilder_ != null || anything_ != null; + } + /** + * .google.protobuf.Any anything = 4; + * @return The anything. + */ + public com.google.protobuf.Any getAnything() { + if (anythingBuilder_ == null) { + return anything_ == null ? com.google.protobuf.Any.getDefaultInstance() : anything_; + } else { + return anythingBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Any anything = 4; + */ + public Builder setAnything(com.google.protobuf.Any value) { + if (anythingBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + anything_ = value; + onChanged(); + } else { + anythingBuilder_.setMessage(value); + } + + return this; + } + /** + * .google.protobuf.Any anything = 4; + */ + public Builder setAnything( + com.google.protobuf.Any.Builder builderForValue) { + if (anythingBuilder_ == null) { + anything_ = builderForValue.build(); + onChanged(); + } else { + anythingBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .google.protobuf.Any anything = 4; + */ + public Builder mergeAnything(com.google.protobuf.Any value) { + if (anythingBuilder_ == null) { + if (anything_ != null) { + anything_ = + com.google.protobuf.Any.newBuilder(anything_).mergeFrom(value).buildPartial(); + } else { + anything_ = value; + } + onChanged(); + } else { + anythingBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .google.protobuf.Any anything = 4; + */ + public Builder clearAnything() { + if (anythingBuilder_ == null) { + anything_ = null; + onChanged(); + } else { + anything_ = null; + anythingBuilder_ = null; + } + + return this; + } + /** + * .google.protobuf.Any anything = 4; + */ + public com.google.protobuf.Any.Builder getAnythingBuilder() { + + onChanged(); + return getAnythingFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Any anything = 4; + */ + public com.google.protobuf.AnyOrBuilder getAnythingOrBuilder() { + if (anythingBuilder_ != null) { + return anythingBuilder_.getMessageOrBuilder(); + } else { + return anything_ == null ? + com.google.protobuf.Any.getDefaultInstance() : anything_; + } + } + /** + * .google.protobuf.Any anything = 4; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> + getAnythingFieldBuilder() { + if (anythingBuilder_ == null) { + anythingBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder>( + getAnything(), + getParentForChildren(), + isClean()); + anything_ = null; + } + return anythingBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:org.akhq.utils.ComplexWithBookInside) + } + + // @@protoc_insertion_point(class_scope:org.akhq.utils.ComplexWithBookInside) + private static final org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside(); + } + + public static org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ComplexWithBookInside parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ComplexWithBookInside(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.akhq.utils.ComplexWithBookInsideProto.ComplexWithBookInside getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_org_akhq_utils_Book_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_org_akhq_utils_Book_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_org_akhq_utils_ComplexWithBookInside_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_org_akhq_utils_ComplexWithBookInside_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\033complexWithBookInside.proto\022\016org.akhq." + + "utils\032\013album.proto\032\nfilm.proto\032\036google/p" + + "rotobuf/wrappers.proto\032\031google/protobuf/" + + "any.proto\"R\n\004Book\022\r\n\005title\030\001 \001(\t\022\016\n\006auth" + + "or\030\002 \001(\t\022+\n\005price\030\003 \001(\0132\034.google.protobu" + + "f.DoubleValue\"\276\001\n\025ComplexWithBookInside\022" + + "$\n\005album\030\001 \001(\0132\025.org.akhq.utils.Album\022\"\n" + + "\004film\030\002 \001(\0132\024.org.akhq.utils.Film\0223\n\rstr" + + "ingWrapper\030\003 \001(\0132\034.google.protobuf.Strin" + + "gValue\022&\n\010anything\030\004 \001(\0132\024.google.protob" + + "uf.AnyB,\n\016org.akhq.utilsB\032ComplexWithBoo" + + "kInsideProtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + org.akhq.utils.AlbumProto.getDescriptor(), + org.akhq.utils.FilmProto.getDescriptor(), + com.google.protobuf.WrappersProto.getDescriptor(), + com.google.protobuf.AnyProto.getDescriptor(), + }); + internal_static_org_akhq_utils_Book_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_org_akhq_utils_Book_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_org_akhq_utils_Book_descriptor, + new java.lang.String[] { "Title", "Author", "Price", }); + internal_static_org_akhq_utils_ComplexWithBookInside_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_org_akhq_utils_ComplexWithBookInside_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_org_akhq_utils_ComplexWithBookInside_descriptor, + new java.lang.String[] { "Album", "Film", "StringWrapper", "Anything", }); + org.akhq.utils.AlbumProto.getDescriptor(); + org.akhq.utils.FilmProto.getDescriptor(); + com.google.protobuf.WrappersProto.getDescriptor(); + com.google.protobuf.AnyProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/test/java/org/akhq/utils/ComplexProto.java b/src/test/java/org/akhq/utils/ComplexWithBookOutsideProto.java similarity index 85% rename from src/test/java/org/akhq/utils/ComplexProto.java rename to src/test/java/org/akhq/utils/ComplexWithBookOutsideProto.java index a23570b0f..48c32743a 100644 --- a/src/test/java/org/akhq/utils/ComplexProto.java +++ b/src/test/java/org/akhq/utils/ComplexWithBookOutsideProto.java @@ -1,10 +1,10 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! -// source: complex.proto +// source: complexWithBookOutside.proto package org.akhq.utils; -public final class ComplexProto { - private ComplexProto() {} +public final class ComplexWithBookOutsideProto { + private ComplexWithBookOutsideProto() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } @@ -14,8 +14,8 @@ public static void registerAllExtensions( registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } - public interface ComplexOrBuilder extends - // @@protoc_insertion_point(interface_extends:org.akhq.utils.Complex) + public interface ComplexWithBookOutsideOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.akhq.utils.ComplexWithBookOutside) com.google.protobuf.MessageOrBuilder { /** @@ -79,25 +79,25 @@ public interface ComplexOrBuilder extends com.google.protobuf.AnyOrBuilder getAnythingOrBuilder(); } /** - * Protobuf type {@code org.akhq.utils.Complex} + * Protobuf type {@code org.akhq.utils.ComplexWithBookOutside} */ - public static final class Complex extends + public static final class ComplexWithBookOutside extends com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:org.akhq.utils.Complex) - ComplexOrBuilder { + // @@protoc_insertion_point(message_implements:org.akhq.utils.ComplexWithBookOutside) + ComplexWithBookOutsideOrBuilder { private static final long serialVersionUID = 0L; - // Use Complex.newBuilder() to construct. - private Complex(com.google.protobuf.GeneratedMessageV3.Builder builder) { + // Use ComplexWithBookOutside.newBuilder() to construct. + private ComplexWithBookOutside(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } - private Complex() { + private ComplexWithBookOutside() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { - return new Complex(); + return new ComplexWithBookOutside(); } @java.lang.Override @@ -105,7 +105,7 @@ protected java.lang.Object newInstance( getUnknownFields() { return this.unknownFields; } - private Complex( + private ComplexWithBookOutside( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { @@ -196,15 +196,15 @@ private Complex( } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.akhq.utils.ComplexProto.internal_static_org_akhq_utils_Complex_descriptor; + return org.akhq.utils.ComplexWithBookOutsideProto.internal_static_org_akhq_utils_ComplexWithBookOutside_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return org.akhq.utils.ComplexProto.internal_static_org_akhq_utils_Complex_fieldAccessorTable + return org.akhq.utils.ComplexWithBookOutsideProto.internal_static_org_akhq_utils_ComplexWithBookOutside_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.akhq.utils.ComplexProto.Complex.class, org.akhq.utils.ComplexProto.Complex.Builder.class); + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.class, org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.Builder.class); } public static final int ALBUM_FIELD_NUMBER = 1; @@ -360,10 +360,10 @@ public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof org.akhq.utils.ComplexProto.Complex)) { + if (!(obj instanceof org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside)) { return super.equals(obj); } - org.akhq.utils.ComplexProto.Complex other = (org.akhq.utils.ComplexProto.Complex) obj; + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside other = (org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside) obj; if (hasAlbum() != other.hasAlbum()) return false; if (hasAlbum()) { @@ -417,69 +417,69 @@ public int hashCode() { return hash; } - public static org.akhq.utils.ComplexProto.Complex parseFrom( + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.akhq.utils.ComplexProto.Complex parseFrom( + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.akhq.utils.ComplexProto.Complex parseFrom( + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.akhq.utils.ComplexProto.Complex parseFrom( + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.akhq.utils.ComplexProto.Complex parseFrom(byte[] data) + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static org.akhq.utils.ComplexProto.Complex parseFrom( + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static org.akhq.utils.ComplexProto.Complex parseFrom(java.io.InputStream input) + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static org.akhq.utils.ComplexProto.Complex parseFrom( + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside 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 org.akhq.utils.ComplexProto.Complex parseDelimitedFrom(java.io.InputStream input) + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } - public static org.akhq.utils.ComplexProto.Complex parseDelimitedFrom( + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside 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 org.akhq.utils.ComplexProto.Complex parseFrom( + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } - public static org.akhq.utils.ComplexProto.Complex parseFrom( + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -492,7 +492,7 @@ public static org.akhq.utils.ComplexProto.Complex parseFrom( public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(org.akhq.utils.ComplexProto.Complex prototype) { + public static Builder newBuilder(org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -508,26 +508,26 @@ protected Builder newBuilderForType( return builder; } /** - * Protobuf type {@code org.akhq.utils.Complex} + * Protobuf type {@code org.akhq.utils.ComplexWithBookOutside} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:org.akhq.utils.Complex) - org.akhq.utils.ComplexProto.ComplexOrBuilder { + // @@protoc_insertion_point(builder_implements:org.akhq.utils.ComplexWithBookOutside) + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutsideOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return org.akhq.utils.ComplexProto.internal_static_org_akhq_utils_Complex_descriptor; + return org.akhq.utils.ComplexWithBookOutsideProto.internal_static_org_akhq_utils_ComplexWithBookOutside_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return org.akhq.utils.ComplexProto.internal_static_org_akhq_utils_Complex_fieldAccessorTable + return org.akhq.utils.ComplexWithBookOutsideProto.internal_static_org_akhq_utils_ComplexWithBookOutside_fieldAccessorTable .ensureFieldAccessorsInitialized( - org.akhq.utils.ComplexProto.Complex.class, org.akhq.utils.ComplexProto.Complex.Builder.class); + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.class, org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.Builder.class); } - // Construct using org.akhq.utils.ComplexProto.Complex.newBuilder() + // Construct using org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -575,17 +575,17 @@ public Builder clear() { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return org.akhq.utils.ComplexProto.internal_static_org_akhq_utils_Complex_descriptor; + return org.akhq.utils.ComplexWithBookOutsideProto.internal_static_org_akhq_utils_ComplexWithBookOutside_descriptor; } @java.lang.Override - public org.akhq.utils.ComplexProto.Complex getDefaultInstanceForType() { - return org.akhq.utils.ComplexProto.Complex.getDefaultInstance(); + public org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside getDefaultInstanceForType() { + return org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.getDefaultInstance(); } @java.lang.Override - public org.akhq.utils.ComplexProto.Complex build() { - org.akhq.utils.ComplexProto.Complex result = buildPartial(); + public org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside build() { + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -593,8 +593,8 @@ public org.akhq.utils.ComplexProto.Complex build() { } @java.lang.Override - public org.akhq.utils.ComplexProto.Complex buildPartial() { - org.akhq.utils.ComplexProto.Complex result = new org.akhq.utils.ComplexProto.Complex(this); + public org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside buildPartial() { + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside result = new org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside(this); if (albumBuilder_ == null) { result.album_ = album_; } else { @@ -653,16 +653,16 @@ public Builder addRepeatedField( } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof org.akhq.utils.ComplexProto.Complex) { - return mergeFrom((org.akhq.utils.ComplexProto.Complex)other); + if (other instanceof org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside) { + return mergeFrom((org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(org.akhq.utils.ComplexProto.Complex other) { - if (other == org.akhq.utils.ComplexProto.Complex.getDefaultInstance()) return this; + public Builder mergeFrom(org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside other) { + if (other == org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.getDefaultInstance()) return this; if (other.hasAlbum()) { mergeAlbum(other.getAlbum()); } @@ -690,11 +690,11 @@ public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - org.akhq.utils.ComplexProto.Complex parsedMessage = null; + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside parsedMessage = null; try { parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (org.akhq.utils.ComplexProto.Complex) e.getUnfinishedMessage(); + parsedMessage = (org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { if (parsedMessage != null) { @@ -1192,51 +1192,51 @@ public final Builder mergeUnknownFields( } - // @@protoc_insertion_point(builder_scope:org.akhq.utils.Complex) + // @@protoc_insertion_point(builder_scope:org.akhq.utils.ComplexWithBookOutside) } - // @@protoc_insertion_point(class_scope:org.akhq.utils.Complex) - private static final org.akhq.utils.ComplexProto.Complex DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:org.akhq.utils.ComplexWithBookOutside) + private static final org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new org.akhq.utils.ComplexProto.Complex(); + DEFAULT_INSTANCE = new org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside(); } - public static org.akhq.utils.ComplexProto.Complex getDefaultInstance() { + public static org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override - public Complex parsePartialFrom( + public ComplexWithBookOutside parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Complex(input, extensionRegistry); + return new ComplexWithBookOutside(input, extensionRegistry); } }; - public static com.google.protobuf.Parser parser() { + public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser getParserForType() { + public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override - public org.akhq.utils.ComplexProto.Complex getDefaultInstanceForType() { + public org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor - internal_static_org_akhq_utils_Complex_descriptor; + internal_static_org_akhq_utils_ComplexWithBookOutside_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_org_akhq_utils_Complex_fieldAccessorTable; + internal_static_org_akhq_utils_ComplexWithBookOutside_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -1246,15 +1246,16 @@ public org.akhq.utils.ComplexProto.Complex getDefaultInstanceForType() { descriptor; static { java.lang.String[] descriptorData = { - "\n\rcomplex.proto\022\016org.akhq.utils\032\013album.p" + - "roto\032\nfilm.proto\032\036google/protobuf/wrappe" + - "rs.proto\032\031google/protobuf/any.proto\"\260\001\n\007" + - "Complex\022$\n\005album\030\001 \001(\0132\025.org.akhq.utils." + - "Album\022\"\n\004film\030\002 \001(\0132\024.org.akhq.utils.Fil" + - "m\0223\n\rstringWrapper\030\003 \001(\0132\034.google.protob" + - "uf.StringValue\022&\n\010anything\030\004 \001(\0132\024.googl" + - "e.protobuf.AnyB\036\n\016org.akhq.utilsB\014Comple" + - "xProtob\006proto3" + "\n\034complexWithBookOutside.proto\022\016org.akhq" + + ".utils\032\013album.proto\032\nfilm.proto\032\036google/" + + "protobuf/wrappers.proto\032\031google/protobuf" + + "/any.proto\"\277\001\n\026ComplexWithBookOutside\022$\n" + + "\005album\030\001 \001(\0132\025.org.akhq.utils.Album\022\"\n\004f" + + "ilm\030\002 \001(\0132\024.org.akhq.utils.Film\0223\n\rstrin" + + "gWrapper\030\003 \001(\0132\034.google.protobuf.StringV" + + "alue\022&\n\010anything\030\004 \001(\0132\024.google.protobuf" + + ".AnyB-\n\016org.akhq.utilsB\033ComplexWithBookO" + + "utsideProtob\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -1264,11 +1265,11 @@ public org.akhq.utils.ComplexProto.Complex getDefaultInstanceForType() { com.google.protobuf.WrappersProto.getDescriptor(), com.google.protobuf.AnyProto.getDescriptor(), }); - internal_static_org_akhq_utils_Complex_descriptor = + internal_static_org_akhq_utils_ComplexWithBookOutside_descriptor = getDescriptor().getMessageTypes().get(0); - internal_static_org_akhq_utils_Complex_fieldAccessorTable = new + internal_static_org_akhq_utils_ComplexWithBookOutside_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_org_akhq_utils_Complex_descriptor, + internal_static_org_akhq_utils_ComplexWithBookOutside_descriptor, new java.lang.String[] { "Album", "Film", "StringWrapper", "Anything", }); org.akhq.utils.AlbumProto.getDescriptor(); org.akhq.utils.FilmProto.getDescriptor(); diff --git a/src/test/java/org/akhq/utils/MultipleLayerComplexProto.java b/src/test/java/org/akhq/utils/MultipleLayerComplexProto.java new file mode 100644 index 000000000..920099185 --- /dev/null +++ b/src/test/java/org/akhq/utils/MultipleLayerComplexProto.java @@ -0,0 +1,1077 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: multipleLayerComplex.proto + +package org.akhq.utils; + +public final class MultipleLayerComplexProto { + private MultipleLayerComplexProto() {} + 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 MultipleLayerComplexOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.akhq.utils.MultipleLayerComplex) + com.google.protobuf.MessageOrBuilder { + + /** + * .org.akhq.utils.Album album = 1; + * @return Whether the album field is set. + */ + boolean hasAlbum(); + /** + * .org.akhq.utils.Album album = 1; + * @return The album. + */ + org.akhq.utils.AlbumProto.Album getAlbum(); + /** + * .org.akhq.utils.Album album = 1; + */ + org.akhq.utils.AlbumProto.AlbumOrBuilder getAlbumOrBuilder(); + + /** + * .org.akhq.utils.Film film = 2; + * @return Whether the film field is set. + */ + boolean hasFilm(); + /** + * .org.akhq.utils.Film film = 2; + * @return The film. + */ + org.akhq.utils.FilmProto.Film getFilm(); + /** + * .org.akhq.utils.Film film = 2; + */ + org.akhq.utils.FilmProto.FilmOrBuilder getFilmOrBuilder(); + + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + * @return Whether the complex field is set. + */ + boolean hasComplex(); + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + * @return The complex. + */ + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside getComplex(); + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + */ + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutsideOrBuilder getComplexOrBuilder(); + } + /** + * Protobuf type {@code org.akhq.utils.MultipleLayerComplex} + */ + public static final class MultipleLayerComplex extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:org.akhq.utils.MultipleLayerComplex) + MultipleLayerComplexOrBuilder { + private static final long serialVersionUID = 0L; + // Use MultipleLayerComplex.newBuilder() to construct. + private MultipleLayerComplex(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MultipleLayerComplex() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MultipleLayerComplex(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private MultipleLayerComplex( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + 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; + case 10: { + org.akhq.utils.AlbumProto.Album.Builder subBuilder = null; + if (album_ != null) { + subBuilder = album_.toBuilder(); + } + album_ = input.readMessage(org.akhq.utils.AlbumProto.Album.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(album_); + album_ = subBuilder.buildPartial(); + } + + break; + } + case 18: { + org.akhq.utils.FilmProto.Film.Builder subBuilder = null; + if (film_ != null) { + subBuilder = film_.toBuilder(); + } + film_ = input.readMessage(org.akhq.utils.FilmProto.Film.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(film_); + film_ = subBuilder.buildPartial(); + } + + break; + } + case 26: { + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.Builder subBuilder = null; + if (complex_ != null) { + subBuilder = complex_.toBuilder(); + } + complex_ = input.readMessage(org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(complex_); + complex_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.akhq.utils.MultipleLayerComplexProto.internal_static_org_akhq_utils_MultipleLayerComplex_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.akhq.utils.MultipleLayerComplexProto.internal_static_org_akhq_utils_MultipleLayerComplex_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex.class, org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex.Builder.class); + } + + public static final int ALBUM_FIELD_NUMBER = 1; + private org.akhq.utils.AlbumProto.Album album_; + /** + * .org.akhq.utils.Album album = 1; + * @return Whether the album field is set. + */ + public boolean hasAlbum() { + return album_ != null; + } + /** + * .org.akhq.utils.Album album = 1; + * @return The album. + */ + public org.akhq.utils.AlbumProto.Album getAlbum() { + return album_ == null ? org.akhq.utils.AlbumProto.Album.getDefaultInstance() : album_; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public org.akhq.utils.AlbumProto.AlbumOrBuilder getAlbumOrBuilder() { + return getAlbum(); + } + + public static final int FILM_FIELD_NUMBER = 2; + private org.akhq.utils.FilmProto.Film film_; + /** + * .org.akhq.utils.Film film = 2; + * @return Whether the film field is set. + */ + public boolean hasFilm() { + return film_ != null; + } + /** + * .org.akhq.utils.Film film = 2; + * @return The film. + */ + public org.akhq.utils.FilmProto.Film getFilm() { + return film_ == null ? org.akhq.utils.FilmProto.Film.getDefaultInstance() : film_; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public org.akhq.utils.FilmProto.FilmOrBuilder getFilmOrBuilder() { + return getFilm(); + } + + public static final int COMPLEX_FIELD_NUMBER = 3; + private org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside complex_; + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + * @return Whether the complex field is set. + */ + public boolean hasComplex() { + return complex_ != null; + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + * @return The complex. + */ + public org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside getComplex() { + return complex_ == null ? org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.getDefaultInstance() : complex_; + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + */ + public org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutsideOrBuilder getComplexOrBuilder() { + return getComplex(); + } + + 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 { + if (album_ != null) { + output.writeMessage(1, getAlbum()); + } + if (film_ != null) { + output.writeMessage(2, getFilm()); + } + if (complex_ != null) { + output.writeMessage(3, getComplex()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (album_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getAlbum()); + } + if (film_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getFilm()); + } + if (complex_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getComplex()); + } + 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 org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex)) { + return super.equals(obj); + } + org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex other = (org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex) obj; + + if (hasAlbum() != other.hasAlbum()) return false; + if (hasAlbum()) { + if (!getAlbum() + .equals(other.getAlbum())) return false; + } + if (hasFilm() != other.hasFilm()) return false; + if (hasFilm()) { + if (!getFilm() + .equals(other.getFilm())) return false; + } + if (hasComplex() != other.hasComplex()) return false; + if (hasComplex()) { + if (!getComplex() + .equals(other.getComplex())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasAlbum()) { + hash = (37 * hash) + ALBUM_FIELD_NUMBER; + hash = (53 * hash) + getAlbum().hashCode(); + } + if (hasFilm()) { + hash = (37 * hash) + FILM_FIELD_NUMBER; + hash = (53 * hash) + getFilm().hashCode(); + } + if (hasComplex()) { + hash = (37 * hash) + COMPLEX_FIELD_NUMBER; + hash = (53 * hash) + getComplex().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex 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 org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex 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 org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex 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.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code org.akhq.utils.MultipleLayerComplex} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:org.akhq.utils.MultipleLayerComplex) + org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplexOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.akhq.utils.MultipleLayerComplexProto.internal_static_org_akhq_utils_MultipleLayerComplex_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.akhq.utils.MultipleLayerComplexProto.internal_static_org_akhq_utils_MultipleLayerComplex_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex.class, org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex.Builder.class); + } + + // Construct using org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (albumBuilder_ == null) { + album_ = null; + } else { + album_ = null; + albumBuilder_ = null; + } + if (filmBuilder_ == null) { + film_ = null; + } else { + film_ = null; + filmBuilder_ = null; + } + if (complexBuilder_ == null) { + complex_ = null; + } else { + complex_ = null; + complexBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.akhq.utils.MultipleLayerComplexProto.internal_static_org_akhq_utils_MultipleLayerComplex_descriptor; + } + + @java.lang.Override + public org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex getDefaultInstanceForType() { + return org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex.getDefaultInstance(); + } + + @java.lang.Override + public org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex build() { + org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex buildPartial() { + org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex result = new org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex(this); + if (albumBuilder_ == null) { + result.album_ = album_; + } else { + result.album_ = albumBuilder_.build(); + } + if (filmBuilder_ == null) { + result.film_ = film_; + } else { + result.film_ = filmBuilder_.build(); + } + if (complexBuilder_ == null) { + result.complex_ = complex_; + } else { + result.complex_ = complexBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex) { + return mergeFrom((org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex other) { + if (other == org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex.getDefaultInstance()) return this; + if (other.hasAlbum()) { + mergeAlbum(other.getAlbum()); + } + if (other.hasFilm()) { + mergeFilm(other.getFilm()); + } + if (other.hasComplex()) { + mergeComplex(other.getComplex()); + } + this.mergeUnknownFields(other.unknownFields); + 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 { + org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private org.akhq.utils.AlbumProto.Album album_; + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.AlbumProto.Album, org.akhq.utils.AlbumProto.Album.Builder, org.akhq.utils.AlbumProto.AlbumOrBuilder> albumBuilder_; + /** + * .org.akhq.utils.Album album = 1; + * @return Whether the album field is set. + */ + public boolean hasAlbum() { + return albumBuilder_ != null || album_ != null; + } + /** + * .org.akhq.utils.Album album = 1; + * @return The album. + */ + public org.akhq.utils.AlbumProto.Album getAlbum() { + if (albumBuilder_ == null) { + return album_ == null ? org.akhq.utils.AlbumProto.Album.getDefaultInstance() : album_; + } else { + return albumBuilder_.getMessage(); + } + } + /** + * .org.akhq.utils.Album album = 1; + */ + public Builder setAlbum(org.akhq.utils.AlbumProto.Album value) { + if (albumBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + album_ = value; + onChanged(); + } else { + albumBuilder_.setMessage(value); + } + + return this; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public Builder setAlbum( + org.akhq.utils.AlbumProto.Album.Builder builderForValue) { + if (albumBuilder_ == null) { + album_ = builderForValue.build(); + onChanged(); + } else { + albumBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public Builder mergeAlbum(org.akhq.utils.AlbumProto.Album value) { + if (albumBuilder_ == null) { + if (album_ != null) { + album_ = + org.akhq.utils.AlbumProto.Album.newBuilder(album_).mergeFrom(value).buildPartial(); + } else { + album_ = value; + } + onChanged(); + } else { + albumBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public Builder clearAlbum() { + if (albumBuilder_ == null) { + album_ = null; + onChanged(); + } else { + album_ = null; + albumBuilder_ = null; + } + + return this; + } + /** + * .org.akhq.utils.Album album = 1; + */ + public org.akhq.utils.AlbumProto.Album.Builder getAlbumBuilder() { + + onChanged(); + return getAlbumFieldBuilder().getBuilder(); + } + /** + * .org.akhq.utils.Album album = 1; + */ + public org.akhq.utils.AlbumProto.AlbumOrBuilder getAlbumOrBuilder() { + if (albumBuilder_ != null) { + return albumBuilder_.getMessageOrBuilder(); + } else { + return album_ == null ? + org.akhq.utils.AlbumProto.Album.getDefaultInstance() : album_; + } + } + /** + * .org.akhq.utils.Album album = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.AlbumProto.Album, org.akhq.utils.AlbumProto.Album.Builder, org.akhq.utils.AlbumProto.AlbumOrBuilder> + getAlbumFieldBuilder() { + if (albumBuilder_ == null) { + albumBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.AlbumProto.Album, org.akhq.utils.AlbumProto.Album.Builder, org.akhq.utils.AlbumProto.AlbumOrBuilder>( + getAlbum(), + getParentForChildren(), + isClean()); + album_ = null; + } + return albumBuilder_; + } + + private org.akhq.utils.FilmProto.Film film_; + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.FilmProto.Film, org.akhq.utils.FilmProto.Film.Builder, org.akhq.utils.FilmProto.FilmOrBuilder> filmBuilder_; + /** + * .org.akhq.utils.Film film = 2; + * @return Whether the film field is set. + */ + public boolean hasFilm() { + return filmBuilder_ != null || film_ != null; + } + /** + * .org.akhq.utils.Film film = 2; + * @return The film. + */ + public org.akhq.utils.FilmProto.Film getFilm() { + if (filmBuilder_ == null) { + return film_ == null ? org.akhq.utils.FilmProto.Film.getDefaultInstance() : film_; + } else { + return filmBuilder_.getMessage(); + } + } + /** + * .org.akhq.utils.Film film = 2; + */ + public Builder setFilm(org.akhq.utils.FilmProto.Film value) { + if (filmBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + film_ = value; + onChanged(); + } else { + filmBuilder_.setMessage(value); + } + + return this; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public Builder setFilm( + org.akhq.utils.FilmProto.Film.Builder builderForValue) { + if (filmBuilder_ == null) { + film_ = builderForValue.build(); + onChanged(); + } else { + filmBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public Builder mergeFilm(org.akhq.utils.FilmProto.Film value) { + if (filmBuilder_ == null) { + if (film_ != null) { + film_ = + org.akhq.utils.FilmProto.Film.newBuilder(film_).mergeFrom(value).buildPartial(); + } else { + film_ = value; + } + onChanged(); + } else { + filmBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public Builder clearFilm() { + if (filmBuilder_ == null) { + film_ = null; + onChanged(); + } else { + film_ = null; + filmBuilder_ = null; + } + + return this; + } + /** + * .org.akhq.utils.Film film = 2; + */ + public org.akhq.utils.FilmProto.Film.Builder getFilmBuilder() { + + onChanged(); + return getFilmFieldBuilder().getBuilder(); + } + /** + * .org.akhq.utils.Film film = 2; + */ + public org.akhq.utils.FilmProto.FilmOrBuilder getFilmOrBuilder() { + if (filmBuilder_ != null) { + return filmBuilder_.getMessageOrBuilder(); + } else { + return film_ == null ? + org.akhq.utils.FilmProto.Film.getDefaultInstance() : film_; + } + } + /** + * .org.akhq.utils.Film film = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.FilmProto.Film, org.akhq.utils.FilmProto.Film.Builder, org.akhq.utils.FilmProto.FilmOrBuilder> + getFilmFieldBuilder() { + if (filmBuilder_ == null) { + filmBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.FilmProto.Film, org.akhq.utils.FilmProto.Film.Builder, org.akhq.utils.FilmProto.FilmOrBuilder>( + getFilm(), + getParentForChildren(), + isClean()); + film_ = null; + } + return filmBuilder_; + } + + private org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside complex_; + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside, org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.Builder, org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutsideOrBuilder> complexBuilder_; + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + * @return Whether the complex field is set. + */ + public boolean hasComplex() { + return complexBuilder_ != null || complex_ != null; + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + * @return The complex. + */ + public org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside getComplex() { + if (complexBuilder_ == null) { + return complex_ == null ? org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.getDefaultInstance() : complex_; + } else { + return complexBuilder_.getMessage(); + } + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + */ + public Builder setComplex(org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside value) { + if (complexBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + complex_ = value; + onChanged(); + } else { + complexBuilder_.setMessage(value); + } + + return this; + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + */ + public Builder setComplex( + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.Builder builderForValue) { + if (complexBuilder_ == null) { + complex_ = builderForValue.build(); + onChanged(); + } else { + complexBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + */ + public Builder mergeComplex(org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside value) { + if (complexBuilder_ == null) { + if (complex_ != null) { + complex_ = + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.newBuilder(complex_).mergeFrom(value).buildPartial(); + } else { + complex_ = value; + } + onChanged(); + } else { + complexBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + */ + public Builder clearComplex() { + if (complexBuilder_ == null) { + complex_ = null; + onChanged(); + } else { + complex_ = null; + complexBuilder_ = null; + } + + return this; + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + */ + public org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.Builder getComplexBuilder() { + + onChanged(); + return getComplexFieldBuilder().getBuilder(); + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + */ + public org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutsideOrBuilder getComplexOrBuilder() { + if (complexBuilder_ != null) { + return complexBuilder_.getMessageOrBuilder(); + } else { + return complex_ == null ? + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.getDefaultInstance() : complex_; + } + } + /** + * .org.akhq.utils.ComplexWithBookOutside complex = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside, org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.Builder, org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutsideOrBuilder> + getComplexFieldBuilder() { + if (complexBuilder_ == null) { + complexBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside, org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutside.Builder, org.akhq.utils.ComplexWithBookOutsideProto.ComplexWithBookOutsideOrBuilder>( + getComplex(), + getParentForChildren(), + isClean()); + complex_ = null; + } + return complexBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:org.akhq.utils.MultipleLayerComplex) + } + + // @@protoc_insertion_point(class_scope:org.akhq.utils.MultipleLayerComplex) + private static final org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex(); + } + + public static org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MultipleLayerComplex parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new MultipleLayerComplex(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.akhq.utils.MultipleLayerComplexProto.MultipleLayerComplex getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_org_akhq_utils_MultipleLayerComplex_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_org_akhq_utils_MultipleLayerComplex_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\032multipleLayerComplex.proto\022\016org.akhq.u" + + "tils\032\013album.proto\032\nfilm.proto\032\034complexWi" + + "thBookOutside.proto\"\231\001\n\024MultipleLayerCom" + + "plex\022$\n\005album\030\001 \001(\0132\025.org.akhq.utils.Alb" + + "um\022\"\n\004film\030\002 \001(\0132\024.org.akhq.utils.Film\0227" + + "\n\007complex\030\003 \001(\0132&.org.akhq.utils.Complex" + + "WithBookOutsideB+\n\016org.akhq.utilsB\031Multi" + + "pleLayerComplexProtob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + org.akhq.utils.AlbumProto.getDescriptor(), + org.akhq.utils.FilmProto.getDescriptor(), + org.akhq.utils.ComplexWithBookOutsideProto.getDescriptor(), + }); + internal_static_org_akhq_utils_MultipleLayerComplex_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_org_akhq_utils_MultipleLayerComplex_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_org_akhq_utils_MultipleLayerComplex_descriptor, + new java.lang.String[] { "Album", "Film", "Complex", }); + org.akhq.utils.AlbumProto.getDescriptor(); + org.akhq.utils.FilmProto.getDescriptor(); + org.akhq.utils.ComplexWithBookOutsideProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/src/test/java/org/akhq/utils/ProtobufToJsonDeserializerTest.java b/src/test/java/org/akhq/utils/ProtobufToJsonDeserializerTest.java index 59cb3872e..a33b2b85d 100644 --- a/src/test/java/org/akhq/utils/ProtobufToJsonDeserializerTest.java +++ b/src/test/java/org/akhq/utils/ProtobufToJsonDeserializerTest.java @@ -26,7 +26,9 @@ public class ProtobufToJsonDeserializerTest { ProtobufDeserializationTopicsMapping protobufDeserializationTopicsMapping; AlbumProto.Album albumProto; FilmProto.Film filmProto; - ComplexProto.Complex complexProtobufObject; + ComplexWithBookOutsideProto.ComplexWithBookOutside complexProtobufObjectWithBookOutside; + ComplexWithBookInsideProto.ComplexWithBookInside complexProtobufObjectWithBookInside; + MultipleLayerComplexProto.MultipleLayerComplex multipleLayerComplex; @BeforeEach @@ -34,7 +36,9 @@ public void before() throws URISyntaxException, IOException { createTopicProtobufDeserializationMapping(); createAlbumObject(); createFilmObject(); - createComplexObject(); + createComplexObjectWithBookOutside(); + createComplexObjectWithBookInside(); + createMultipleLayerComplex(); } private void createTopicProtobufDeserializationMapping() throws URISyntaxException, IOException { @@ -55,13 +59,25 @@ private void createTopicProtobufDeserializationMapping() throws URISyntaxExcepti filmTopicsMapping.setDescriptorFileBase64(base64FilmDescriptor); filmTopicsMapping.setValueMessageType("Film"); - TopicsMapping complexObjectTopicsMapping = new TopicsMapping(); - complexObjectTopicsMapping.setTopicRegex("complex.*"); - complexObjectTopicsMapping.setDescriptorFile("complex.desc"); - complexObjectTopicsMapping.setValueMessageType("Complex"); + TopicsMapping complexObjectTopicsMapping1 = new TopicsMapping(); + complexObjectTopicsMapping1.setTopicRegex("complex1.*"); + complexObjectTopicsMapping1.setDescriptorFile("complexWithBookOutside.desc"); + complexObjectTopicsMapping1.setValueMessageType("ComplexWithBookOutside"); + + TopicsMapping complexObjectTopicsMapping2 = new TopicsMapping(); + complexObjectTopicsMapping2.setTopicRegex("complex2.*"); + complexObjectTopicsMapping2.setDescriptorFile("complexWithBookInside.desc"); + complexObjectTopicsMapping2.setValueMessageType("ComplexWithBookInside"); + + TopicsMapping multipleLayerComplexObjectTopicsMapping = new TopicsMapping(); + multipleLayerComplexObjectTopicsMapping.setTopicRegex("multiple.*"); + multipleLayerComplexObjectTopicsMapping.setDescriptorFile("multipleLayerComplex.desc"); + multipleLayerComplexObjectTopicsMapping.setValueMessageType("MultipleLayerComplex"); protobufDeserializationTopicsMapping.setTopicsMapping( - Arrays.asList(albumTopicsMapping, filmTopicsMapping, complexObjectTopicsMapping)); + Arrays.asList(albumTopicsMapping, filmTopicsMapping, + complexObjectTopicsMapping1, complexObjectTopicsMapping2, + multipleLayerComplexObjectTopicsMapping)); } private String encodeDescriptorFileToBase64(String descriptorFileName) throws URISyntaxException, IOException { @@ -97,17 +113,42 @@ private void createFilmObject() { .build(); } - private void createComplexObject() { + private void createComplexObjectWithBookOutside() { BookProto.Book bookProto = BookProto.Book.newBuilder() .setTitle("Les Miserables") .setAuthor("Victor Hugo") .setPrice(DoubleValue.newBuilder().setValue(123d)) .build(); - complexProtobufObject = ComplexProto.Complex.newBuilder() + complexProtobufObjectWithBookOutside = ComplexWithBookOutsideProto.ComplexWithBookOutside.newBuilder() .setAlbum(albumProto) .setFilm(filmProto) .setAnything(Any.pack(bookProto)) - .setStringWrapper(StringValue.newBuilder().setValue("stringvalue").build()).build(); + .setStringWrapper(StringValue.newBuilder() + .setValue("Book message type described in outside proto-file").build()) + .build(); + } + + private void createComplexObjectWithBookInside() { + BookProto.Book bookProto = BookProto.Book.newBuilder() + .setTitle("Les Miserables") + .setAuthor("Victor Hugo") + .setPrice(DoubleValue.newBuilder().setValue(123d)) + .build(); + complexProtobufObjectWithBookInside = ComplexWithBookInsideProto.ComplexWithBookInside.newBuilder() + .setAlbum(albumProto) + .setFilm(filmProto) + .setAnything(Any.pack(bookProto)) + .setStringWrapper(StringValue.newBuilder() + .setValue("Book message type described inside complex object proto-file").build()) + .build(); + } + + private void createMultipleLayerComplex() { + multipleLayerComplex = MultipleLayerComplexProto.MultipleLayerComplex.newBuilder() + .setAlbum(albumProto) + .setFilm(filmProto) + .setComplex(complexProtobufObjectWithBookOutside) + .build(); } @Test @@ -160,15 +201,107 @@ public void deserializeForKeyWhenItsTypeNotSet() { } @Test - public void deserializeComplexObject() { + public void deserializeComplexObjectWithBookDescribedInOutsideFile() { ProtobufToJsonDeserializer protobufToJsonDeserializer = new ProtobufToJsonDeserializer(protobufDeserializationTopicsMapping); - final byte[] binaryComplexObject = complexProtobufObject.toByteArray(); + final byte[] binaryComplexObject = complexProtobufObjectWithBookOutside.toByteArray(); + String decodedComplexObject = protobufToJsonDeserializer.deserialize("complex1.topic.name", binaryComplexObject, false); + String expectedComplexObject = "{\n" + + " \"album\": {\n" + + " \"title\": \"Origins\",\n" + + " \"artist\": [\"Imagine Dragons\"],\n" + + " \"releaseYear\": 2018,\n" + + " \"songTitle\": [\"Birds\", \"Zero\", \"Natural\", \"Machine\"]\n" + + " },\n" + + " \"film\": {\n" + + " \"name\": \"Star Wars: The Force Awakens\",\n" + + " \"producer\": \"J. J. Abrams\",\n" + + " \"releaseYear\": 2015,\n" + + " \"duration\": 135,\n" + + " \"starring\": [\"Harrison Ford\", \"Mark Hamill\", \"Carrie Fisher\", \"Adam Driver\", \"Daisy Ridley\"]\n" + + " },\n" + + " \"stringWrapper\": \"Book message type described in outside proto-file\",\n" + + " \"anything\": {\n" + + " \"@type\": \"type.googleapis.com/org.akhq.utils.Book\",\n" + + " \"title\": \"Les Miserables\",\n" + + " \"author\": \"Victor Hugo\",\n" + + " \"price\": 123.0\n" + + " }\n" + + "}"; + assertEquals(expectedComplexObject, decodedComplexObject); + } - Exception exception = assertThrows(RuntimeException.class, () -> { - protobufToJsonDeserializer.deserialize("complex.topic.name", binaryComplexObject, false); - }); - String expectedMessage = "Cannot deserialize message with Protobuf deserializer"; - String actualMessage = exception.getMessage(); - assertTrue(actualMessage.contains(expectedMessage)); + @Test + public void deserializeComplexObjectWithBookDescribedInside() { + ProtobufToJsonDeserializer protobufToJsonDeserializer = new ProtobufToJsonDeserializer(protobufDeserializationTopicsMapping); + final byte[] binaryComplexObject = complexProtobufObjectWithBookInside.toByteArray(); + String decodedComplexObject = protobufToJsonDeserializer.deserialize("complex2.topic.name", binaryComplexObject, false); + String expectedComplexObject = "{\n" + + " \"album\": {\n" + + " \"title\": \"Origins\",\n" + + " \"artist\": [\"Imagine Dragons\"],\n" + + " \"releaseYear\": 2018,\n" + + " \"songTitle\": [\"Birds\", \"Zero\", \"Natural\", \"Machine\"]\n" + + " },\n" + + " \"film\": {\n" + + " \"name\": \"Star Wars: The Force Awakens\",\n" + + " \"producer\": \"J. J. Abrams\",\n" + + " \"releaseYear\": 2015,\n" + + " \"duration\": 135,\n" + + " \"starring\": [\"Harrison Ford\", \"Mark Hamill\", \"Carrie Fisher\", \"Adam Driver\", \"Daisy Ridley\"]\n" + + " },\n" + + " \"stringWrapper\": \"Book message type described inside complex object proto-file\",\n" + + " \"anything\": {\n" + + " \"@type\": \"type.googleapis.com/org.akhq.utils.Book\",\n" + + " \"title\": \"Les Miserables\",\n" + + " \"author\": \"Victor Hugo\",\n" + + " \"price\": 123.0\n" + + " }\n" + + "}"; + assertEquals(expectedComplexObject, decodedComplexObject); + } + + @Test + public void deserializeMultipleLayerComplex() { + ProtobufToJsonDeserializer protobufToJsonDeserializer = new ProtobufToJsonDeserializer(protobufDeserializationTopicsMapping); + final byte[] binaryMultipleLayerComplexObject = multipleLayerComplex.toByteArray(); + String decodedMultipleLayerComplexObject = protobufToJsonDeserializer.deserialize("multiple.complex.topic.name", binaryMultipleLayerComplexObject, false); + String expectedMultipleLayerComplexObject = "{\n" + + " \"album\": {\n" + + " \"title\": \"Origins\",\n" + + " \"artist\": [\"Imagine Dragons\"],\n" + + " \"releaseYear\": 2018,\n" + + " \"songTitle\": [\"Birds\", \"Zero\", \"Natural\", \"Machine\"]\n" + + " },\n" + + " \"film\": {\n" + + " \"name\": \"Star Wars: The Force Awakens\",\n" + + " \"producer\": \"J. J. Abrams\",\n" + + " \"releaseYear\": 2015,\n" + + " \"duration\": 135,\n" + + " \"starring\": [\"Harrison Ford\", \"Mark Hamill\", \"Carrie Fisher\", \"Adam Driver\", \"Daisy Ridley\"]\n" + + " },\n" + + " \"complex\": {\n" + + " \"album\": {\n" + + " \"title\": \"Origins\",\n" + + " \"artist\": [\"Imagine Dragons\"],\n" + + " \"releaseYear\": 2018,\n" + + " \"songTitle\": [\"Birds\", \"Zero\", \"Natural\", \"Machine\"]\n" + + " },\n" + + " \"film\": {\n" + + " \"name\": \"Star Wars: The Force Awakens\",\n" + + " \"producer\": \"J. J. Abrams\",\n" + + " \"releaseYear\": 2015,\n" + + " \"duration\": 135,\n" + + " \"starring\": [\"Harrison Ford\", \"Mark Hamill\", \"Carrie Fisher\", \"Adam Driver\", \"Daisy Ridley\"]\n" + + " },\n" + + " \"stringWrapper\": \"Book message type described in outside proto-file\",\n" + + " \"anything\": {\n" + + " \"@type\": \"type.googleapis.com/org.akhq.utils.Book\",\n" + + " \"title\": \"Les Miserables\",\n" + + " \"author\": \"Victor Hugo\",\n" + + " \"price\": 123.0\n" + + " }\n" + + " }\n" + + "}"; + assertEquals(expectedMultipleLayerComplexObject, decodedMultipleLayerComplexObject); } } diff --git a/src/test/resources/protobuf_desc/complexWithBookInside.desc b/src/test/resources/protobuf_desc/complexWithBookInside.desc new file mode 100644 index 000000000..abd42ecf7 --- /dev/null +++ b/src/test/resources/protobuf_desc/complexWithBookInside.desc @@ -0,0 +1,65 @@ + +¼ + album.protoorg.akhq.utils"w +Album +title ( Rtitle +artist ( Rartist! + release_year (R releaseYear + +song_title ( R songTitleB +org.akhq.utilsB +AlbumProtobproto3 +Õ + +film.protoorg.akhq.utils"‘ +Film +name ( Rname +producer ( Rproducer! + release_year (R releaseYear +duration (Rduration +starring ( RstarringB +org.akhq.utilsB FilmProtobproto3 +þ +google/protobuf/wrappers.protogoogle.protobuf"# + DoubleValue +value (Rvalue"" + +FloatValue +value (Rvalue"" + +Int64Value +value (Rvalue"# + UInt64Value +value (Rvalue"" + +Int32Value +value (Rvalue"# + UInt32Value +value ( Rvalue"! + BoolValue +value (Rvalue"# + StringValue +value ( Rvalue"" + +BytesValue +value ( RvalueB| +com.google.protobufB WrappersProtoPZ*github.com/golang/protobuf/ptypes/wrappersø¢GPBªGoogle.Protobuf.WellKnownTypesbproto3 +Ý +google/protobuf/any.protogoogle.protobuf"6 +Any +type_url ( RtypeUrl +value ( RvalueBo +com.google.protobufBAnyProtoPZ%github.com/golang/protobuf/ptypes/any¢GPBªGoogle.Protobuf.WellKnownTypesbproto3 +ˆ +complexWithBookInside.protoorg.akhq.utils album.proto +film.protogoogle/protobuf/wrappers.protogoogle/protobuf/any.proto"h +Book +title ( Rtitle +author ( Rauthor2 +price ( 2.google.protobuf.DoubleValueRprice"ä +ComplexWithBookInside+ +album ( 2.org.akhq.utils.AlbumRalbum( +film ( 2.org.akhq.utils.FilmRfilmB + stringWrapper ( 2.google.protobuf.StringValueR stringWrapper0 +anything ( 2.google.protobuf.AnyRanythingB, +org.akhq.utilsBComplexWithBookInsideProtobproto3 \ No newline at end of file diff --git a/src/test/resources/protobuf_desc/complex.desc b/src/test/resources/protobuf_desc/complexWithBookOutside.desc similarity index 87% rename from src/test/resources/protobuf_desc/complex.desc rename to src/test/resources/protobuf_desc/complexWithBookOutside.desc index 48e7556a9..78231b72d 100644 --- a/src/test/resources/protobuf_desc/complex.desc +++ b/src/test/resources/protobuf_desc/complexWithBookOutside.desc @@ -50,12 +50,12 @@ BytesValue type_url ( RtypeUrl value ( RvalueBo com.google.protobufBAnyProtoPZ%github.com/golang/protobuf/ptypes/any¢GPBªGoogle.Protobuf.WellKnownTypesbproto3 -ô - complex.protoorg.akhq.utils album.proto -film.protogoogle/protobuf/wrappers.protogoogle/protobuf/any.proto"Ö -Complex+ +¡ +complexWithBookOutside.protoorg.akhq.utils album.proto +film.protogoogle/protobuf/wrappers.protogoogle/protobuf/any.proto"å +ComplexWithBookOutside+ album ( 2.org.akhq.utils.AlbumRalbum( film ( 2.org.akhq.utils.FilmRfilmB stringWrapper ( 2.google.protobuf.StringValueR stringWrapper0 -anything ( 2.google.protobuf.AnyRanythingB -org.akhq.utilsB ComplexProtobproto3 \ No newline at end of file +anything ( 2.google.protobuf.AnyRanythingB- +org.akhq.utilsBComplexWithBookOutsideProtobproto3 \ No newline at end of file diff --git a/src/test/resources/protobuf_desc/multipleLayerComplex.desc b/src/test/resources/protobuf_desc/multipleLayerComplex.desc new file mode 100644 index 000000000..622f00dc2 --- /dev/null +++ b/src/test/resources/protobuf_desc/multipleLayerComplex.desc @@ -0,0 +1,69 @@ + +¼ + album.protoorg.akhq.utils"w +Album +title ( Rtitle +artist ( Rartist! + release_year (R releaseYear + +song_title ( R songTitleB +org.akhq.utilsB +AlbumProtobproto3 +Õ + +film.protoorg.akhq.utils"‘ +Film +name ( Rname +producer ( Rproducer! + release_year (R releaseYear +duration (Rduration +starring ( RstarringB +org.akhq.utilsB FilmProtobproto3 +þ +google/protobuf/wrappers.protogoogle.protobuf"# + DoubleValue +value (Rvalue"" + +FloatValue +value (Rvalue"" + +Int64Value +value (Rvalue"# + UInt64Value +value (Rvalue"" + +Int32Value +value (Rvalue"# + UInt32Value +value ( Rvalue"! + BoolValue +value (Rvalue"# + StringValue +value ( Rvalue"" + +BytesValue +value ( RvalueB| +com.google.protobufB WrappersProtoPZ*github.com/golang/protobuf/ptypes/wrappersø¢GPBªGoogle.Protobuf.WellKnownTypesbproto3 +Ý +google/protobuf/any.protogoogle.protobuf"6 +Any +type_url ( RtypeUrl +value ( RvalueBo +com.google.protobufBAnyProtoPZ%github.com/golang/protobuf/ptypes/any¢GPBªGoogle.Protobuf.WellKnownTypesbproto3 +¡ +complexWithBookOutside.protoorg.akhq.utils album.proto +film.protogoogle/protobuf/wrappers.protogoogle/protobuf/any.proto"å +ComplexWithBookOutside+ +album ( 2.org.akhq.utils.AlbumRalbum( +film ( 2.org.akhq.utils.FilmRfilmB + stringWrapper ( 2.google.protobuf.StringValueR stringWrapper0 +anything ( 2.google.protobuf.AnyRanythingB- +org.akhq.utilsBComplexWithBookOutsideProtobproto3 +Ê +multipleLayerComplex.protoorg.akhq.utils album.proto +film.protocomplexWithBookOutside.proto"¯ +MultipleLayerComplex+ +album ( 2.org.akhq.utils.AlbumRalbum( +film ( 2.org.akhq.utils.FilmRfilm@ +complex ( 2&.org.akhq.utils.ComplexWithBookOutsideRcomplexB+ +org.akhq.utilsBMultipleLayerComplexProtobproto3 \ No newline at end of file diff --git a/src/test/resources/protobuf_proto/complexWithBookInside.proto b/src/test/resources/protobuf_proto/complexWithBookInside.proto new file mode 100644 index 000000000..ae5eb9eb4 --- /dev/null +++ b/src/test/resources/protobuf_proto/complexWithBookInside.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; +package org.akhq.utils; + +import "album.proto"; +import "film.proto"; +import "google/protobuf/wrappers.proto"; +import "google/protobuf/any.proto"; + +option java_package = "org.akhq.utils"; +option java_outer_classname = "ComplexWithBookInsideProto"; + +message Book { + string title = 1; + string author = 2; + google.protobuf.DoubleValue price = 3; +} + +message ComplexWithBookInside { + Album album = 1; + Film film = 2; + google.protobuf.StringValue stringWrapper = 3; + google.protobuf.Any anything = 4; +} \ No newline at end of file diff --git a/src/test/resources/protobuf_proto/complex.proto b/src/test/resources/protobuf_proto/complexWithBookOutside.proto similarity index 77% rename from src/test/resources/protobuf_proto/complex.proto rename to src/test/resources/protobuf_proto/complexWithBookOutside.proto index 2729790df..a561b22f1 100644 --- a/src/test/resources/protobuf_proto/complex.proto +++ b/src/test/resources/protobuf_proto/complexWithBookOutside.proto @@ -7,9 +7,9 @@ import "google/protobuf/wrappers.proto"; import "google/protobuf/any.proto"; option java_package = "org.akhq.utils"; -option java_outer_classname = "ComplexProto"; +option java_outer_classname = "ComplexWithBookOutsideProto"; -message Complex { +message ComplexWithBookOutside { Album album = 1; Film film = 2; google.protobuf.StringValue stringWrapper = 3; diff --git a/src/test/resources/protobuf_proto/multipleLayerComplex.proto b/src/test/resources/protobuf_proto/multipleLayerComplex.proto new file mode 100644 index 000000000..f4fc562ae --- /dev/null +++ b/src/test/resources/protobuf_proto/multipleLayerComplex.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +package org.akhq.utils; + +import "album.proto"; +import "film.proto"; +import "complexWithBookOutside.proto"; + +option java_package = "org.akhq.utils"; +option java_outer_classname = "MultipleLayerComplexProto"; + +message MultipleLayerComplex { + Album album = 1; + Film film = 2; + ComplexWithBookOutside complex = 3; +} \ No newline at end of file