package com.knecon.fforesight.service.layoutparser.internal.api.data.redaction;

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: DocumentTextData.proto
// Protobuf Java Version: 4.27.1
@SuppressWarnings("all")
public final class DocumentTextDataProto {

    private DocumentTextDataProto() {}


    static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
                /* major= */ 4,
                /* minor= */ 27,
                /* patch= */ 1,
                /* suffix= */ "", DocumentTextDataProto.class.getName());
    }

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

    }


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

        registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
    }


    public interface AllDocumentTextDataOrBuilder extends
            // @@protoc_insertion_point(interface_extends:AllDocumentTextData)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        java.util.List<DocumentTextData> getDocumentTextDataList();


        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        DocumentTextData getDocumentTextData(int index);


        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        int getDocumentTextDataCount();


        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        java.util.List<? extends DocumentTextDataOrBuilder> getDocumentTextDataOrBuilderList();


        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        DocumentTextDataOrBuilder getDocumentTextDataOrBuilder(int index);

    }

    /**
     * Protobuf type {@code AllDocumentTextData}
     */
    public static final class AllDocumentTextData extends com.google.protobuf.GeneratedMessage implements
            // @@protoc_insertion_point(message_implements:AllDocumentTextData)
            AllDocumentTextDataOrBuilder {

        private static final long serialVersionUID = 0L;

        static {
            com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
                    /* major= */ 4,
                    /* minor= */ 27,
                    /* patch= */ 1,
                    /* suffix= */ "", AllDocumentTextData.class.getName());
        }

        // Use AllDocumentTextData.newBuilder() to construct.
        private AllDocumentTextData(com.google.protobuf.GeneratedMessage.Builder<?> builder) {

            super(builder);
        }


        private AllDocumentTextData() {

            documentTextData_ = java.util.Collections.emptyList();
        }


        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

            return DocumentTextDataProto.internal_static_AllDocumentTextData_descriptor;
        }


        @Override
        protected FieldAccessorTable internalGetFieldAccessorTable() {

            return DocumentTextDataProto.internal_static_AllDocumentTextData_fieldAccessorTable.ensureFieldAccessorsInitialized(AllDocumentTextData.class, Builder.class);
        }


        public static final int DOCUMENTTEXTDATA_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private java.util.List<DocumentTextData> documentTextData_;


        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        @Override
        public java.util.List<DocumentTextData> getDocumentTextDataList() {

            return documentTextData_;
        }


        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        @Override
        public java.util.List<? extends DocumentTextDataOrBuilder> getDocumentTextDataOrBuilderList() {

            return documentTextData_;
        }


        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        @Override
        public int getDocumentTextDataCount() {

            return documentTextData_.size();
        }


        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        @Override
        public DocumentTextData getDocumentTextData(int index) {

            return documentTextData_.get(index);
        }


        /**
         * <code>repeated .DocumentTextData documentTextData = 1;</code>
         */
        @Override
        public DocumentTextDataOrBuilder getDocumentTextDataOrBuilder(int index) {

            return documentTextData_.get(index);
        }


        private byte memoizedIsInitialized = -1;


        @Override
        public final boolean isInitialized() {

            byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) {
            return true;
          }
          if (isInitialized == 0) {
            return false;
          }

            memoizedIsInitialized = 1;
            return true;
        }


        @Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {

            for (int i = 0; i < documentTextData_.size(); i++) {
                output.writeMessage(1, documentTextData_.get(i));
            }
            getUnknownFields().writeTo(output);
        }


        @Override
        public int getSerializedSize() {

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

            size = 0;
            for (int i = 0; i < documentTextData_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, documentTextData_.get(i));
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }


        @Override
        public boolean equals(final Object obj) {

            if (obj == this) {
                return true;
            }
            if (!(obj instanceof AllDocumentTextData)) {
                return super.equals(obj);
            }
            AllDocumentTextData other = (AllDocumentTextData) obj;

          if (!getDocumentTextDataList().equals(other.getDocumentTextDataList())) {
            return false;
          }
          if (!getUnknownFields().equals(other.getUnknownFields())) {
            return false;
          }
            return true;
        }


        @Override
        public int hashCode() {

            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getDocumentTextDataCount() > 0) {
                hash = (37 * hash) + DOCUMENTTEXTDATA_FIELD_NUMBER;
                hash = (53 * hash) + getDocumentTextDataList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }


        public static AllDocumentTextData parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static AllDocumentTextData parseFrom(java.nio.ByteBuffer data,
                                                    com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static AllDocumentTextData parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static AllDocumentTextData parseFrom(com.google.protobuf.ByteString data,
                                                    com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static AllDocumentTextData parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static AllDocumentTextData parseFrom(byte[] data,
                                                    com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static AllDocumentTextData parseFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static AllDocumentTextData parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


        public static AllDocumentTextData parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
        }


        public static AllDocumentTextData parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }


        public static AllDocumentTextData parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static AllDocumentTextData parseFrom(com.google.protobuf.CodedInputStream input,
                                                    com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


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


        public static Builder newBuilder() {

            return DEFAULT_INSTANCE.toBuilder();
        }


        public static Builder newBuilder(AllDocumentTextData prototype) {

            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }


        @Override
        public Builder toBuilder() {

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


        @Override
        protected Builder newBuilderForType(BuilderParent parent) {

            Builder builder = new Builder(parent);
            return builder;
        }


        /**
         * Protobuf type {@code AllDocumentTextData}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:AllDocumentTextData)
                AllDocumentTextDataOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

                return DocumentTextDataProto.internal_static_AllDocumentTextData_descriptor;
            }


            @Override
            protected FieldAccessorTable internalGetFieldAccessorTable() {

                return DocumentTextDataProto.internal_static_AllDocumentTextData_fieldAccessorTable.ensureFieldAccessorsInitialized(AllDocumentTextData.class, Builder.class);
            }


            // Construct using DocumentTextDataOuterClass.AllDocumentTextData.newBuilder()
            private Builder() {

            }


            private Builder(BuilderParent parent) {

                super(parent);

            }


            @Override
            public Builder clear() {

                super.clear();
                bitField0_ = 0;
                if (documentTextDataBuilder_ == null) {
                    documentTextData_ = java.util.Collections.emptyList();
                } else {
                    documentTextData_ = null;
                    documentTextDataBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000001);
                return this;
            }


            @Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {

                return DocumentTextDataProto.internal_static_AllDocumentTextData_descriptor;
            }


            @Override
            public AllDocumentTextData getDefaultInstanceForType() {

                return AllDocumentTextData.getDefaultInstance();
            }


            @Override
            public AllDocumentTextData build() {

                AllDocumentTextData result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }


            @Override
            public AllDocumentTextData buildPartial() {

                AllDocumentTextData result = new AllDocumentTextData(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }


            private void buildPartialRepeatedFields(AllDocumentTextData result) {

                if (documentTextDataBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        documentTextData_ = java.util.Collections.unmodifiableList(documentTextData_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.documentTextData_ = documentTextData_;
                } else {
                    result.documentTextData_ = documentTextDataBuilder_.build();
                }
            }


            private void buildPartial0(AllDocumentTextData result) {

                int from_bitField0_ = bitField0_;
            }


            @Override
            public Builder mergeFrom(com.google.protobuf.Message other) {

                if (other instanceof AllDocumentTextData) {
                    return mergeFrom((AllDocumentTextData) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }


            public Builder mergeFrom(AllDocumentTextData other) {

              if (other == AllDocumentTextData.getDefaultInstance()) {
                return this;
              }
                if (documentTextDataBuilder_ == null) {
                    if (!other.documentTextData_.isEmpty()) {
                        if (documentTextData_.isEmpty()) {
                            documentTextData_ = other.documentTextData_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureDocumentTextDataIsMutable();
                            documentTextData_.addAll(other.documentTextData_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.documentTextData_.isEmpty()) {
                        if (documentTextDataBuilder_.isEmpty()) {
                            documentTextDataBuilder_.dispose();
                            documentTextDataBuilder_ = null;
                            documentTextData_ = other.documentTextData_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            documentTextDataBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getDocumentTextDataFieldBuilder() : null;
                        } else {
                            documentTextDataBuilder_.addAllMessages(other.documentTextData_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }


            @Override
            public final boolean isInitialized() {

                return true;
            }


            @Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

                if (extensionRegistry == null) {
                    throw new NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                DocumentTextData m = input.readMessage(DocumentTextData.parser(), extensionRegistry);
                                if (documentTextDataBuilder_ == null) {
                                    ensureDocumentTextDataIsMutable();
                                    documentTextData_.add(m);
                                } else {
                                    documentTextDataBuilder_.addMessage(m);
                                }
                                break;
                            } // case 10
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }


            private int bitField0_;

            private java.util.List<DocumentTextData> documentTextData_ = java.util.Collections.emptyList();


            private void ensureDocumentTextDataIsMutable() {

                if (!((bitField0_ & 0x00000001) != 0)) {
                    documentTextData_ = new java.util.ArrayList<DocumentTextData>(documentTextData_);
                    bitField0_ |= 0x00000001;
                }
            }


            private com.google.protobuf.RepeatedFieldBuilder<DocumentTextData, DocumentTextData.Builder, DocumentTextDataOrBuilder> documentTextDataBuilder_;


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public java.util.List<DocumentTextData> getDocumentTextDataList() {

                if (documentTextDataBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(documentTextData_);
                } else {
                    return documentTextDataBuilder_.getMessageList();
                }
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public int getDocumentTextDataCount() {

                if (documentTextDataBuilder_ == null) {
                    return documentTextData_.size();
                } else {
                    return documentTextDataBuilder_.getCount();
                }
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public DocumentTextData getDocumentTextData(int index) {

                if (documentTextDataBuilder_ == null) {
                    return documentTextData_.get(index);
                } else {
                    return documentTextDataBuilder_.getMessage(index);
                }
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public Builder setDocumentTextData(int index, DocumentTextData value) {

                if (documentTextDataBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDocumentTextDataIsMutable();
                    documentTextData_.set(index, value);
                    onChanged();
                } else {
                    documentTextDataBuilder_.setMessage(index, value);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public Builder setDocumentTextData(int index, DocumentTextData.Builder builderForValue) {

                if (documentTextDataBuilder_ == null) {
                    ensureDocumentTextDataIsMutable();
                    documentTextData_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    documentTextDataBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public Builder addDocumentTextData(DocumentTextData value) {

                if (documentTextDataBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDocumentTextDataIsMutable();
                    documentTextData_.add(value);
                    onChanged();
                } else {
                    documentTextDataBuilder_.addMessage(value);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public Builder addDocumentTextData(int index, DocumentTextData value) {

                if (documentTextDataBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureDocumentTextDataIsMutable();
                    documentTextData_.add(index, value);
                    onChanged();
                } else {
                    documentTextDataBuilder_.addMessage(index, value);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public Builder addDocumentTextData(DocumentTextData.Builder builderForValue) {

                if (documentTextDataBuilder_ == null) {
                    ensureDocumentTextDataIsMutable();
                    documentTextData_.add(builderForValue.build());
                    onChanged();
                } else {
                    documentTextDataBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public Builder addDocumentTextData(int index, DocumentTextData.Builder builderForValue) {

                if (documentTextDataBuilder_ == null) {
                    ensureDocumentTextDataIsMutable();
                    documentTextData_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    documentTextDataBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public Builder addAllDocumentTextData(Iterable<? extends DocumentTextData> values) {

                if (documentTextDataBuilder_ == null) {
                    ensureDocumentTextDataIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, documentTextData_);
                    onChanged();
                } else {
                    documentTextDataBuilder_.addAllMessages(values);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public Builder clearDocumentTextData() {

                if (documentTextDataBuilder_ == null) {
                    documentTextData_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    documentTextDataBuilder_.clear();
                }
                return this;
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public Builder removeDocumentTextData(int index) {

                if (documentTextDataBuilder_ == null) {
                    ensureDocumentTextDataIsMutable();
                    documentTextData_.remove(index);
                    onChanged();
                } else {
                    documentTextDataBuilder_.remove(index);
                }
                return this;
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public DocumentTextData.Builder getDocumentTextDataBuilder(int index) {

                return getDocumentTextDataFieldBuilder().getBuilder(index);
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public DocumentTextDataOrBuilder getDocumentTextDataOrBuilder(int index) {

                if (documentTextDataBuilder_ == null) {
                    return documentTextData_.get(index);
                } else {
                    return documentTextDataBuilder_.getMessageOrBuilder(index);
                }
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public java.util.List<? extends DocumentTextDataOrBuilder> getDocumentTextDataOrBuilderList() {

                if (documentTextDataBuilder_ != null) {
                    return documentTextDataBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(documentTextData_);
                }
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public DocumentTextData.Builder addDocumentTextDataBuilder() {

                return getDocumentTextDataFieldBuilder().addBuilder(DocumentTextData.getDefaultInstance());
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public DocumentTextData.Builder addDocumentTextDataBuilder(int index) {

                return getDocumentTextDataFieldBuilder().addBuilder(index, DocumentTextData.getDefaultInstance());
            }


            /**
             * <code>repeated .DocumentTextData documentTextData = 1;</code>
             */
            public java.util.List<DocumentTextData.Builder> getDocumentTextDataBuilderList() {

                return getDocumentTextDataFieldBuilder().getBuilderList();
            }


            private com.google.protobuf.RepeatedFieldBuilder<DocumentTextData, DocumentTextData.Builder, DocumentTextDataOrBuilder> getDocumentTextDataFieldBuilder() {

                if (documentTextDataBuilder_ == null) {
                    documentTextDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<DocumentTextData, DocumentTextData.Builder, DocumentTextDataOrBuilder>(documentTextData_,
                                                                                                                                                                   ((bitField0_
                                                                                                                                                                     & 0x00000001)
                                                                                                                                                                    != 0),
                                                                                                                                                                   getParentForChildren(),
                                                                                                                                                                   isClean());
                    documentTextData_ = null;
                }
                return documentTextDataBuilder_;
            }

            // @@protoc_insertion_point(builder_scope:AllDocumentTextData)
        }

        // @@protoc_insertion_point(class_scope:AllDocumentTextData)
        private static final AllDocumentTextData DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new AllDocumentTextData();
        }

        public static AllDocumentTextData getDefaultInstance() {

            return DEFAULT_INSTANCE;
        }


        private static final com.google.protobuf.Parser<AllDocumentTextData> PARSER = new com.google.protobuf.AbstractParser<AllDocumentTextData>() {
            @Override
            public AllDocumentTextData parsePartialFrom(com.google.protobuf.CodedInputStream input,
                                                        com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };


        public static com.google.protobuf.Parser<AllDocumentTextData> parser() {

            return PARSER;
        }


        @Override
        public com.google.protobuf.Parser<AllDocumentTextData> getParserForType() {

            return PARSER;
        }


        @Override
        public AllDocumentTextData getDefaultInstanceForType() {

            return DEFAULT_INSTANCE;
        }

    }

    public interface DocumentTextDataOrBuilder extends
            // @@protoc_insertion_point(interface_extends:DocumentTextData)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * Identifier of the text block.
         * </pre>
         *
         * <code>int64 id = 1;</code>
         *
         * @return The id.
         */
        long getId();


        /**
         * <pre>
         * The page the text block occurs on.
         * </pre>
         *
         * <code>int64 page = 2;</code>
         *
         * @return The page.
         */
        long getPage();


        /**
         * <pre>
         * The text of the text block.
         * </pre>
         *
         * <code>string searchText = 3;</code>
         *
         * @return The searchText.
         */
        String getSearchText();


        /**
         * <pre>
         * The text of the text block.
         * </pre>
         *
         * <code>string searchText = 3;</code>
         *
         * @return The bytes for searchText.
         */
        com.google.protobuf.ByteString getSearchTextBytes();


        /**
         * <pre>
         * Each text block is assigned a number on a page, starting from 0.
         * </pre>
         *
         * <code>int32 numberOnPage = 4;</code>
         *
         * @return The numberOnPage.
         */
        int getNumberOnPage();


        /**
         * <pre>
         * The text blocks are ordered, this number represents the start of the text block as a string offset.
         * </pre>
         *
         * <code>int32 start = 5;</code>
         *
         * @return The start.
         */
        int getStart();


        /**
         * <pre>
         * The text blocks are ordered, this number represents the end of the text block as a string offset.
         * </pre>
         *
         * <code>int32 end = 6;</code>
         *
         * @return The end.
         */
        int getEnd();


        /**
         * <pre>
         * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
         * </pre>
         *
         * <code>repeated int32 lineBreaks = 7;</code>
         *
         * @return A list containing the lineBreaks.
         */
        java.util.List<Integer> getLineBreaksList();


        /**
         * <pre>
         * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
         * </pre>
         *
         * <code>repeated int32 lineBreaks = 7;</code>
         *
         * @return The count of lineBreaks.
         */
        int getLineBreaksCount();


        /**
         * <pre>
         * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
         * </pre>
         *
         * <code>repeated int32 lineBreaks = 7;</code>
         *
         * @param index The index of the element to return.
         * @return The lineBreaks at the given index.
         */
        int getLineBreaks(int index);

    }

    /**
     * Protobuf type {@code DocumentTextData}
     */
    public static final class DocumentTextData extends com.google.protobuf.GeneratedMessage implements
            // @@protoc_insertion_point(message_implements:DocumentTextData)
            DocumentTextDataOrBuilder {

        private static final long serialVersionUID = 0L;

        static {
            com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
                    /* major= */ 4,
                    /* minor= */ 27,
                    /* patch= */ 1,
                    /* suffix= */ "", DocumentTextData.class.getName());
        }

        // Use DocumentTextData.newBuilder() to construct.
        private DocumentTextData(com.google.protobuf.GeneratedMessage.Builder<?> builder) {

            super(builder);
        }


        private DocumentTextData() {

            searchText_ = "";
            lineBreaks_ = emptyIntList();
        }


        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

            return DocumentTextDataProto.internal_static_DocumentTextData_descriptor;
        }


        @Override
        protected FieldAccessorTable internalGetFieldAccessorTable() {

            return DocumentTextDataProto.internal_static_DocumentTextData_fieldAccessorTable.ensureFieldAccessorsInitialized(DocumentTextData.class, Builder.class);
        }


        public static final int ID_FIELD_NUMBER = 1;
        private long id_ = 0L;


        /**
         * <pre>
         * Identifier of the text block.
         * </pre>
         *
         * <code>int64 id = 1;</code>
         *
         * @return The id.
         */
        @Override
        public long getId() {

            return id_;
        }


        public static final int PAGE_FIELD_NUMBER = 2;
        private long page_ = 0L;


        /**
         * <pre>
         * The page the text block occurs on.
         * </pre>
         *
         * <code>int64 page = 2;</code>
         *
         * @return The page.
         */
        @Override
        public long getPage() {

            return page_;
        }


        public static final int SEARCHTEXT_FIELD_NUMBER = 3;
        @SuppressWarnings("serial")
        private volatile Object searchText_ = "";


        /**
         * <pre>
         * The text of the text block.
         * </pre>
         *
         * <code>string searchText = 3;</code>
         *
         * @return The searchText.
         */
        @Override
        public String getSearchText() {

            Object ref = searchText_;
            if (ref instanceof String) {
                return (String) ref;
            } else {
                com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                String s = bs.toStringUtf8();
                searchText_ = s;
                return s;
            }
        }


        /**
         * <pre>
         * The text of the text block.
         * </pre>
         *
         * <code>string searchText = 3;</code>
         *
         * @return The bytes for searchText.
         */
        @Override
        public com.google.protobuf.ByteString getSearchTextBytes() {

            Object ref = searchText_;
            if (ref instanceof String) {
                com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                searchText_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }


        public static final int NUMBERONPAGE_FIELD_NUMBER = 4;
        private int numberOnPage_ = 0;


        /**
         * <pre>
         * Each text block is assigned a number on a page, starting from 0.
         * </pre>
         *
         * <code>int32 numberOnPage = 4;</code>
         *
         * @return The numberOnPage.
         */
        @Override
        public int getNumberOnPage() {

            return numberOnPage_;
        }


        public static final int START_FIELD_NUMBER = 5;
        private int start_ = 0;


        /**
         * <pre>
         * The text blocks are ordered, this number represents the start of the text block as a string offset.
         * </pre>
         *
         * <code>int32 start = 5;</code>
         *
         * @return The start.
         */
        @Override
        public int getStart() {

            return start_;
        }


        public static final int END_FIELD_NUMBER = 6;
        private int end_ = 0;


        /**
         * <pre>
         * The text blocks are ordered, this number represents the end of the text block as a string offset.
         * </pre>
         *
         * <code>int32 end = 6;</code>
         *
         * @return The end.
         */
        @Override
        public int getEnd() {

            return end_;
        }


        public static final int LINEBREAKS_FIELD_NUMBER = 7;
        @SuppressWarnings("serial")
        private com.google.protobuf.Internal.IntList lineBreaks_ = emptyIntList();


        /**
         * <pre>
         * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
         * </pre>
         *
         * <code>repeated int32 lineBreaks = 7;</code>
         *
         * @return A list containing the lineBreaks.
         */
        @Override
        public java.util.List<Integer> getLineBreaksList() {

            return lineBreaks_;
        }


        /**
         * <pre>
         * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
         * </pre>
         *
         * <code>repeated int32 lineBreaks = 7;</code>
         *
         * @return The count of lineBreaks.
         */
        public int getLineBreaksCount() {

            return lineBreaks_.size();
        }


        /**
         * <pre>
         * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
         * </pre>
         *
         * <code>repeated int32 lineBreaks = 7;</code>
         *
         * @param index The index of the element to return.
         * @return The lineBreaks at the given index.
         */
        public int getLineBreaks(int index) {

            return lineBreaks_.getInt(index);
        }


        private int lineBreaksMemoizedSerializedSize = -1;

        private byte memoizedIsInitialized = -1;


        @Override
        public final boolean isInitialized() {

            byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) {
            return true;
          }
          if (isInitialized == 0) {
            return false;
          }

            memoizedIsInitialized = 1;
            return true;
        }


        @Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {

            getSerializedSize();
            if (id_ != 0L) {
                output.writeInt64(1, id_);
            }
            if (page_ != 0L) {
                output.writeInt64(2, page_);
            }
            if (!com.google.protobuf.GeneratedMessage.isStringEmpty(searchText_)) {
                com.google.protobuf.GeneratedMessage.writeString(output, 3, searchText_);
            }
            if (numberOnPage_ != 0) {
                output.writeInt32(4, numberOnPage_);
            }
            if (start_ != 0) {
                output.writeInt32(5, start_);
            }
            if (end_ != 0) {
                output.writeInt32(6, end_);
            }
            if (getLineBreaksList().size() > 0) {
                output.writeUInt32NoTag(58);
                output.writeUInt32NoTag(lineBreaksMemoizedSerializedSize);
            }
            for (int i = 0; i < lineBreaks_.size(); i++) {
                output.writeInt32NoTag(lineBreaks_.getInt(i));
            }
            getUnknownFields().writeTo(output);
        }


        @Override
        public int getSerializedSize() {

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

            size = 0;
            if (id_ != 0L) {
                size += com.google.protobuf.CodedOutputStream.computeInt64Size(1, id_);
            }
            if (page_ != 0L) {
                size += com.google.protobuf.CodedOutputStream.computeInt64Size(2, page_);
            }
            if (!com.google.protobuf.GeneratedMessage.isStringEmpty(searchText_)) {
                size += com.google.protobuf.GeneratedMessage.computeStringSize(3, searchText_);
            }
            if (numberOnPage_ != 0) {
                size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, numberOnPage_);
            }
            if (start_ != 0) {
                size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, start_);
            }
            if (end_ != 0) {
                size += com.google.protobuf.CodedOutputStream.computeInt32Size(6, end_);
            }
            {
                int dataSize = 0;
                for (int i = 0; i < lineBreaks_.size(); i++) {
                    dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(lineBreaks_.getInt(i));
                }
                size += dataSize;
                if (!getLineBreaksList().isEmpty()) {
                    size += 1;
                    size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize);
                }
                lineBreaksMemoizedSerializedSize = dataSize;
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }


        @Override
        public boolean equals(final Object obj) {

            if (obj == this) {
                return true;
            }
            if (!(obj instanceof DocumentTextData)) {
                return super.equals(obj);
            }
            DocumentTextData other = (DocumentTextData) obj;

          if (getId() != other.getId()) {
            return false;
          }
          if (getPage() != other.getPage()) {
            return false;
          }
          if (!getSearchText().equals(other.getSearchText())) {
            return false;
          }
          if (getNumberOnPage() != other.getNumberOnPage()) {
            return false;
          }
          if (getStart() != other.getStart()) {
            return false;
          }
          if (getEnd() != other.getEnd()) {
            return false;
          }
          if (!getLineBreaksList().equals(other.getLineBreaksList())) {
            return false;
          }
          if (!getUnknownFields().equals(other.getUnknownFields())) {
            return false;
          }
            return true;
        }


        @Override
        public int hashCode() {

            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + ID_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getId());
            hash = (37 * hash) + PAGE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getPage());
            hash = (37 * hash) + SEARCHTEXT_FIELD_NUMBER;
            hash = (53 * hash) + getSearchText().hashCode();
            hash = (37 * hash) + NUMBERONPAGE_FIELD_NUMBER;
            hash = (53 * hash) + getNumberOnPage();
            hash = (37 * hash) + START_FIELD_NUMBER;
            hash = (53 * hash) + getStart();
            hash = (37 * hash) + END_FIELD_NUMBER;
            hash = (53 * hash) + getEnd();
            if (getLineBreaksCount() > 0) {
                hash = (37 * hash) + LINEBREAKS_FIELD_NUMBER;
                hash = (53 * hash) + getLineBreaksList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }


        public static DocumentTextData parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static DocumentTextData parseFrom(java.nio.ByteBuffer data,
                                                 com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static DocumentTextData parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static DocumentTextData parseFrom(com.google.protobuf.ByteString data,
                                                 com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static DocumentTextData parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static DocumentTextData parseFrom(byte[] data,
                                                 com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static DocumentTextData parseFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static DocumentTextData parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


        public static DocumentTextData parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
        }


        public static DocumentTextData parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }


        public static DocumentTextData parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static DocumentTextData parseFrom(com.google.protobuf.CodedInputStream input,
                                                 com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


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


        public static Builder newBuilder() {

            return DEFAULT_INSTANCE.toBuilder();
        }


        public static Builder newBuilder(DocumentTextData prototype) {

            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }


        @Override
        public Builder toBuilder() {

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


        @Override
        protected Builder newBuilderForType(BuilderParent parent) {

            Builder builder = new Builder(parent);
            return builder;
        }


        /**
         * Protobuf type {@code DocumentTextData}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:DocumentTextData)
                DocumentTextDataOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

                return DocumentTextDataProto.internal_static_DocumentTextData_descriptor;
            }


            @Override
            protected FieldAccessorTable internalGetFieldAccessorTable() {

                return DocumentTextDataProto.internal_static_DocumentTextData_fieldAccessorTable.ensureFieldAccessorsInitialized(DocumentTextData.class, Builder.class);
            }


            // Construct using DocumentTextDataOuterClass.DocumentTextData.newBuilder()
            private Builder() {

            }


            private Builder(BuilderParent parent) {

                super(parent);

            }


            @Override
            public Builder clear() {

                super.clear();
                bitField0_ = 0;
                id_ = 0L;
                page_ = 0L;
                searchText_ = "";
                numberOnPage_ = 0;
                start_ = 0;
                end_ = 0;
                lineBreaks_ = emptyIntList();
                return this;
            }


            @Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {

                return DocumentTextDataProto.internal_static_DocumentTextData_descriptor;
            }


            @Override
            public DocumentTextData getDefaultInstanceForType() {

                return DocumentTextData.getDefaultInstance();
            }


            @Override
            public DocumentTextData build() {

                DocumentTextData result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }


            @Override
            public DocumentTextData buildPartial() {

                DocumentTextData result = new DocumentTextData(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }


            private void buildPartial0(DocumentTextData result) {

                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.id_ = id_;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.page_ = page_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.searchText_ = searchText_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.numberOnPage_ = numberOnPage_;
                }
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    result.start_ = start_;
                }
                if (((from_bitField0_ & 0x00000020) != 0)) {
                    result.end_ = end_;
                }
                if (((from_bitField0_ & 0x00000040) != 0)) {
                    lineBreaks_.makeImmutable();
                    result.lineBreaks_ = lineBreaks_;
                }
            }


            @Override
            public Builder mergeFrom(com.google.protobuf.Message other) {

                if (other instanceof DocumentTextData) {
                    return mergeFrom((DocumentTextData) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }


            public Builder mergeFrom(DocumentTextData other) {

              if (other == DocumentTextData.getDefaultInstance()) {
                return this;
              }
                if (other.getId() != 0L) {
                    setId(other.getId());
                }
                if (other.getPage() != 0L) {
                    setPage(other.getPage());
                }
                if (!other.getSearchText().isEmpty()) {
                    searchText_ = other.searchText_;
                    bitField0_ |= 0x00000004;
                    onChanged();
                }
                if (other.getNumberOnPage() != 0) {
                    setNumberOnPage(other.getNumberOnPage());
                }
                if (other.getStart() != 0) {
                    setStart(other.getStart());
                }
                if (other.getEnd() != 0) {
                    setEnd(other.getEnd());
                }
                if (!other.lineBreaks_.isEmpty()) {
                    if (lineBreaks_.isEmpty()) {
                        lineBreaks_ = other.lineBreaks_;
                        lineBreaks_.makeImmutable();
                        bitField0_ |= 0x00000040;
                    } else {
                        ensureLineBreaksIsMutable();
                        lineBreaks_.addAll(other.lineBreaks_);
                    }
                    onChanged();
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }


            @Override
            public final boolean isInitialized() {

                return true;
            }


            @Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

                if (extensionRegistry == null) {
                    throw new NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 8: {
                                id_ = input.readInt64();
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 8
                            case 16: {
                                page_ = input.readInt64();
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 16
                            case 26: {
                                searchText_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 26
                            case 32: {
                                numberOnPage_ = input.readInt32();
                                bitField0_ |= 0x00000008;
                                break;
                            } // case 32
                            case 40: {
                                start_ = input.readInt32();
                                bitField0_ |= 0x00000010;
                                break;
                            } // case 40
                            case 48: {
                                end_ = input.readInt32();
                                bitField0_ |= 0x00000020;
                                break;
                            } // case 48
                            case 56: {
                                int v = input.readInt32();
                                ensureLineBreaksIsMutable();
                                lineBreaks_.addInt(v);
                                break;
                            } // case 56
                            case 58: {
                                int length = input.readRawVarint32();
                                int limit = input.pushLimit(length);
                                ensureLineBreaksIsMutable();
                                while (input.getBytesUntilLimit() > 0) {
                                    lineBreaks_.addInt(input.readInt32());
                                }
                                input.popLimit(limit);
                                break;
                            } // case 58
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }


            private int bitField0_;

            private long id_;


            /**
             * <pre>
             * Identifier of the text block.
             * </pre>
             *
             * <code>int64 id = 1;</code>
             *
             * @return The id.
             */
            @Override
            public long getId() {

                return id_;
            }


            /**
             * <pre>
             * Identifier of the text block.
             * </pre>
             *
             * <code>int64 id = 1;</code>
             *
             * @param value The id to set.
             * @return This builder for chaining.
             */
            public Builder setId(long value) {

                id_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Identifier of the text block.
             * </pre>
             *
             * <code>int64 id = 1;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearId() {

                bitField0_ = (bitField0_ & ~0x00000001);
                id_ = 0L;
                onChanged();
                return this;
            }


            private long page_;


            /**
             * <pre>
             * The page the text block occurs on.
             * </pre>
             *
             * <code>int64 page = 2;</code>
             *
             * @return The page.
             */
            @Override
            public long getPage() {

                return page_;
            }


            /**
             * <pre>
             * The page the text block occurs on.
             * </pre>
             *
             * <code>int64 page = 2;</code>
             *
             * @param value The page to set.
             * @return This builder for chaining.
             */
            public Builder setPage(long value) {

                page_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The page the text block occurs on.
             * </pre>
             *
             * <code>int64 page = 2;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearPage() {

                bitField0_ = (bitField0_ & ~0x00000002);
                page_ = 0L;
                onChanged();
                return this;
            }


            private Object searchText_ = "";


            /**
             * <pre>
             * The text of the text block.
             * </pre>
             *
             * <code>string searchText = 3;</code>
             *
             * @return The searchText.
             */
            public String getSearchText() {

                Object ref = searchText_;
                if (!(ref instanceof String)) {
                    com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
                    String s = bs.toStringUtf8();
                    searchText_ = s;
                    return s;
                } else {
                    return (String) ref;
                }
            }


            /**
             * <pre>
             * The text of the text block.
             * </pre>
             *
             * <code>string searchText = 3;</code>
             *
             * @return The bytes for searchText.
             */
            public com.google.protobuf.ByteString getSearchTextBytes() {

                Object ref = searchText_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((String) ref);
                    searchText_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }


            /**
             * <pre>
             * The text of the text block.
             * </pre>
             *
             * <code>string searchText = 3;</code>
             *
             * @param value The searchText to set.
             * @return This builder for chaining.
             */
            public Builder setSearchText(String value) {

                if (value == null) {
                    throw new NullPointerException();
                }
                searchText_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The text of the text block.
             * </pre>
             *
             * <code>string searchText = 3;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearSearchText() {

                searchText_ = getDefaultInstance().getSearchText();
                bitField0_ = (bitField0_ & ~0x00000004);
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The text of the text block.
             * </pre>
             *
             * <code>string searchText = 3;</code>
             *
             * @param value The bytes for searchText to set.
             * @return This builder for chaining.
             */
            public Builder setSearchTextBytes(com.google.protobuf.ByteString value) {

                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                searchText_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }


            private int numberOnPage_;


            /**
             * <pre>
             * Each text block is assigned a number on a page, starting from 0.
             * </pre>
             *
             * <code>int32 numberOnPage = 4;</code>
             *
             * @return The numberOnPage.
             */
            @Override
            public int getNumberOnPage() {

                return numberOnPage_;
            }


            /**
             * <pre>
             * Each text block is assigned a number on a page, starting from 0.
             * </pre>
             *
             * <code>int32 numberOnPage = 4;</code>
             *
             * @param value The numberOnPage to set.
             * @return This builder for chaining.
             */
            public Builder setNumberOnPage(int value) {

                numberOnPage_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Each text block is assigned a number on a page, starting from 0.
             * </pre>
             *
             * <code>int32 numberOnPage = 4;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearNumberOnPage() {

                bitField0_ = (bitField0_ & ~0x00000008);
                numberOnPage_ = 0;
                onChanged();
                return this;
            }


            private int start_;


            /**
             * <pre>
             * The text blocks are ordered, this number represents the start of the text block as a string offset.
             * </pre>
             *
             * <code>int32 start = 5;</code>
             *
             * @return The start.
             */
            @Override
            public int getStart() {

                return start_;
            }


            /**
             * <pre>
             * The text blocks are ordered, this number represents the start of the text block as a string offset.
             * </pre>
             *
             * <code>int32 start = 5;</code>
             *
             * @param value The start to set.
             * @return This builder for chaining.
             */
            public Builder setStart(int value) {

                start_ = value;
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The text blocks are ordered, this number represents the start of the text block as a string offset.
             * </pre>
             *
             * <code>int32 start = 5;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearStart() {

                bitField0_ = (bitField0_ & ~0x00000010);
                start_ = 0;
                onChanged();
                return this;
            }


            private int end_;


            /**
             * <pre>
             * The text blocks are ordered, this number represents the end of the text block as a string offset.
             * </pre>
             *
             * <code>int32 end = 6;</code>
             *
             * @return The end.
             */
            @Override
            public int getEnd() {

                return end_;
            }


            /**
             * <pre>
             * The text blocks are ordered, this number represents the end of the text block as a string offset.
             * </pre>
             *
             * <code>int32 end = 6;</code>
             *
             * @param value The end to set.
             * @return This builder for chaining.
             */
            public Builder setEnd(int value) {

                end_ = value;
                bitField0_ |= 0x00000020;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The text blocks are ordered, this number represents the end of the text block as a string offset.
             * </pre>
             *
             * <code>int32 end = 6;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearEnd() {

                bitField0_ = (bitField0_ & ~0x00000020);
                end_ = 0;
                onChanged();
                return this;
            }


            private com.google.protobuf.Internal.IntList lineBreaks_ = emptyIntList();


            private void ensureLineBreaksIsMutable() {

                if (!lineBreaks_.isModifiable()) {
                    lineBreaks_ = makeMutableCopy(lineBreaks_);
                }
                bitField0_ |= 0x00000040;
            }


            /**
             * <pre>
             * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
             * </pre>
             *
             * <code>repeated int32 lineBreaks = 7;</code>
             *
             * @return A list containing the lineBreaks.
             */
            public java.util.List<Integer> getLineBreaksList() {

                lineBreaks_.makeImmutable();
                return lineBreaks_;
            }


            /**
             * <pre>
             * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
             * </pre>
             *
             * <code>repeated int32 lineBreaks = 7;</code>
             *
             * @return The count of lineBreaks.
             */
            public int getLineBreaksCount() {

                return lineBreaks_.size();
            }


            /**
             * <pre>
             * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
             * </pre>
             *
             * <code>repeated int32 lineBreaks = 7;</code>
             *
             * @param index The index of the element to return.
             * @return The lineBreaks at the given index.
             */
            public int getLineBreaks(int index) {

                return lineBreaks_.getInt(index);
            }


            /**
             * <pre>
             * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
             * </pre>
             *
             * <code>repeated int32 lineBreaks = 7;</code>
             *
             * @param index The index to set the value at.
             * @param value The lineBreaks to set.
             * @return This builder for chaining.
             */
            public Builder setLineBreaks(int index, int value) {

                ensureLineBreaksIsMutable();
                lineBreaks_.setInt(index, value);
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
             * </pre>
             *
             * <code>repeated int32 lineBreaks = 7;</code>
             *
             * @param value The lineBreaks to add.
             * @return This builder for chaining.
             */
            public Builder addLineBreaks(int value) {

                ensureLineBreaksIsMutable();
                lineBreaks_.addInt(value);
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
             * </pre>
             *
             * <code>repeated int32 lineBreaks = 7;</code>
             *
             * @param values The lineBreaks to add.
             * @return This builder for chaining.
             */
            public Builder addAllLineBreaks(Iterable<? extends Integer> values) {

                ensureLineBreaksIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(values, lineBreaks_);
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.
             * </pre>
             *
             * <code>repeated int32 lineBreaks = 7;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearLineBreaks() {

                lineBreaks_ = emptyIntList();
                bitField0_ = (bitField0_ & ~0x00000040);
                onChanged();
                return this;
            }

            // @@protoc_insertion_point(builder_scope:DocumentTextData)
        }

        // @@protoc_insertion_point(class_scope:DocumentTextData)
        private static final DocumentTextData DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new DocumentTextData();
        }

        public static DocumentTextData getDefaultInstance() {

            return DEFAULT_INSTANCE;
        }


        private static final com.google.protobuf.Parser<DocumentTextData> PARSER = new com.google.protobuf.AbstractParser<DocumentTextData>() {
            @Override
            public DocumentTextData parsePartialFrom(com.google.protobuf.CodedInputStream input,
                                                     com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };


        public static com.google.protobuf.Parser<DocumentTextData> parser() {

            return PARSER;
        }


        @Override
        public com.google.protobuf.Parser<DocumentTextData> getParserForType() {

            return PARSER;
        }


        @Override
        public DocumentTextData getDefaultInstanceForType() {

            return DEFAULT_INSTANCE;
        }

    }

    private static final com.google.protobuf.Descriptors.Descriptor internal_static_AllDocumentTextData_descriptor;
    private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_AllDocumentTextData_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_DocumentTextData_descriptor;
    private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_DocumentTextData_fieldAccessorTable;


    public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {

        return descriptor;
    }


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

    static {
        String[] descriptorData = {"\n\026DocumentTextData.proto\"B\n\023AllDocumentT"
                                   + "extData\022+\n\020documentTextData\030\001 \003(\0132\021.Docu"
                                   + "mentTextData\"\206\001\n\020DocumentTextData\022\n\n\002id\030"
                                   + "\001 \001(\003\022\014\n\004page\030\002 \001(\003\022\022\n\nsearchText\030\003 \001(\t\022"
                                   + "\024\n\014numberOnPage\030\004 \001(\005\022\r\n\005start\030\005 \001(\005\022\013\n\003"
                                   + "end\030\006 \001(\005\022\022\n\nlineBreaks\030\007 \003(\005b\006proto3"};
        descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[]{});
        internal_static_AllDocumentTextData_descriptor = getDescriptor().getMessageTypes()
                .get(0);
        internal_static_AllDocumentTextData_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_AllDocumentTextData_descriptor,
                                                                                                                             new String[]{"DocumentTextData",});
        internal_static_DocumentTextData_descriptor = getDescriptor().getMessageTypes()
                .get(1);
        internal_static_DocumentTextData_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_DocumentTextData_descriptor,
                                                                                                                          new String[]{"Id", "Page", "SearchText", "NumberOnPage", "Start", "End", "LineBreaks",});
        descriptor.resolveAllFeaturesImmutable();
    }

    // @@protoc_insertion_point(outer_class_scope)
}
