content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: lot/datasink.proto
  
  package apsara.odps.lot;
  
  public final class DataSinkProtos {
    private DataSinkProtos() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
    }
    public interface DataSinkOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // required string Id = 1;
      boolean hasId();
      String getId();
      
      // required string ParentId = 2;
      boolean hasParentId();
      String getParentId();
      
      // optional .apsara.odps.lot.TableSink TableSink = 3;
      boolean hasTableSink();
      TableSinkProtos.TableSink getTableSink();
      TableSinkProtos.TableSinkOrBuilder getTableSinkOrBuilder();
      
      // optional .apsara.odps.lot.AdhocSink AdhocSink = 4;
      boolean hasAdhocSink();
      AdhocSinkProtos.AdhocSink getAdhocSink();
      AdhocSinkProtos.AdhocSinkOrBuilder getAdhocSinkOrBuilder();
      
      // optional .apsara.odps.lot.LanguageSink LanguageSink = 5;
      boolean hasLanguageSink();
      LanguageSinkProtos.LanguageSink getLanguageSink();
      LanguageSinkProtos.LanguageSinkOrBuilder getLanguageSinkOrBuilder();
      
      // optional .apsara.odps.lot.FakeSink FakeSink = 6;
      boolean hasFakeSink();
      FakeSinkProtos.FakeSink getFakeSink();
      FakeSinkProtos.FakeSinkOrBuilder getFakeSinkOrBuilder();
    }
    public static final class DataSink extends
        com.google.protobuf.GeneratedMessage
        implements DataSinkOrBuilder {
      // Use DataSink.newBuilder() to construct.
      private DataSink(Builder builder) {
        super(builder);
      }
      private DataSink(boolean noInit) {}
      
      private static final DataSink defaultInstance;
      public static DataSink getDefaultInstance() {
        return defaultInstance;
      }
      
      public DataSink getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return DataSinkProtos.internal_static_apsara_odps_lot_DataSink_descriptor;
      }
      
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return DataSinkProtos.internal_static_apsara_odps_lot_DataSink_fieldAccessorTable;
      }
      
      private int bitField0_;
      // required string Id = 1;
      public static final int ID_FIELD_NUMBER = 1;
      private Object id_;
      public boolean hasId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public String getId() {
        Object ref = id_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            id_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getIdBytes() {
        Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      // required string ParentId = 2;
      public static final int PARENTID_FIELD_NUMBER = 2;
      private Object parentId_;
      public boolean hasParentId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public String getParentId() {
        Object ref = parentId_;
        if (ref instanceof String) {
          return (String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
            parentId_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getParentIdBytes() {
        Object ref = parentId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          parentId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      // optional .apsara.odps.lot.TableSink TableSink = 3;
      public static final int TABLESINK_FIELD_NUMBER = 3;
      private TableSinkProtos.TableSink tableSink_;
      public boolean hasTableSink() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public TableSinkProtos.TableSink getTableSink() {
        return tableSink_;
      }
      public TableSinkProtos.TableSinkOrBuilder getTableSinkOrBuilder() {
        return tableSink_;
      }
      
      // optional .apsara.odps.lot.AdhocSink AdhocSink = 4;
      public static final int ADHOCSINK_FIELD_NUMBER = 4;
      private AdhocSinkProtos.AdhocSink adhocSink_;
      public boolean hasAdhocSink() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      public AdhocSinkProtos.AdhocSink getAdhocSink() {
        return adhocSink_;
      }
      public AdhocSinkProtos.AdhocSinkOrBuilder getAdhocSinkOrBuilder() {
        return adhocSink_;
      }
      
      // optional .apsara.odps.lot.LanguageSink LanguageSink = 5;
      public static final int LANGUAGESINK_FIELD_NUMBER = 5;
      private LanguageSinkProtos.LanguageSink languageSink_;
      public boolean hasLanguageSink() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      public LanguageSinkProtos.LanguageSink getLanguageSink() {
        return languageSink_;
      }
      public LanguageSinkProtos.LanguageSinkOrBuilder getLanguageSinkOrBuilder() {
        return languageSink_;
      }
      
      // optional .apsara.odps.lot.FakeSink FakeSink = 6;
      public static final int FAKESINK_FIELD_NUMBER = 6;
      private FakeSinkProtos.FakeSink fakeSink_;
      public boolean hasFakeSink() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      public FakeSinkProtos.FakeSink getFakeSink() {
        return fakeSink_;
      }
      public FakeSinkProtos.FakeSinkOrBuilder getFakeSinkOrBuilder() {
        return fakeSink_;
      }
      
      private void initFields() {
        id_ = "";
        parentId_ = "";
        tableSink_ = TableSinkProtos.TableSink.getDefaultInstance();
        adhocSink_ = AdhocSinkProtos.AdhocSink.getDefaultInstance();
        languageSink_ = LanguageSinkProtos.LanguageSink.getDefaultInstance();
        fakeSink_ = FakeSinkProtos.FakeSink.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (!hasId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasParentId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (hasTableSink()) {
          if (!getTableSink().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasLanguageSink()) {
          if (!getLanguageSink().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }
      
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getIdBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getParentIdBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(3, tableSink_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeMessage(4, adhocSink_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeMessage(5, languageSink_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeMessage(6, fakeSink_);
        }
        getUnknownFields().writeTo(output);
      }
      
      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
      
        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getIdBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getParentIdBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, tableSink_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, adhocSink_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, languageSink_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, fakeSink_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }
      
      private static final long serialVersionUID = 0L;
      @Override
      protected Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }
      
      public static DataSink parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static DataSink parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static DataSink parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static DataSink parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static DataSink parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static DataSink parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static DataSink parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static DataSink parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static DataSink parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static DataSink parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      
      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(DataSink prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }
      
      @Override
      protected Builder newBuilderForType(
          BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder<Builder>
         implements DataSinkOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return DataSinkProtos.internal_static_apsara_odps_lot_DataSink_descriptor;
        }
        
        protected FieldAccessorTable
            internalGetFieldAccessorTable() {
          return DataSinkProtos.internal_static_apsara_odps_lot_DataSink_fieldAccessorTable;
        }
        
        // Construct using apsara.odps.lot.DataSinkProtos.DataSink.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getTableSinkFieldBuilder();
            getAdhocSinkFieldBuilder();
            getLanguageSinkFieldBuilder();
            getFakeSinkFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          id_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          parentId_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          if (tableSinkBuilder_ == null) {
            tableSink_ = TableSinkProtos.TableSink.getDefaultInstance();
          } else {
            tableSinkBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          if (adhocSinkBuilder_ == null) {
            adhocSink_ = AdhocSinkProtos.AdhocSink.getDefaultInstance();
          } else {
            adhocSinkBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          if (languageSinkBuilder_ == null) {
            languageSink_ = LanguageSinkProtos.LanguageSink.getDefaultInstance();
          } else {
            languageSinkBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          if (fakeSinkBuilder_ == null) {
            fakeSink_ = FakeSinkProtos.FakeSink.getDefaultInstance();
          } else {
            fakeSinkBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return DataSink.getDescriptor();
        }
        
        public DataSink getDefaultInstanceForType() {
          return DataSink.getDefaultInstance();
        }
        
        public DataSink build() {
          DataSink result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private DataSink buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          DataSink result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public DataSink buildPartial() {
          DataSink result = new DataSink(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.id_ = id_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.parentId_ = parentId_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          if (tableSinkBuilder_ == null) {
            result.tableSink_ = tableSink_;
          } else {
            result.tableSink_ = tableSinkBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          if (adhocSinkBuilder_ == null) {
            result.adhocSink_ = adhocSink_;
          } else {
            result.adhocSink_ = adhocSinkBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          if (languageSinkBuilder_ == null) {
            result.languageSink_ = languageSink_;
          } else {
            result.languageSink_ = languageSinkBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          if (fakeSinkBuilder_ == null) {
            result.fakeSink_ = fakeSink_;
          } else {
            result.fakeSink_ = fakeSinkBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof DataSink) {
            return mergeFrom((DataSink)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(DataSink other) {
          if (other == DataSink.getDefaultInstance()) return this;
          if (other.hasId()) {
            setId(other.getId());
          }
          if (other.hasParentId()) {
            setParentId(other.getParentId());
          }
          if (other.hasTableSink()) {
            mergeTableSink(other.getTableSink());
          }
          if (other.hasAdhocSink()) {
            mergeAdhocSink(other.getAdhocSink());
          }
          if (other.hasLanguageSink()) {
            mergeLanguageSink(other.getLanguageSink());
          }
          if (other.hasFakeSink()) {
            mergeFakeSink(other.getFakeSink());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          if (!hasId()) {
            
            return false;
          }
          if (!hasParentId()) {
            
            return false;
          }
          if (hasTableSink()) {
            if (!getTableSink().isInitialized()) {
              
              return false;
            }
          }
          if (hasLanguageSink()) {
            if (!getLanguageSink().isInitialized()) {
              
              return false;
            }
          }
          return true;
        }
        
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder(
              this.getUnknownFields());
          while (true) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  this.setUnknownFields(unknownFields.build());
                  onChanged();
                  return this;
                }
                break;
              }
              case 10: {
                bitField0_ |= 0x00000001;
                id_ = input.readBytes();
                break;
              }
              case 18: {
                bitField0_ |= 0x00000002;
                parentId_ = input.readBytes();
                break;
              }
              case 26: {
                TableSinkProtos.TableSink.Builder subBuilder = TableSinkProtos.TableSink.newBuilder();
                if (hasTableSink()) {
                  subBuilder.mergeFrom(getTableSink());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setTableSink(subBuilder.buildPartial());
                break;
              }
              case 34: {
                AdhocSinkProtos.AdhocSink.Builder subBuilder = AdhocSinkProtos.AdhocSink.newBuilder();
                if (hasAdhocSink()) {
                  subBuilder.mergeFrom(getAdhocSink());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setAdhocSink(subBuilder.buildPartial());
                break;
              }
              case 42: {
                LanguageSinkProtos.LanguageSink.Builder subBuilder = LanguageSinkProtos.LanguageSink.newBuilder();
                if (hasLanguageSink()) {
                  subBuilder.mergeFrom(getLanguageSink());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setLanguageSink(subBuilder.buildPartial());
                break;
              }
              case 50: {
                FakeSinkProtos.FakeSink.Builder subBuilder = FakeSinkProtos.FakeSink.newBuilder();
                if (hasFakeSink()) {
                  subBuilder.mergeFrom(getFakeSink());
                }
                input.readMessage(subBuilder, extensionRegistry);
                setFakeSink(subBuilder.buildPartial());
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required string Id = 1;
        private Object id_ = "";
        public boolean hasId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public String getId() {
          Object ref = id_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            id_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setId(String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
          id_ = value;
          onChanged();
          return this;
        }
        public Builder clearId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          id_ = getDefaultInstance().getId();
          onChanged();
          return this;
        }
        void setId(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000001;
          id_ = value;
          onChanged();
        }
        
        // required string ParentId = 2;
        private Object parentId_ = "";
        public boolean hasParentId() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public String getParentId() {
          Object ref = parentId_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            parentId_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setParentId(String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
          parentId_ = value;
          onChanged();
          return this;
        }
        public Builder clearParentId() {
          bitField0_ = (bitField0_ & ~0x00000002);
          parentId_ = getDefaultInstance().getParentId();
          onChanged();
          return this;
        }
        void setParentId(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000002;
          parentId_ = value;
          onChanged();
        }
        
        // optional .apsara.odps.lot.TableSink TableSink = 3;
        private TableSinkProtos.TableSink tableSink_ = TableSinkProtos.TableSink.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            TableSinkProtos.TableSink, TableSinkProtos.TableSink.Builder, TableSinkProtos.TableSinkOrBuilder> tableSinkBuilder_;
        public boolean hasTableSink() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public TableSinkProtos.TableSink getTableSink() {
          if (tableSinkBuilder_ == null) {
            return tableSink_;
          } else {
            return tableSinkBuilder_.getMessage();
          }
        }
        public Builder setTableSink(TableSinkProtos.TableSink value) {
          if (tableSinkBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            tableSink_ = value;
            onChanged();
          } else {
            tableSinkBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder setTableSink(
            TableSinkProtos.TableSink.Builder builderForValue) {
          if (tableSinkBuilder_ == null) {
            tableSink_ = builderForValue.build();
            onChanged();
          } else {
            tableSinkBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder mergeTableSink(TableSinkProtos.TableSink value) {
          if (tableSinkBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004) &&
                tableSink_ != TableSinkProtos.TableSink.getDefaultInstance()) {
              tableSink_ =
                TableSinkProtos.TableSink.newBuilder(tableSink_).mergeFrom(value).buildPartial();
            } else {
              tableSink_ = value;
            }
            onChanged();
          } else {
            tableSinkBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000004;
          return this;
        }
        public Builder clearTableSink() {
          if (tableSinkBuilder_ == null) {
            tableSink_ = TableSinkProtos.TableSink.getDefaultInstance();
            onChanged();
          } else {
            tableSinkBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }
        public TableSinkProtos.TableSink.Builder getTableSinkBuilder() {
          bitField0_ |= 0x00000004;
          onChanged();
          return getTableSinkFieldBuilder().getBuilder();
        }
        public TableSinkProtos.TableSinkOrBuilder getTableSinkOrBuilder() {
          if (tableSinkBuilder_ != null) {
            return tableSinkBuilder_.getMessageOrBuilder();
          } else {
            return tableSink_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            TableSinkProtos.TableSink, TableSinkProtos.TableSink.Builder, TableSinkProtos.TableSinkOrBuilder>
            getTableSinkFieldBuilder() {
          if (tableSinkBuilder_ == null) {
            tableSinkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                TableSinkProtos.TableSink, TableSinkProtos.TableSink.Builder, TableSinkProtos.TableSinkOrBuilder>(
                    tableSink_,
                    getParentForChildren(),
                    isClean());
            tableSink_ = null;
          }
          return tableSinkBuilder_;
        }
        
        // optional .apsara.odps.lot.AdhocSink AdhocSink = 4;
        private AdhocSinkProtos.AdhocSink adhocSink_ = AdhocSinkProtos.AdhocSink.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            AdhocSinkProtos.AdhocSink, AdhocSinkProtos.AdhocSink.Builder, AdhocSinkProtos.AdhocSinkOrBuilder> adhocSinkBuilder_;
        public boolean hasAdhocSink() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        public AdhocSinkProtos.AdhocSink getAdhocSink() {
          if (adhocSinkBuilder_ == null) {
            return adhocSink_;
          } else {
            return adhocSinkBuilder_.getMessage();
          }
        }
        public Builder setAdhocSink(AdhocSinkProtos.AdhocSink value) {
          if (adhocSinkBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            adhocSink_ = value;
            onChanged();
          } else {
            adhocSinkBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder setAdhocSink(
            AdhocSinkProtos.AdhocSink.Builder builderForValue) {
          if (adhocSinkBuilder_ == null) {
            adhocSink_ = builderForValue.build();
            onChanged();
          } else {
            adhocSinkBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder mergeAdhocSink(AdhocSinkProtos.AdhocSink value) {
          if (adhocSinkBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008) &&
                adhocSink_ != AdhocSinkProtos.AdhocSink.getDefaultInstance()) {
              adhocSink_ =
                AdhocSinkProtos.AdhocSink.newBuilder(adhocSink_).mergeFrom(value).buildPartial();
            } else {
              adhocSink_ = value;
            }
            onChanged();
          } else {
            adhocSinkBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000008;
          return this;
        }
        public Builder clearAdhocSink() {
          if (adhocSinkBuilder_ == null) {
            adhocSink_ = AdhocSinkProtos.AdhocSink.getDefaultInstance();
            onChanged();
          } else {
            adhocSinkBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }
        public AdhocSinkProtos.AdhocSink.Builder getAdhocSinkBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getAdhocSinkFieldBuilder().getBuilder();
        }
        public AdhocSinkProtos.AdhocSinkOrBuilder getAdhocSinkOrBuilder() {
          if (adhocSinkBuilder_ != null) {
            return adhocSinkBuilder_.getMessageOrBuilder();
          } else {
            return adhocSink_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            AdhocSinkProtos.AdhocSink, AdhocSinkProtos.AdhocSink.Builder, AdhocSinkProtos.AdhocSinkOrBuilder>
            getAdhocSinkFieldBuilder() {
          if (adhocSinkBuilder_ == null) {
            adhocSinkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                AdhocSinkProtos.AdhocSink, AdhocSinkProtos.AdhocSink.Builder, AdhocSinkProtos.AdhocSinkOrBuilder>(
                    adhocSink_,
                    getParentForChildren(),
                    isClean());
            adhocSink_ = null;
          }
          return adhocSinkBuilder_;
        }
        
        // optional .apsara.odps.lot.LanguageSink LanguageSink = 5;
        private LanguageSinkProtos.LanguageSink languageSink_ = LanguageSinkProtos.LanguageSink.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            LanguageSinkProtos.LanguageSink, LanguageSinkProtos.LanguageSink.Builder, LanguageSinkProtos.LanguageSinkOrBuilder> languageSinkBuilder_;
        public boolean hasLanguageSink() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        public LanguageSinkProtos.LanguageSink getLanguageSink() {
          if (languageSinkBuilder_ == null) {
            return languageSink_;
          } else {
            return languageSinkBuilder_.getMessage();
          }
        }
        public Builder setLanguageSink(LanguageSinkProtos.LanguageSink value) {
          if (languageSinkBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            languageSink_ = value;
            onChanged();
          } else {
            languageSinkBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder setLanguageSink(
            LanguageSinkProtos.LanguageSink.Builder builderForValue) {
          if (languageSinkBuilder_ == null) {
            languageSink_ = builderForValue.build();
            onChanged();
          } else {
            languageSinkBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder mergeLanguageSink(LanguageSinkProtos.LanguageSink value) {
          if (languageSinkBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010) &&
                languageSink_ != LanguageSinkProtos.LanguageSink.getDefaultInstance()) {
              languageSink_ =
                LanguageSinkProtos.LanguageSink.newBuilder(languageSink_).mergeFrom(value).buildPartial();
            } else {
              languageSink_ = value;
            }
            onChanged();
          } else {
            languageSinkBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        public Builder clearLanguageSink() {
          if (languageSinkBuilder_ == null) {
            languageSink_ = LanguageSinkProtos.LanguageSink.getDefaultInstance();
            onChanged();
          } else {
            languageSinkBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        public LanguageSinkProtos.LanguageSink.Builder getLanguageSinkBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getLanguageSinkFieldBuilder().getBuilder();
        }
        public LanguageSinkProtos.LanguageSinkOrBuilder getLanguageSinkOrBuilder() {
          if (languageSinkBuilder_ != null) {
            return languageSinkBuilder_.getMessageOrBuilder();
          } else {
            return languageSink_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            LanguageSinkProtos.LanguageSink, LanguageSinkProtos.LanguageSink.Builder, LanguageSinkProtos.LanguageSinkOrBuilder>
            getLanguageSinkFieldBuilder() {
          if (languageSinkBuilder_ == null) {
            languageSinkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                LanguageSinkProtos.LanguageSink, LanguageSinkProtos.LanguageSink.Builder, LanguageSinkProtos.LanguageSinkOrBuilder>(
                    languageSink_,
                    getParentForChildren(),
                    isClean());
            languageSink_ = null;
          }
          return languageSinkBuilder_;
        }
        
        // optional .apsara.odps.lot.FakeSink FakeSink = 6;
        private FakeSinkProtos.FakeSink fakeSink_ = FakeSinkProtos.FakeSink.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            FakeSinkProtos.FakeSink, FakeSinkProtos.FakeSink.Builder, FakeSinkProtos.FakeSinkOrBuilder> fakeSinkBuilder_;
        public boolean hasFakeSink() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        public FakeSinkProtos.FakeSink getFakeSink() {
          if (fakeSinkBuilder_ == null) {
            return fakeSink_;
          } else {
            return fakeSinkBuilder_.getMessage();
          }
        }
        public Builder setFakeSink(FakeSinkProtos.FakeSink value) {
          if (fakeSinkBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            fakeSink_ = value;
            onChanged();
          } else {
            fakeSinkBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder setFakeSink(
            FakeSinkProtos.FakeSink.Builder builderForValue) {
          if (fakeSinkBuilder_ == null) {
            fakeSink_ = builderForValue.build();
            onChanged();
          } else {
            fakeSinkBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder mergeFakeSink(FakeSinkProtos.FakeSink value) {
          if (fakeSinkBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020) &&
                fakeSink_ != FakeSinkProtos.FakeSink.getDefaultInstance()) {
              fakeSink_ =
                FakeSinkProtos.FakeSink.newBuilder(fakeSink_).mergeFrom(value).buildPartial();
            } else {
              fakeSink_ = value;
            }
            onChanged();
          } else {
            fakeSinkBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        public Builder clearFakeSink() {
          if (fakeSinkBuilder_ == null) {
            fakeSink_ = FakeSinkProtos.FakeSink.getDefaultInstance();
            onChanged();
          } else {
            fakeSinkBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }
        public FakeSinkProtos.FakeSink.Builder getFakeSinkBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getFakeSinkFieldBuilder().getBuilder();
        }
        public FakeSinkProtos.FakeSinkOrBuilder getFakeSinkOrBuilder() {
          if (fakeSinkBuilder_ != null) {
            return fakeSinkBuilder_.getMessageOrBuilder();
          } else {
            return fakeSink_;
          }
        }
        private com.google.protobuf.SingleFieldBuilder<
            FakeSinkProtos.FakeSink, FakeSinkProtos.FakeSink.Builder, FakeSinkProtos.FakeSinkOrBuilder>
            getFakeSinkFieldBuilder() {
          if (fakeSinkBuilder_ == null) {
            fakeSinkBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                FakeSinkProtos.FakeSink, FakeSinkProtos.FakeSink.Builder, FakeSinkProtos.FakeSinkOrBuilder>(
                    fakeSink_,
                    getParentForChildren(),
                    isClean());
            fakeSink_ = null;
          }
          return fakeSinkBuilder_;
        }
        
        // @@protoc_insertion_point(builder_scope:apsara.odps.lot.DataSink)
      }
      
      static {
        defaultInstance = new DataSink(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:apsara.odps.lot.DataSink)
    }
    
    private static com.google.protobuf.Descriptors.Descriptor
      internal_static_apsara_odps_lot_DataSink_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_apsara_odps_lot_DataSink_fieldAccessorTable;
    
    public static com.google.protobuf.Descriptors.FileDescriptor
        getDescriptor() {
      return descriptor;
    }
    private static com.google.protobuf.Descriptors.FileDescriptor
        descriptor;
    static {
      String[] descriptorData = {
        "\n\022lot/datasink.proto\022\017apsara.odps.lot\032\023l" +
        "ot/tablesink.proto\032\023lot/adhocsink.proto\032" +
        "\022lot/fakesink.proto\032\026lot/languagesink.pr" +
        "oto\"\350\001\n\010DataSink\022\n\n\002Id\030\001 \002(\t\022\020\n\010ParentId" +
        "\030\002 \002(\t\022-\n\tTableSink\030\003 \001(\0132\032.apsara.odps." +
        "lot.TableSink\022-\n\tAdhocSink\030\004 \001(\0132\032.apsar" +
        "a.odps.lot.AdhocSink\0223\n\014LanguageSink\030\005 \001" +
        "(\0132\035.apsara.odps.lot.LanguageSink\022+\n\010Fak" +
        "eSink\030\006 \001(\0132\031.apsara.odps.lot.FakeSinkB\020" +
        "B\016DataSinkProtos"
      };
      com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            internal_static_apsara_odps_lot_DataSink_descriptor =
              getDescriptor().getMessageTypes().get(0);
            internal_static_apsara_odps_lot_DataSink_fieldAccessorTable = new
              com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_apsara_odps_lot_DataSink_descriptor,
                new String[] { "Id", "ParentId", "TableSink", "AdhocSink", "LanguageSink", "FakeSink", },
                DataSink.class,
                DataSink.Builder.class);
            return null;
          }
        };
      com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
            TableSinkProtos.getDescriptor(),
            AdhocSinkProtos.getDescriptor(),
            FakeSinkProtos.getDescriptor(),
            LanguageSinkProtos.getDescriptor(),
          }, assigner);
    }
    
    // @@protoc_insertion_point(outer_class_scope)
  }
  