/*
  Copyright 2021 The TensorFlow Authors. All Rights Reserved.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 ==============================================================================
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/framework/op_def.proto

package org.tensorflow.proto.framework;

/**
 * <pre>
 * Information about version-dependent deprecation of an op
 * </pre>
 *
 * Protobuf type {@code tensorflow.OpDeprecation}
 */
public  final class OpDeprecation extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:tensorflow.OpDeprecation)
    OpDeprecationOrBuilder {
private static final long serialVersionUID = 0L;

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

  private OpDeprecation() {
    explanation_ = "";
  }

  @Override
  @SuppressWarnings({"unused"})
  protected Object newInstance(
      UnusedPrivateParameter unused) {
    return new OpDeprecation();
  }

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

  private OpDeprecation(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new NullPointerException();
    }
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 8: {

            version_ = input.readInt32();
            break;
          }
          case 18: {
            String s = input.readStringRequireUtf8();

            explanation_ = s;
            break;
          }
          default: {
            if (!parseUnknownField(
                input, unknownFields, extensionRegistry, tag)) {
              done = true;
            }
            break;
          }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(
          e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

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

  @Override
  protected FieldAccessorTable
  internalGetFieldAccessorTable() {
    return OpDefProtos.internal_static_tensorflow_OpDeprecation_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            OpDeprecation.class, Builder.class);
  }

  public static final int VERSION_FIELD_NUMBER = 1;
  private int version_;

  /**
   * <pre>
   * First GraphDef version at which the op is disallowed.
   * </pre>
   *
   * <code>int32 version = 1;</code>
   */
  public int getVersion() {
    return version_;
  }

  public static final int EXPLANATION_FIELD_NUMBER = 2;
  private volatile Object explanation_;

  /**
   * <pre>
   * Explanation of why it was deprecated and what to use instead.
   * </pre>
   *
   * <code>string explanation = 2;</code>
   */
  public String getExplanation() {
    Object ref = explanation_;
    if (ref instanceof String) {
      return (String) ref;
    } else {
      com.google.protobuf.ByteString bs =
          (com.google.protobuf.ByteString) ref;
      String s = bs.toStringUtf8();
      explanation_ = s;
      return s;
    }
  }

  /**
   * <pre>
   * Explanation of why it was deprecated and what to use instead.
   * </pre>
   *
   * <code>string explanation = 2;</code>
   */
  public com.google.protobuf.ByteString
  getExplanationBytes() {
    Object ref = explanation_;
    if (ref instanceof String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8(
              (String) ref);
      explanation_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  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 (version_ != 0) {
      output.writeInt32(1, version_);
    }
    if (!getExplanationBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, explanation_);
    }
    unknownFields.writeTo(output);
  }

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

    size = 0;
    if (version_ != 0) {
      size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, version_);
    }
    if (!getExplanationBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, explanation_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

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

    if (getVersion()
        != other.getVersion()) {
      return false;
    }
    if (!getExplanation()
        .equals(other.getExplanation())) return false;
    if (!unknownFields.equals(other.unknownFields)) return false;
    return true;
  }

  @Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + VERSION_FIELD_NUMBER;
    hash = (53 * hash) + getVersion();
    hash = (37 * hash) + EXPLANATION_FIELD_NUMBER;
    hash = (53 * hash) + getExplanation().hashCode();
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  public static Builder newBuilder(OpDeprecation 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;
  }

  /**
   * <pre>
   * Information about version-dependent deprecation of an op
   * </pre>
   *
   * Protobuf type {@code tensorflow.OpDeprecation}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:tensorflow.OpDeprecation)
      OpDeprecationOrBuilder {

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

    @Override
    protected FieldAccessorTable
    internalGetFieldAccessorTable() {
      return OpDefProtos.internal_static_tensorflow_OpDeprecation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              OpDeprecation.class, Builder.class);
    }

    // Construct using org.tensorflow.proto.framework.OpDeprecation.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

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

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

    @Override
    public Builder clear() {
      super.clear();
      version_ = 0;

      explanation_ = "";

      return this;
    }

    @Override
    public com.google.protobuf.Descriptors.Descriptor
    getDescriptorForType() {
      return OpDefProtos.internal_static_tensorflow_OpDeprecation_descriptor;
    }

    @Override
    public OpDeprecation getDefaultInstanceForType() {
      return OpDeprecation.getDefaultInstance();
    }

    @Override
    public OpDeprecation build() {
      OpDeprecation result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @Override
    public OpDeprecation buildPartial() {
      OpDeprecation result = new OpDeprecation(this);
      result.version_ = version_;
      result.explanation_ = explanation_;
      onBuilt();
      return result;
    }

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

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

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

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

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

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

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

    public Builder mergeFrom(OpDeprecation other) {
      if (other == OpDeprecation.getDefaultInstance()) {
        return this;
      }
      if (other.getVersion() != 0) {
        setVersion(other.getVersion());
      }
      if (!other.getExplanation().isEmpty()) {
        explanation_ = other.explanation_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      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 {
      OpDeprecation parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage = (OpDeprecation) e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int version_ ;

    /**
     * <pre>
     * First GraphDef version at which the op is disallowed.
     * </pre>
     *
     * <code>int32 version = 1;</code>
     */
    public int getVersion() {
      return version_;
    }

    /**
     * <pre>
     * First GraphDef version at which the op is disallowed.
     * </pre>
     *
     * <code>int32 version = 1;</code>
     */
    public Builder setVersion(int value) {

      version_ = value;
      onChanged();
      return this;
    }

    /**
     * <pre>
     * First GraphDef version at which the op is disallowed.
     * </pre>
     *
     * <code>int32 version = 1;</code>
     */
    public Builder clearVersion() {

      version_ = 0;
      onChanged();
      return this;
    }

    private Object explanation_ = "";

    /**
     * <pre>
     * Explanation of why it was deprecated and what to use instead.
     * </pre>
     *
     * <code>string explanation = 2;</code>
     */
    public String getExplanation() {
      Object ref = explanation_;
      if (!(ref instanceof String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        explanation_ = s;
        return s;
      } else {
        return (String) ref;
      }
    }

    /**
     * <pre>
     * Explanation of why it was deprecated and what to use instead.
     * </pre>
     *
     * <code>string explanation = 2;</code>
     */
    public com.google.protobuf.ByteString
    getExplanationBytes() {
      Object ref = explanation_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        explanation_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    /**
     * <pre>
     * Explanation of why it was deprecated and what to use instead.
     * </pre>
     *
     * <code>string explanation = 2;</code>
     */
    public Builder setExplanation(
        String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      explanation_ = value;
      onChanged();
      return this;
    }

    /**
     * <pre>
     * Explanation of why it was deprecated and what to use instead.
     * </pre>
     *
     * <code>string explanation = 2;</code>
     */
    public Builder clearExplanation() {

      explanation_ = getDefaultInstance().getExplanation();
      onChanged();
      return this;
    }

    /**
     * <pre>
     * Explanation of why it was deprecated and what to use instead.
     * </pre>
     *
     * <code>string explanation = 2;</code>
     */
    public Builder setExplanationBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      explanation_ = value;
      onChanged();
      return this;
    }

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

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

    // @@protoc_insertion_point(builder_scope:tensorflow.OpDeprecation)
  }

  // @@protoc_insertion_point(class_scope:tensorflow.OpDeprecation)
  private static final OpDeprecation DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE = new OpDeprecation();
  }

  public static OpDeprecation getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

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

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

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

  @Override
  public OpDeprecation getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}

