@java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDoubleType()) {
        hash = (37 * hash) + DOUBLETYPE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            java.lang.Double.doubleToLongBits(getDoubleType()));
      }
      if (hasFloatType()) {
        hash = (37 * hash) + FLOATTYPE_FIELD_NUMBER;
        hash = (53 * hash) + java.lang.Float.floatToIntBits(
            getFloatType());
      }
      if (hasInt32Type()) {
        hash = (37 * hash) + INT32TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getInt32Type();
      }
      if (hasInt64Type()) {
        hash = (37 * hash) + INT64TYPE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getInt64Type());
      }
      if (hasUint32Type()) {
        hash = (37 * hash) + UINT32TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getUint32Type();
      }
      if (hasUint64Type()) {
        hash = (37 * hash) + UINT64TYPE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getUint64Type());
      }
      if (hasSint32Type()) {
        hash = (37 * hash) + SINT32TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getSint32Type();
      }
      if (hasSint64Type()) {
        hash = (37 * hash) + SINT64TYPE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSint64Type());
      }
      if (hasFixed32Type()) {
        hash = (37 * hash) + FIXED32TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFixed32Type();
      }
      if (hasFixed64Type()) {
        hash = (37 * hash) + FIXED64TYPE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getFixed64Type());
      }
      if (hasSfixed32Type()) {
        hash = (37 * hash) + SFIXED32TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getSfixed32Type();
      }
      if (hasSfixed64Type()) {
        hash = (37 * hash) + SFIXED64TYPE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSfixed64Type());
      }
      if (hasBoolType()) {
        hash = (37 * hash) + BOOLTYPE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getBoolType());
      }
      if (hasStringType()) {
        hash = (37 * hash) + STRINGTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getStringType().hashCode();
      }
      if (hasBytesType()) {
        hash = (37 * hash) + BYTESTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getBytesType().hashCode();
      }
      if (getMapTypeCount() > 0) {
        hash = (37 * hash) + MAPTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getMapTypeList().hashCode();
      }
      if (getStringListTypeCount() > 0) {
        hash = (37 * hash) + STRINGLISTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getStringListTypeList().hashCode();
      }
      if (hasMessageType()) {
        hash = (37 * hash) + MESSAGETYPE_FIELD_NUMBER;
        hash = (53 * hash) + getMessageType().hashCode();
      }
      if (getMessageListTypeCount() > 0) {
        hash = (37 * hash) + MESSAGELISTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getMessageListTypeList().hashCode();
      }
      if (hasEnumType()) {
        hash = (37 * hash) + ENUMTYPE_FIELD_NUMBER;
        hash = (53 * hash) + enumType_;
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }
<code>optional .AllTypes.Enum1 enumType = 20;</code>
@return The enumType.
ql/src/gen/protobuf/gen-test/org/apache/hadoop/hive/ql/io/protobuf/SampleProtos.java