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: DocumentStructure.proto
// Protobuf Java Version: 4.27.1
@SuppressWarnings("all")
public final class DocumentStructureProto {

    private DocumentStructureProto() {}


    static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
                /* major= */ 4,
                /* minor= */ 27,
                /* patch= */ 1,
                /* suffix= */ "", DocumentStructureProto.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 DocumentStructureOrBuilder extends
            // @@protoc_insertion_point(interface_extends:DocumentStructure)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * The root EntryData represents the Document.
         * </pre>
         *
         * <code>.EntryData root = 1;</code>
         *
         * @return Whether the root field is set.
         */
        boolean hasRoot();


        /**
         * <pre>
         * The root EntryData represents the Document.
         * </pre>
         *
         * <code>.EntryData root = 1;</code>
         *
         * @return The root.
         */
        EntryDataProto.EntryData getRoot();


        /**
         * <pre>
         * The root EntryData represents the Document.
         * </pre>
         *
         * <code>.EntryData root = 1;</code>
         */
        EntryDataProto.EntryDataOrBuilder getRootOrBuilder();

    }

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

        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= */ "", DocumentStructure.class.getName());
        }

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

            super(builder);
        }


        private DocumentStructure() {

        }


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

            return DocumentStructureProto.internal_static_DocumentStructure_descriptor;
        }


        @Override
        protected FieldAccessorTable internalGetFieldAccessorTable() {

            return DocumentStructureProto.internal_static_DocumentStructure_fieldAccessorTable.ensureFieldAccessorsInitialized(DocumentStructure.class, Builder.class);
        }


        private int bitField0_;
        public static final int ROOT_FIELD_NUMBER = 1;
        private EntryDataProto.EntryData root_;


        /**
         * <pre>
         * The root EntryData represents the Document.
         * </pre>
         *
         * <code>.EntryData root = 1;</code>
         *
         * @return Whether the root field is set.
         */
        @Override
        public boolean hasRoot() {

            return ((bitField0_ & 0x00000001) != 0);
        }


        /**
         * <pre>
         * The root EntryData represents the Document.
         * </pre>
         *
         * <code>.EntryData root = 1;</code>
         *
         * @return The root.
         */
        @Override
        public EntryDataProto.EntryData getRoot() {

            return root_ == null ? EntryDataProto.EntryData.getDefaultInstance() : root_;
        }


        /**
         * <pre>
         * The root EntryData represents the Document.
         * </pre>
         *
         * <code>.EntryData root = 1;</code>
         */
        @Override
        public EntryDataProto.EntryDataOrBuilder getRootOrBuilder() {

            return root_ == null ? EntryDataProto.EntryData.getDefaultInstance() : root_;
        }


        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 {

            if (((bitField0_ & 0x00000001) != 0)) {
                output.writeMessage(1, getRoot());
            }
            getUnknownFields().writeTo(output);
        }


        @Override
        public int getSerializedSize() {

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

            size = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getRoot());
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }


        @Override
        public boolean equals(final Object obj) {

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

          if (hasRoot() != other.hasRoot()) {
            return false;
          }
            if (hasRoot()) {
              if (!getRoot().equals(other.getRoot())) {
                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 (hasRoot()) {
                hash = (37 * hash) + ROOT_FIELD_NUMBER;
                hash = (53 * hash) + getRoot().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }


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

            return PARSER.parseFrom(data);
        }


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

            return PARSER.parseFrom(data, extensionRegistry);
        }


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

            return PARSER.parseFrom(data);
        }


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

            return PARSER.parseFrom(data, extensionRegistry);
        }


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

            return PARSER.parseFrom(data);
        }


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

            return PARSER.parseFrom(data, extensionRegistry);
        }


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

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


        public static DocumentStructure 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 DocumentStructure parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {

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


        public static DocumentStructure 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 DocumentStructure parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {

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


        public static DocumentStructure 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(DocumentStructure 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 DocumentStructure}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:DocumentStructure)
                DocumentStructureOrBuilder {

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

                return DocumentStructureProto.internal_static_DocumentStructure_descriptor;
            }


            @Override
            protected FieldAccessorTable internalGetFieldAccessorTable() {

                return DocumentStructureProto.internal_static_DocumentStructure_fieldAccessorTable.ensureFieldAccessorsInitialized(DocumentStructure.class, Builder.class);
            }


            // Construct using DocumentStructureOuterClass.DocumentStructure.newBuilder()
            private Builder() {

                maybeForceBuilderInitialization();
            }


            private Builder(BuilderParent parent) {

                super(parent);
                maybeForceBuilderInitialization();
            }


            private void maybeForceBuilderInitialization() {

                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
                    getRootFieldBuilder();
                }
            }


            @Override
            public Builder clear() {

                super.clear();
                bitField0_ = 0;
                root_ = null;
                if (rootBuilder_ != null) {
                    rootBuilder_.dispose();
                    rootBuilder_ = null;
                }
                return this;
            }


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

                return DocumentStructureProto.internal_static_DocumentStructure_descriptor;
            }


            @Override
            public DocumentStructure getDefaultInstanceForType() {

                return DocumentStructure.getDefaultInstance();
            }


            @Override
            public DocumentStructure build() {

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


            @Override
            public DocumentStructure buildPartial() {

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


            private void buildPartial0(DocumentStructure result) {

                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.root_ = rootBuilder_ == null ? root_ : rootBuilder_.build();
                    to_bitField0_ |= 0x00000001;
                }
                result.bitField0_ |= to_bitField0_;
            }


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

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


            public Builder mergeFrom(DocumentStructure other) {

              if (other == DocumentStructure.getDefaultInstance()) {
                return this;
              }
                if (other.hasRoot()) {
                    mergeRoot(other.getRoot());
                }
                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: {
                                input.readMessage(getRootFieldBuilder().getBuilder(), extensionRegistry);
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 10
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }


            private int bitField0_;

            private EntryDataProto.EntryData root_;
            private com.google.protobuf.SingleFieldBuilder<EntryDataProto.EntryData, EntryDataProto.EntryData.Builder, EntryDataProto.EntryDataOrBuilder> rootBuilder_;


            /**
             * <pre>
             * The root EntryData represents the Document.
             * </pre>
             *
             * <code>.EntryData root = 1;</code>
             *
             * @return Whether the root field is set.
             */
            public boolean hasRoot() {

                return ((bitField0_ & 0x00000001) != 0);
            }


            /**
             * <pre>
             * The root EntryData represents the Document.
             * </pre>
             *
             * <code>.EntryData root = 1;</code>
             *
             * @return The root.
             */
            public EntryDataProto.EntryData getRoot() {

                if (rootBuilder_ == null) {
                    return root_ == null ? EntryDataProto.EntryData.getDefaultInstance() : root_;
                } else {
                    return rootBuilder_.getMessage();
                }
            }


            /**
             * <pre>
             * The root EntryData represents the Document.
             * </pre>
             *
             * <code>.EntryData root = 1;</code>
             */
            public Builder setRoot(EntryDataProto.EntryData value) {

                if (rootBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    root_ = value;
                } else {
                    rootBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The root EntryData represents the Document.
             * </pre>
             *
             * <code>.EntryData root = 1;</code>
             */
            public Builder setRoot(EntryDataProto.EntryData.Builder builderForValue) {

                if (rootBuilder_ == null) {
                    root_ = builderForValue.build();
                } else {
                    rootBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The root EntryData represents the Document.
             * </pre>
             *
             * <code>.EntryData root = 1;</code>
             */
            public Builder mergeRoot(EntryDataProto.EntryData value) {

                if (rootBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0) && root_ != null && root_ != EntryDataProto.EntryData.getDefaultInstance()) {
                        getRootBuilder().mergeFrom(value);
                    } else {
                        root_ = value;
                    }
                } else {
                    rootBuilder_.mergeFrom(value);
                }
                if (root_ != null) {
                    bitField0_ |= 0x00000001;
                    onChanged();
                }
                return this;
            }


            /**
             * <pre>
             * The root EntryData represents the Document.
             * </pre>
             *
             * <code>.EntryData root = 1;</code>
             */
            public Builder clearRoot() {

                bitField0_ = (bitField0_ & ~0x00000001);
                root_ = null;
                if (rootBuilder_ != null) {
                    rootBuilder_.dispose();
                    rootBuilder_ = null;
                }
                onChanged();
                return this;
            }


            /**
             * <pre>
             * The root EntryData represents the Document.
             * </pre>
             *
             * <code>.EntryData root = 1;</code>
             */
            public EntryDataProto.EntryData.Builder getRootBuilder() {

                bitField0_ |= 0x00000001;
                onChanged();
                return getRootFieldBuilder().getBuilder();
            }


            /**
             * <pre>
             * The root EntryData represents the Document.
             * </pre>
             *
             * <code>.EntryData root = 1;</code>
             */
            public EntryDataProto.EntryDataOrBuilder getRootOrBuilder() {

                if (rootBuilder_ != null) {
                    return rootBuilder_.getMessageOrBuilder();
                } else {
                    return root_ == null ? EntryDataProto.EntryData.getDefaultInstance() : root_;
                }
            }


            /**
             * <pre>
             * The root EntryData represents the Document.
             * </pre>
             *
             * <code>.EntryData root = 1;</code>
             */
            private com.google.protobuf.SingleFieldBuilder<EntryDataProto.EntryData, EntryDataProto.EntryData.Builder, EntryDataProto.EntryDataOrBuilder> getRootFieldBuilder() {

                if (rootBuilder_ == null) {
                    rootBuilder_ = new com.google.protobuf.SingleFieldBuilder<EntryDataProto.EntryData, EntryDataProto.EntryData.Builder, EntryDataProto.EntryDataOrBuilder>(getRoot(),
                                                                                                                                                                             getParentForChildren(),
                                                                                                                                                                             isClean());
                    root_ = null;
                }
                return rootBuilder_;
            }

            // @@protoc_insertion_point(builder_scope:DocumentStructure)
        }

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

        static {
            DEFAULT_INSTANCE = new DocumentStructure();
        }

        public static DocumentStructure getDefaultInstance() {

            return DEFAULT_INSTANCE;
        }


        private static final com.google.protobuf.Parser<DocumentStructure> PARSER = new com.google.protobuf.AbstractParser<DocumentStructure>() {
            @Override
            public DocumentStructure 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<DocumentStructure> parser() {

            return PARSER;
        }


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

            return PARSER;
        }


        @Override
        public DocumentStructure getDefaultInstanceForType() {

            return DEFAULT_INSTANCE;
        }

    }

    private static final com.google.protobuf.Descriptors.Descriptor internal_static_DocumentStructure_descriptor;
    private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_DocumentStructure_fieldAccessorTable;


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

        return descriptor;
    }


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

    static {
        String[] descriptorData = {"\n\027DocumentStructure.proto\032\017EntryData.pro"
                                   + "to\"-\n\021DocumentStructure\022\030\n\004root\030\001 \001(\0132\n."
                                   + "EntryDatab\006proto3"};
        descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData,
                                                                                                   new com.google.protobuf.Descriptors.FileDescriptor[]{EntryDataProto.getDescriptor(),});
        internal_static_DocumentStructure_descriptor = getDescriptor().getMessageTypes()
                .get(0);
        internal_static_DocumentStructure_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_DocumentStructure_descriptor,
                                                                                                                           new String[]{"Root",});
        descriptor.resolveAllFeaturesImmutable();
        EntryDataProto.getDescriptor();
    }

    // @@protoc_insertion_point(outer_class_scope)
}
