content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: lot/languagesink.proto
  
  package apsara.odps.lot;
  
  import apsara.odps.ExpressionProtos;
  import apsara.odps.LanguageProtos;
  import apsara.odps.ReferencedURIProtos;
  import apsara.odps.TypesProtos;
  
  public final class LanguageSinkProtos {
    private LanguageSinkProtos() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
    }
    public interface LanguageSinkOrBuilder
        extends com.google.protobuf.MessageOrBuilder {
      
      // required .apsara.odps.Language Language = 1;
      boolean hasLanguage();
      LanguageProtos.Language getLanguage();
      
      // repeated group Resources = 2 {
      java.util.List<LanguageSink.Resources>
          getResourcesList();
      LanguageSink.Resources getResources(int index);
      int getResourcesCount();
      java.util.List<? extends LanguageSink.ResourcesOrBuilder>
          getResourcesOrBuilderList();
      LanguageSink.ResourcesOrBuilder getResourcesOrBuilder(
          int index);
      
      // required string ClassName = 3;
      boolean hasClassName();
      String getClassName();
      
      // repeated .apsara.odps.ReferencedURI URIs = 4;
      java.util.List<ReferencedURIProtos.ReferencedURI>
          getURIsList();
      ReferencedURIProtos.ReferencedURI getURIs(int index);
      int getURIsCount();
      java.util.List<? extends ReferencedURIProtos.ReferencedURIOrBuilder>
          getURIsOrBuilderList();
      ReferencedURIProtos.ReferencedURIOrBuilder getURIsOrBuilder(
          int index);
      
      // repeated group Output = 5 {
      java.util.List<LanguageSink.Output>
          getOutputList();
      LanguageSink.Output getOutput(int index);
      int getOutputCount();
      java.util.List<? extends LanguageSink.OutputOrBuilder>
          getOutputOrBuilderList();
      LanguageSink.OutputOrBuilder getOutputOrBuilder(
          int index);
      
      // required uint32 InstanceCount = 6;
      boolean hasInstanceCount();
      int getInstanceCount();
      
      // repeated group Properties = 7 {
      java.util.List<LanguageSink.Properties>
          getPropertiesList();
      LanguageSink.Properties getProperties(int index);
      int getPropertiesCount();
      java.util.List<? extends LanguageSink.PropertiesOrBuilder>
          getPropertiesOrBuilderList();
      LanguageSink.PropertiesOrBuilder getPropertiesOrBuilder(
          int index);
    }
    public static final class LanguageSink extends
        com.google.protobuf.GeneratedMessage
        implements LanguageSinkOrBuilder {
      // Use LanguageSink.newBuilder() to construct.
      private LanguageSink(Builder builder) {
        super(builder);
      }
      private LanguageSink(boolean noInit) {}
      
      private static final LanguageSink defaultInstance;
      public static LanguageSink getDefaultInstance() {
        return defaultInstance;
      }
      
      public LanguageSink getDefaultInstanceForType() {
        return defaultInstance;
      }
      
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_descriptor;
      }
      
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_fieldAccessorTable;
      }
      
      public interface ResourcesOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // required string Project = 1;
        boolean hasProject();
        String getProject();
        
        // required string ResourceName = 2;
        boolean hasResourceName();
        String getResourceName();
      }
      public static final class Resources extends
          com.google.protobuf.GeneratedMessage
          implements ResourcesOrBuilder {
        // Use Resources.newBuilder() to construct.
        private Resources(Builder builder) {
          super(builder);
        }
        private Resources(boolean noInit) {}
        
        private static final Resources defaultInstance;
        public static Resources getDefaultInstance() {
          return defaultInstance;
        }
        
        public Resources getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Resources_descriptor;
        }
        
        protected FieldAccessorTable
            internalGetFieldAccessorTable() {
          return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Resources_fieldAccessorTable;
        }
        
        private int bitField0_;
        // required string Project = 1;
        public static final int PROJECT_FIELD_NUMBER = 1;
        private Object project_;
        public boolean hasProject() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public String getProject() {
          Object ref = project_;
          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)) {
              project_ = s;
            }
            return s;
          }
        }
        private com.google.protobuf.ByteString getProjectBytes() {
          Object ref = project_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            project_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        
        // required string ResourceName = 2;
        public static final int RESOURCENAME_FIELD_NUMBER = 2;
        private Object resourceName_;
        public boolean hasResourceName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public String getResourceName() {
          Object ref = resourceName_;
          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)) {
              resourceName_ = s;
            }
            return s;
          }
        }
        private com.google.protobuf.ByteString getResourceNameBytes() {
          Object ref = resourceName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            resourceName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        
        private void initFields() {
          project_ = "";
          resourceName_ = "";
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          if (!hasProject()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!hasResourceName()) {
            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, getProjectBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeBytes(2, getResourceNameBytes());
          }
          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, getProjectBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBytesSize(2, getResourceNameBytes());
          }
          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 Resources parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static Resources parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static Resources parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static Resources parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static Resources parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static Resources parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static Resources parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static Resources 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 Resources parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static Resources 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(Resources 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 ResourcesOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Resources_descriptor;
          }
          
          protected FieldAccessorTable
              internalGetFieldAccessorTable() {
            return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Resources_fieldAccessorTable;
          }
          
          // Construct using apsara.odps.lot.LanguageSinkProtos.LanguageSink.Resources.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            project_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            resourceName_ = "";
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return Resources.getDescriptor();
          }
          
          public Resources getDefaultInstanceForType() {
            return Resources.getDefaultInstance();
          }
          
          public Resources build() {
            Resources result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private Resources buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            Resources result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public Resources buildPartial() {
            Resources result = new Resources(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.project_ = project_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.resourceName_ = resourceName_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof Resources) {
              return mergeFrom((Resources)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(Resources other) {
            if (other == Resources.getDefaultInstance()) return this;
            if (other.hasProject()) {
              setProject(other.getProject());
            }
            if (other.hasResourceName()) {
              setResourceName(other.getResourceName());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            if (!hasProject()) {
              
              return false;
            }
            if (!hasResourceName()) {
              
              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;
                  project_ = input.readBytes();
                  break;
                }
                case 18: {
                  bitField0_ |= 0x00000002;
                  resourceName_ = input.readBytes();
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // required string Project = 1;
          private Object project_ = "";
          public boolean hasProject() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public String getProject() {
            Object ref = project_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              project_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }
          public Builder setProject(String value) {
            if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
            project_ = value;
            onChanged();
            return this;
          }
          public Builder clearProject() {
            bitField0_ = (bitField0_ & ~0x00000001);
            project_ = getDefaultInstance().getProject();
            onChanged();
            return this;
          }
          void setProject(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000001;
            project_ = value;
            onChanged();
          }
          
          // required string ResourceName = 2;
          private Object resourceName_ = "";
          public boolean hasResourceName() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          public String getResourceName() {
            Object ref = resourceName_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              resourceName_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }
          public Builder setResourceName(String value) {
            if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
            resourceName_ = value;
            onChanged();
            return this;
          }
          public Builder clearResourceName() {
            bitField0_ = (bitField0_ & ~0x00000002);
            resourceName_ = getDefaultInstance().getResourceName();
            onChanged();
            return this;
          }
          void setResourceName(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000002;
            resourceName_ = value;
            onChanged();
          }
          
          // @@protoc_insertion_point(builder_scope:apsara.odps.lot.LanguageSink.Resources)
        }
        
        static {
          defaultInstance = new Resources(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:apsara.odps.lot.LanguageSink.Resources)
      }
      
      public interface OutputOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // required .apsara.odps.Reference Column = 1;
        boolean hasColumn();
        ExpressionProtos.Reference getColumn();
        ExpressionProtos.ReferenceOrBuilder getColumnOrBuilder();
        
        // required .apsara.odps.Type Type = 2;
        boolean hasType();
        TypesProtos.Type getType();
      }
      public static final class Output extends
          com.google.protobuf.GeneratedMessage
          implements OutputOrBuilder {
        // Use Output.newBuilder() to construct.
        private Output(Builder builder) {
          super(builder);
        }
        private Output(boolean noInit) {}
        
        private static final Output defaultInstance;
        public static Output getDefaultInstance() {
          return defaultInstance;
        }
        
        public Output getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Output_descriptor;
        }
        
        protected FieldAccessorTable
            internalGetFieldAccessorTable() {
          return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Output_fieldAccessorTable;
        }
        
        private int bitField0_;
        // required .apsara.odps.Reference Column = 1;
        public static final int COLUMN_FIELD_NUMBER = 1;
        private ExpressionProtos.Reference column_;
        public boolean hasColumn() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public ExpressionProtos.Reference getColumn() {
          return column_;
        }
        public ExpressionProtos.ReferenceOrBuilder getColumnOrBuilder() {
          return column_;
        }
        
        // required .apsara.odps.Type Type = 2;
        public static final int TYPE_FIELD_NUMBER = 2;
        private TypesProtos.Type type_;
        public boolean hasType() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public TypesProtos.Type getType() {
          return type_;
        }
        
        private void initFields() {
          column_ = ExpressionProtos.Reference.getDefaultInstance();
          type_ = TypesProtos.Type.Integer;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          if (!hasColumn()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!hasType()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!getColumn().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.writeMessage(1, column_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeEnum(2, type_.getNumber());
          }
          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
              .computeMessageSize(1, column_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(2, type_.getNumber());
          }
          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 Output parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static Output parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static Output parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static Output parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static Output parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static Output parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static Output parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static Output 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 Output parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static Output 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(Output 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 OutputOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Output_descriptor;
          }
          
          protected FieldAccessorTable
              internalGetFieldAccessorTable() {
            return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Output_fieldAccessorTable;
          }
          
          // Construct using apsara.odps.lot.LanguageSinkProtos.LanguageSink.Output.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
              getColumnFieldBuilder();
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            if (columnBuilder_ == null) {
              column_ = ExpressionProtos.Reference.getDefaultInstance();
            } else {
              columnBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000001);
            type_ = TypesProtos.Type.Integer;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return Output.getDescriptor();
          }
          
          public Output getDefaultInstanceForType() {
            return Output.getDefaultInstance();
          }
          
          public Output build() {
            Output result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private Output buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            Output result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public Output buildPartial() {
            Output result = new Output(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            if (columnBuilder_ == null) {
              result.column_ = column_;
            } else {
              result.column_ = columnBuilder_.build();
            }
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.type_ = type_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof Output) {
              return mergeFrom((Output)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(Output other) {
            if (other == Output.getDefaultInstance()) return this;
            if (other.hasColumn()) {
              mergeColumn(other.getColumn());
            }
            if (other.hasType()) {
              setType(other.getType());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            if (!hasColumn()) {
              
              return false;
            }
            if (!hasType()) {
              
              return false;
            }
            if (!getColumn().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: {
                  ExpressionProtos.Reference.Builder subBuilder = ExpressionProtos.Reference.newBuilder();
                  if (hasColumn()) {
                    subBuilder.mergeFrom(getColumn());
                  }
                  input.readMessage(subBuilder, extensionRegistry);
                  setColumn(subBuilder.buildPartial());
                  break;
                }
                case 16: {
                  int rawValue = input.readEnum();
                  TypesProtos.Type value = TypesProtos.Type.valueOf(rawValue);
                  if (value == null) {
                    unknownFields.mergeVarintField(2, rawValue);
                  } else {
                    bitField0_ |= 0x00000002;
                    type_ = value;
                  }
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // required .apsara.odps.Reference Column = 1;
          private ExpressionProtos.Reference column_ = ExpressionProtos.Reference.getDefaultInstance();
          private com.google.protobuf.SingleFieldBuilder<
              ExpressionProtos.Reference, ExpressionProtos.Reference.Builder, ExpressionProtos.ReferenceOrBuilder> columnBuilder_;
          public boolean hasColumn() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public ExpressionProtos.Reference getColumn() {
            if (columnBuilder_ == null) {
              return column_;
            } else {
              return columnBuilder_.getMessage();
            }
          }
          public Builder setColumn(ExpressionProtos.Reference value) {
            if (columnBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              column_ = value;
              onChanged();
            } else {
              columnBuilder_.setMessage(value);
            }
            bitField0_ |= 0x00000001;
            return this;
          }
          public Builder setColumn(
              ExpressionProtos.Reference.Builder builderForValue) {
            if (columnBuilder_ == null) {
              column_ = builderForValue.build();
              onChanged();
            } else {
              columnBuilder_.setMessage(builderForValue.build());
            }
            bitField0_ |= 0x00000001;
            return this;
          }
          public Builder mergeColumn(ExpressionProtos.Reference value) {
            if (columnBuilder_ == null) {
              if (((bitField0_ & 0x00000001) == 0x00000001) &&
                  column_ != ExpressionProtos.Reference.getDefaultInstance()) {
                column_ =
                  ExpressionProtos.Reference.newBuilder(column_).mergeFrom(value).buildPartial();
              } else {
                column_ = value;
              }
              onChanged();
            } else {
              columnBuilder_.mergeFrom(value);
            }
            bitField0_ |= 0x00000001;
            return this;
          }
          public Builder clearColumn() {
            if (columnBuilder_ == null) {
              column_ = ExpressionProtos.Reference.getDefaultInstance();
              onChanged();
            } else {
              columnBuilder_.clear();
            }
            bitField0_ = (bitField0_ & ~0x00000001);
            return this;
          }
          public ExpressionProtos.Reference.Builder getColumnBuilder() {
            bitField0_ |= 0x00000001;
            onChanged();
            return getColumnFieldBuilder().getBuilder();
          }
          public ExpressionProtos.ReferenceOrBuilder getColumnOrBuilder() {
            if (columnBuilder_ != null) {
              return columnBuilder_.getMessageOrBuilder();
            } else {
              return column_;
            }
          }
          private com.google.protobuf.SingleFieldBuilder<
              ExpressionProtos.Reference, ExpressionProtos.Reference.Builder, ExpressionProtos.ReferenceOrBuilder>
              getColumnFieldBuilder() {
            if (columnBuilder_ == null) {
              columnBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                  ExpressionProtos.Reference, ExpressionProtos.Reference.Builder, ExpressionProtos.ReferenceOrBuilder>(
                      column_,
                      getParentForChildren(),
                      isClean());
              column_ = null;
            }
            return columnBuilder_;
          }
          
          // required .apsara.odps.Type Type = 2;
          private TypesProtos.Type type_ = TypesProtos.Type.Integer;
          public boolean hasType() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          public TypesProtos.Type getType() {
            return type_;
          }
          public Builder setType(TypesProtos.Type value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000002;
            type_ = value;
            onChanged();
            return this;
          }
          public Builder clearType() {
            bitField0_ = (bitField0_ & ~0x00000002);
            type_ = TypesProtos.Type.Integer;
            onChanged();
            return this;
          }
          
          // @@protoc_insertion_point(builder_scope:apsara.odps.lot.LanguageSink.Output)
        }
        
        static {
          defaultInstance = new Output(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:apsara.odps.lot.LanguageSink.Output)
      }
      
      public interface PropertiesOrBuilder
          extends com.google.protobuf.MessageOrBuilder {
        
        // required string Key = 1;
        boolean hasKey();
        String getKey();
        
        // required string Value = 2;
        boolean hasValue();
        String getValue();
      }
      public static final class Properties extends
          com.google.protobuf.GeneratedMessage
          implements PropertiesOrBuilder {
        // Use Properties.newBuilder() to construct.
        private Properties(Builder builder) {
          super(builder);
        }
        private Properties(boolean noInit) {}
        
        private static final Properties defaultInstance;
        public static Properties getDefaultInstance() {
          return defaultInstance;
        }
        
        public Properties getDefaultInstanceForType() {
          return defaultInstance;
        }
        
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Properties_descriptor;
        }
        
        protected FieldAccessorTable
            internalGetFieldAccessorTable() {
          return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Properties_fieldAccessorTable;
        }
        
        private int bitField0_;
        // required string Key = 1;
        public static final int KEY_FIELD_NUMBER = 1;
        private Object key_;
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public String getKey() {
          Object ref = key_;
          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)) {
              key_ = s;
            }
            return s;
          }
        }
        private com.google.protobuf.ByteString getKeyBytes() {
          Object ref = key_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            key_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        
        // required string Value = 2;
        public static final int VALUE_FIELD_NUMBER = 2;
        private Object value_;
        public boolean hasValue() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        public String getValue() {
          Object ref = value_;
          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)) {
              value_ = s;
            }
            return s;
          }
        }
        private com.google.protobuf.ByteString getValueBytes() {
          Object ref = value_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8((String) ref);
            value_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        
        private void initFields() {
          key_ = "";
          value_ = "";
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized != -1) return isInitialized == 1;
          
          if (!hasKey()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!hasValue()) {
            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, getKeyBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeBytes(2, getValueBytes());
          }
          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, getKeyBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBytesSize(2, getValueBytes());
          }
          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 Properties parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static Properties parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static Properties parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data).buildParsed();
        }
        public static Properties parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return newBuilder().mergeFrom(data, extensionRegistry)
                   .buildParsed();
        }
        public static Properties parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static Properties parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input, extensionRegistry)
                   .buildParsed();
        }
        public static Properties parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          Builder builder = newBuilder();
          if (builder.mergeDelimitedFrom(input)) {
            return builder.buildParsed();
          } else {
            return null;
          }
        }
        public static Properties 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 Properties parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return newBuilder().mergeFrom(input).buildParsed();
        }
        public static Properties 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(Properties 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 PropertiesOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Properties_descriptor;
          }
          
          protected FieldAccessorTable
              internalGetFieldAccessorTable() {
            return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_Properties_fieldAccessorTable;
          }
          
          // Construct using apsara.odps.lot.LanguageSinkProtos.LanguageSink.Properties.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
          
          private Builder(BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }
          
          public Builder clear() {
            super.clear();
            key_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            value_ = "";
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }
          
          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }
          
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return Properties.getDescriptor();
          }
          
          public Properties getDefaultInstanceForType() {
            return Properties.getDefaultInstance();
          }
          
          public Properties build() {
            Properties result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
          
          private Properties buildParsed()
              throws com.google.protobuf.InvalidProtocolBufferException {
            Properties result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(
                result).asInvalidProtocolBufferException();
            }
            return result;
          }
          
          public Properties buildPartial() {
            Properties result = new Properties(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.key_ = key_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.value_ = value_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }
          
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof Properties) {
              return mergeFrom((Properties)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
          
          public Builder mergeFrom(Properties other) {
            if (other == Properties.getDefaultInstance()) return this;
            if (other.hasKey()) {
              setKey(other.getKey());
            }
            if (other.hasValue()) {
              setValue(other.getValue());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }
          
          public final boolean isInitialized() {
            if (!hasKey()) {
              
              return false;
            }
            if (!hasValue()) {
              
              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;
                  key_ = input.readBytes();
                  break;
                }
                case 18: {
                  bitField0_ |= 0x00000002;
                  value_ = input.readBytes();
                  break;
                }
              }
            }
          }
          
          private int bitField0_;
          
          // required string Key = 1;
          private Object key_ = "";
          public boolean hasKey() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          public String getKey() {
            Object ref = key_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              key_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }
          public Builder setKey(String value) {
            if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000001;
            key_ = value;
            onChanged();
            return this;
          }
          public Builder clearKey() {
            bitField0_ = (bitField0_ & ~0x00000001);
            key_ = getDefaultInstance().getKey();
            onChanged();
            return this;
          }
          void setKey(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000001;
            key_ = value;
            onChanged();
          }
          
          // required string Value = 2;
          private Object value_ = "";
          public boolean hasValue() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          public String getValue() {
            Object ref = value_;
            if (!(ref instanceof String)) {
              String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
              value_ = s;
              return s;
            } else {
              return (String) ref;
            }
          }
          public Builder setValue(String value) {
            if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000002;
            value_ = value;
            onChanged();
            return this;
          }
          public Builder clearValue() {
            bitField0_ = (bitField0_ & ~0x00000002);
            value_ = getDefaultInstance().getValue();
            onChanged();
            return this;
          }
          void setValue(com.google.protobuf.ByteString value) {
            bitField0_ |= 0x00000002;
            value_ = value;
            onChanged();
          }
          
          // @@protoc_insertion_point(builder_scope:apsara.odps.lot.LanguageSink.Properties)
        }
        
        static {
          defaultInstance = new Properties(true);
          defaultInstance.initFields();
        }
        
        // @@protoc_insertion_point(class_scope:apsara.odps.lot.LanguageSink.Properties)
      }
      
      private int bitField0_;
      // required .apsara.odps.Language Language = 1;
      public static final int LANGUAGE_FIELD_NUMBER = 1;
      private LanguageProtos.Language language_;
      public boolean hasLanguage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public LanguageProtos.Language getLanguage() {
        return language_;
      }
      
      // repeated group Resources = 2 {
      public static final int RESOURCES_FIELD_NUMBER = 2;
      private java.util.List<Resources> resources_;
      public java.util.List<Resources> getResourcesList() {
        return resources_;
      }
      public java.util.List<? extends ResourcesOrBuilder>
          getResourcesOrBuilderList() {
        return resources_;
      }
      public int getResourcesCount() {
        return resources_.size();
      }
      public Resources getResources(int index) {
        return resources_.get(index);
      }
      public ResourcesOrBuilder getResourcesOrBuilder(
          int index) {
        return resources_.get(index);
      }
      
      // required string ClassName = 3;
      public static final int CLASSNAME_FIELD_NUMBER = 3;
      private Object className_;
      public boolean hasClassName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public String getClassName() {
        Object ref = className_;
        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)) {
            className_ = s;
          }
          return s;
        }
      }
      private com.google.protobuf.ByteString getClassNameBytes() {
        Object ref = className_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
          className_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      
      // repeated .apsara.odps.ReferencedURI URIs = 4;
      public static final int URIS_FIELD_NUMBER = 4;
      private java.util.List<ReferencedURIProtos.ReferencedURI> uRIs_;
      public java.util.List<ReferencedURIProtos.ReferencedURI> getURIsList() {
        return uRIs_;
      }
      public java.util.List<? extends ReferencedURIProtos.ReferencedURIOrBuilder>
          getURIsOrBuilderList() {
        return uRIs_;
      }
      public int getURIsCount() {
        return uRIs_.size();
      }
      public ReferencedURIProtos.ReferencedURI getURIs(int index) {
        return uRIs_.get(index);
      }
      public ReferencedURIProtos.ReferencedURIOrBuilder getURIsOrBuilder(
          int index) {
        return uRIs_.get(index);
      }
      
      // repeated group Output = 5 {
      public static final int OUTPUT_FIELD_NUMBER = 5;
      private java.util.List<Output> output_;
      public java.util.List<Output> getOutputList() {
        return output_;
      }
      public java.util.List<? extends OutputOrBuilder>
          getOutputOrBuilderList() {
        return output_;
      }
      public int getOutputCount() {
        return output_.size();
      }
      public Output getOutput(int index) {
        return output_.get(index);
      }
      public OutputOrBuilder getOutputOrBuilder(
          int index) {
        return output_.get(index);
      }
      
      // required uint32 InstanceCount = 6;
      public static final int INSTANCECOUNT_FIELD_NUMBER = 6;
      private int instanceCount_;
      public boolean hasInstanceCount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      public int getInstanceCount() {
        return instanceCount_;
      }
      
      // repeated group Properties = 7 {
      public static final int PROPERTIES_FIELD_NUMBER = 7;
      private java.util.List<Properties> properties_;
      public java.util.List<Properties> getPropertiesList() {
        return properties_;
      }
      public java.util.List<? extends PropertiesOrBuilder>
          getPropertiesOrBuilderList() {
        return properties_;
      }
      public int getPropertiesCount() {
        return properties_.size();
      }
      public Properties getProperties(int index) {
        return properties_.get(index);
      }
      public PropertiesOrBuilder getPropertiesOrBuilder(
          int index) {
        return properties_.get(index);
      }
      
      private void initFields() {
        language_ = LanguageProtos.Language.Java;
        resources_ = java.util.Collections.emptyList();
        className_ = "";
        uRIs_ = java.util.Collections.emptyList();
        output_ = java.util.Collections.emptyList();
        instanceCount_ = 0;
        properties_ = java.util.Collections.emptyList();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;
        
        if (!hasLanguage()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasClassName()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasInstanceCount()) {
          memoizedIsInitialized = 0;
          return false;
        }
        for (int i = 0; i < getResourcesCount(); i++) {
          if (!getResources(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        for (int i = 0; i < getURIsCount(); i++) {
          if (!getURIs(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        for (int i = 0; i < getOutputCount(); i++) {
          if (!getOutput(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        for (int i = 0; i < getPropertiesCount(); i++) {
          if (!getProperties(i).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.writeEnum(1, language_.getNumber());
        }
        for (int i = 0; i < resources_.size(); i++) {
          output.writeGroup(2, resources_.get(i));
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(3, getClassNameBytes());
        }
        for (int i = 0; i < uRIs_.size(); i++) {
          output.writeMessage(4, uRIs_.get(i));
        }
        for (int i = 0; i < output_.size(); i++) {
          output.writeGroup(5, output_.get(i));
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeUInt32(6, instanceCount_);
        }
        for (int i = 0; i < properties_.size(); i++) {
          output.writeGroup(7, properties_.get(i));
        }
        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
            .computeEnumSize(1, language_.getNumber());
        }
        for (int i = 0; i < resources_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeGroupSize(2, resources_.get(i));
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(3, getClassNameBytes());
        }
        for (int i = 0; i < uRIs_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, uRIs_.get(i));
        }
        for (int i = 0; i < output_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeGroupSize(5, output_.get(i));
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(6, instanceCount_);
        }
        for (int i = 0; i < properties_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeGroupSize(7, properties_.get(i));
        }
        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 LanguageSink parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static LanguageSink parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static LanguageSink parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data).buildParsed();
      }
      public static LanguageSink parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return newBuilder().mergeFrom(data, extensionRegistry)
                 .buildParsed();
      }
      public static LanguageSink parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static LanguageSink parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input, extensionRegistry)
                 .buildParsed();
      }
      public static LanguageSink parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        Builder builder = newBuilder();
        if (builder.mergeDelimitedFrom(input)) {
          return builder.buildParsed();
        } else {
          return null;
        }
      }
      public static LanguageSink 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 LanguageSink parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return newBuilder().mergeFrom(input).buildParsed();
      }
      public static LanguageSink 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(LanguageSink 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 LanguageSinkOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_descriptor;
        }
        
        protected FieldAccessorTable
            internalGetFieldAccessorTable() {
          return LanguageSinkProtos.internal_static_apsara_odps_lot_LanguageSink_fieldAccessorTable;
        }
        
        // Construct using apsara.odps.lot.LanguageSinkProtos.LanguageSink.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        
        private Builder(BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getResourcesFieldBuilder();
            getURIsFieldBuilder();
            getOutputFieldBuilder();
            getPropertiesFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }
        
        public Builder clear() {
          super.clear();
          language_ = LanguageProtos.Language.Java;
          bitField0_ = (bitField0_ & ~0x00000001);
          if (resourcesBuilder_ == null) {
            resources_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            resourcesBuilder_.clear();
          }
          className_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          if (uRIsBuilder_ == null) {
            uRIs_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            uRIsBuilder_.clear();
          }
          if (outputBuilder_ == null) {
            output_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            outputBuilder_.clear();
          }
          instanceCount_ = 0;
          bitField0_ = (bitField0_ & ~0x00000020);
          if (propertiesBuilder_ == null) {
            properties_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            propertiesBuilder_.clear();
          }
          return this;
        }
        
        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }
        
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return LanguageSink.getDescriptor();
        }
        
        public LanguageSink getDefaultInstanceForType() {
          return LanguageSink.getDefaultInstance();
        }
        
        public LanguageSink build() {
          LanguageSink result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        
        private LanguageSink buildParsed()
            throws com.google.protobuf.InvalidProtocolBufferException {
          LanguageSink result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(
              result).asInvalidProtocolBufferException();
          }
          return result;
        }
        
        public LanguageSink buildPartial() {
          LanguageSink result = new LanguageSink(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.language_ = language_;
          if (resourcesBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              resources_ = java.util.Collections.unmodifiableList(resources_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.resources_ = resources_;
          } else {
            result.resources_ = resourcesBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000002;
          }
          result.className_ = className_;
          if (uRIsBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              uRIs_ = java.util.Collections.unmodifiableList(uRIs_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.uRIs_ = uRIs_;
          } else {
            result.uRIs_ = uRIsBuilder_.build();
          }
          if (outputBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010)) {
              output_ = java.util.Collections.unmodifiableList(output_);
              bitField0_ = (bitField0_ & ~0x00000010);
            }
            result.output_ = output_;
          } else {
            result.output_ = outputBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000004;
          }
          result.instanceCount_ = instanceCount_;
          if (propertiesBuilder_ == null) {
            if (((bitField0_ & 0x00000040) == 0x00000040)) {
              properties_ = java.util.Collections.unmodifiableList(properties_);
              bitField0_ = (bitField0_ & ~0x00000040);
            }
            result.properties_ = properties_;
          } else {
            result.properties_ = propertiesBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
        
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof LanguageSink) {
            return mergeFrom((LanguageSink)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        
        public Builder mergeFrom(LanguageSink other) {
          if (other == LanguageSink.getDefaultInstance()) return this;
          if (other.hasLanguage()) {
            setLanguage(other.getLanguage());
          }
          if (resourcesBuilder_ == null) {
            if (!other.resources_.isEmpty()) {
              if (resources_.isEmpty()) {
                resources_ = other.resources_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureResourcesIsMutable();
                resources_.addAll(other.resources_);
              }
              onChanged();
            }
          } else {
            if (!other.resources_.isEmpty()) {
              if (resourcesBuilder_.isEmpty()) {
                resourcesBuilder_.dispose();
                resourcesBuilder_ = null;
                resources_ = other.resources_;
                bitField0_ = (bitField0_ & ~0x00000002);
                resourcesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getResourcesFieldBuilder() : null;
              } else {
                resourcesBuilder_.addAllMessages(other.resources_);
              }
            }
          }
          if (other.hasClassName()) {
            setClassName(other.getClassName());
          }
          if (uRIsBuilder_ == null) {
            if (!other.uRIs_.isEmpty()) {
              if (uRIs_.isEmpty()) {
                uRIs_ = other.uRIs_;
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                ensureURIsIsMutable();
                uRIs_.addAll(other.uRIs_);
              }
              onChanged();
            }
          } else {
            if (!other.uRIs_.isEmpty()) {
              if (uRIsBuilder_.isEmpty()) {
                uRIsBuilder_.dispose();
                uRIsBuilder_ = null;
                uRIs_ = other.uRIs_;
                bitField0_ = (bitField0_ & ~0x00000008);
                uRIsBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getURIsFieldBuilder() : null;
              } else {
                uRIsBuilder_.addAllMessages(other.uRIs_);
              }
            }
          }
          if (outputBuilder_ == null) {
            if (!other.output_.isEmpty()) {
              if (output_.isEmpty()) {
                output_ = other.output_;
                bitField0_ = (bitField0_ & ~0x00000010);
              } else {
                ensureOutputIsMutable();
                output_.addAll(other.output_);
              }
              onChanged();
            }
          } else {
            if (!other.output_.isEmpty()) {
              if (outputBuilder_.isEmpty()) {
                outputBuilder_.dispose();
                outputBuilder_ = null;
                output_ = other.output_;
                bitField0_ = (bitField0_ & ~0x00000010);
                outputBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getOutputFieldBuilder() : null;
              } else {
                outputBuilder_.addAllMessages(other.output_);
              }
            }
          }
          if (other.hasInstanceCount()) {
            setInstanceCount(other.getInstanceCount());
          }
          if (propertiesBuilder_ == null) {
            if (!other.properties_.isEmpty()) {
              if (properties_.isEmpty()) {
                properties_ = other.properties_;
                bitField0_ = (bitField0_ & ~0x00000040);
              } else {
                ensurePropertiesIsMutable();
                properties_.addAll(other.properties_);
              }
              onChanged();
            }
          } else {
            if (!other.properties_.isEmpty()) {
              if (propertiesBuilder_.isEmpty()) {
                propertiesBuilder_.dispose();
                propertiesBuilder_ = null;
                properties_ = other.properties_;
                bitField0_ = (bitField0_ & ~0x00000040);
                propertiesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getPropertiesFieldBuilder() : null;
              } else {
                propertiesBuilder_.addAllMessages(other.properties_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }
        
        public final boolean isInitialized() {
          if (!hasLanguage()) {
            
            return false;
          }
          if (!hasClassName()) {
            
            return false;
          }
          if (!hasInstanceCount()) {
            
            return false;
          }
          for (int i = 0; i < getResourcesCount(); i++) {
            if (!getResources(i).isInitialized()) {
              
              return false;
            }
          }
          for (int i = 0; i < getURIsCount(); i++) {
            if (!getURIs(i).isInitialized()) {
              
              return false;
            }
          }
          for (int i = 0; i < getOutputCount(); i++) {
            if (!getOutput(i).isInitialized()) {
              
              return false;
            }
          }
          for (int i = 0; i < getPropertiesCount(); i++) {
            if (!getProperties(i).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 8: {
                int rawValue = input.readEnum();
                LanguageProtos.Language value = LanguageProtos.Language.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(1, rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  language_ = value;
                }
                break;
              }
              case 19: {
                Resources.Builder subBuilder = Resources.newBuilder();
                input.readGroup(2, subBuilder, extensionRegistry);
                addResources(subBuilder.buildPartial());
                break;
              }
              case 26: {
                bitField0_ |= 0x00000004;
                className_ = input.readBytes();
                break;
              }
              case 34: {
                ReferencedURIProtos.ReferencedURI.Builder subBuilder = ReferencedURIProtos.ReferencedURI.newBuilder();
                input.readMessage(subBuilder, extensionRegistry);
                addURIs(subBuilder.buildPartial());
                break;
              }
              case 43: {
                Output.Builder subBuilder = Output.newBuilder();
                input.readGroup(5, subBuilder, extensionRegistry);
                addOutput(subBuilder.buildPartial());
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                instanceCount_ = input.readUInt32();
                break;
              }
              case 59: {
                Properties.Builder subBuilder = Properties.newBuilder();
                input.readGroup(7, subBuilder, extensionRegistry);
                addProperties(subBuilder.buildPartial());
                break;
              }
            }
          }
        }
        
        private int bitField0_;
        
        // required .apsara.odps.Language Language = 1;
        private LanguageProtos.Language language_ = LanguageProtos.Language.Java;
        public boolean hasLanguage() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        public LanguageProtos.Language getLanguage() {
          return language_;
        }
        public Builder setLanguage(LanguageProtos.Language value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          language_ = value;
          onChanged();
          return this;
        }
        public Builder clearLanguage() {
          bitField0_ = (bitField0_ & ~0x00000001);
          language_ = LanguageProtos.Language.Java;
          onChanged();
          return this;
        }
        
        // repeated group Resources = 2 {
        private java.util.List<Resources> resources_ =
          java.util.Collections.emptyList();
        private void ensureResourcesIsMutable() {
          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
            resources_ = new java.util.ArrayList<Resources>(resources_);
            bitField0_ |= 0x00000002;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            Resources, Resources.Builder, ResourcesOrBuilder> resourcesBuilder_;
        
        public java.util.List<Resources> getResourcesList() {
          if (resourcesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(resources_);
          } else {
            return resourcesBuilder_.getMessageList();
          }
        }
        public int getResourcesCount() {
          if (resourcesBuilder_ == null) {
            return resources_.size();
          } else {
            return resourcesBuilder_.getCount();
          }
        }
        public Resources getResources(int index) {
          if (resourcesBuilder_ == null) {
            return resources_.get(index);
          } else {
            return resourcesBuilder_.getMessage(index);
          }
        }
        public Builder setResources(
            int index, Resources value) {
          if (resourcesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureResourcesIsMutable();
            resources_.set(index, value);
            onChanged();
          } else {
            resourcesBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setResources(
            int index, Resources.Builder builderForValue) {
          if (resourcesBuilder_ == null) {
            ensureResourcesIsMutable();
            resources_.set(index, builderForValue.build());
            onChanged();
          } else {
            resourcesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addResources(Resources value) {
          if (resourcesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureResourcesIsMutable();
            resources_.add(value);
            onChanged();
          } else {
            resourcesBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addResources(
            int index, Resources value) {
          if (resourcesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureResourcesIsMutable();
            resources_.add(index, value);
            onChanged();
          } else {
            resourcesBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addResources(
            Resources.Builder builderForValue) {
          if (resourcesBuilder_ == null) {
            ensureResourcesIsMutable();
            resources_.add(builderForValue.build());
            onChanged();
          } else {
            resourcesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addResources(
            int index, Resources.Builder builderForValue) {
          if (resourcesBuilder_ == null) {
            ensureResourcesIsMutable();
            resources_.add(index, builderForValue.build());
            onChanged();
          } else {
            resourcesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllResources(
            Iterable<? extends Resources> values) {
          if (resourcesBuilder_ == null) {
            ensureResourcesIsMutable();
            super.addAll(values, resources_);
            onChanged();
          } else {
            resourcesBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearResources() {
          if (resourcesBuilder_ == null) {
            resources_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            resourcesBuilder_.clear();
          }
          return this;
        }
        public Builder removeResources(int index) {
          if (resourcesBuilder_ == null) {
            ensureResourcesIsMutable();
            resources_.remove(index);
            onChanged();
          } else {
            resourcesBuilder_.remove(index);
          }
          return this;
        }
        public Resources.Builder getResourcesBuilder(
            int index) {
          return getResourcesFieldBuilder().getBuilder(index);
        }
        public ResourcesOrBuilder getResourcesOrBuilder(
            int index) {
          if (resourcesBuilder_ == null) {
            return resources_.get(index);  } else {
            return resourcesBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends ResourcesOrBuilder>
             getResourcesOrBuilderList() {
          if (resourcesBuilder_ != null) {
            return resourcesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(resources_);
          }
        }
        public Resources.Builder addResourcesBuilder() {
          return getResourcesFieldBuilder().addBuilder(
              Resources.getDefaultInstance());
        }
        public Resources.Builder addResourcesBuilder(
            int index) {
          return getResourcesFieldBuilder().addBuilder(
              index, Resources.getDefaultInstance());
        }
        public java.util.List<Resources.Builder>
             getResourcesBuilderList() {
          return getResourcesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            Resources, Resources.Builder, ResourcesOrBuilder>
            getResourcesFieldBuilder() {
          if (resourcesBuilder_ == null) {
            resourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                Resources, Resources.Builder, ResourcesOrBuilder>(
                    resources_,
                    ((bitField0_ & 0x00000002) == 0x00000002),
                    getParentForChildren(),
                    isClean());
            resources_ = null;
          }
          return resourcesBuilder_;
        }
        
        // required string ClassName = 3;
        private Object className_ = "";
        public boolean hasClassName() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        public String getClassName() {
          Object ref = className_;
          if (!(ref instanceof String)) {
            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
            className_ = s;
            return s;
          } else {
            return (String) ref;
          }
        }
        public Builder setClassName(String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    bitField0_ |= 0x00000004;
          className_ = value;
          onChanged();
          return this;
        }
        public Builder clearClassName() {
          bitField0_ = (bitField0_ & ~0x00000004);
          className_ = getDefaultInstance().getClassName();
          onChanged();
          return this;
        }
        void setClassName(com.google.protobuf.ByteString value) {
          bitField0_ |= 0x00000004;
          className_ = value;
          onChanged();
        }
        
        // repeated .apsara.odps.ReferencedURI URIs = 4;
        private java.util.List<ReferencedURIProtos.ReferencedURI> uRIs_ =
          java.util.Collections.emptyList();
        private void ensureURIsIsMutable() {
          if (!((bitField0_ & 0x00000008) == 0x00000008)) {
            uRIs_ = new java.util.ArrayList<ReferencedURIProtos.ReferencedURI>(uRIs_);
            bitField0_ |= 0x00000008;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            ReferencedURIProtos.ReferencedURI, ReferencedURIProtos.ReferencedURI.Builder, ReferencedURIProtos.ReferencedURIOrBuilder> uRIsBuilder_;
        
        public java.util.List<ReferencedURIProtos.ReferencedURI> getURIsList() {
          if (uRIsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(uRIs_);
          } else {
            return uRIsBuilder_.getMessageList();
          }
        }
        public int getURIsCount() {
          if (uRIsBuilder_ == null) {
            return uRIs_.size();
          } else {
            return uRIsBuilder_.getCount();
          }
        }
        public ReferencedURIProtos.ReferencedURI getURIs(int index) {
          if (uRIsBuilder_ == null) {
            return uRIs_.get(index);
          } else {
            return uRIsBuilder_.getMessage(index);
          }
        }
        public Builder setURIs(
            int index, ReferencedURIProtos.ReferencedURI value) {
          if (uRIsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureURIsIsMutable();
            uRIs_.set(index, value);
            onChanged();
          } else {
            uRIsBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setURIs(
            int index, ReferencedURIProtos.ReferencedURI.Builder builderForValue) {
          if (uRIsBuilder_ == null) {
            ensureURIsIsMutable();
            uRIs_.set(index, builderForValue.build());
            onChanged();
          } else {
            uRIsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addURIs(ReferencedURIProtos.ReferencedURI value) {
          if (uRIsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureURIsIsMutable();
            uRIs_.add(value);
            onChanged();
          } else {
            uRIsBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addURIs(
            int index, ReferencedURIProtos.ReferencedURI value) {
          if (uRIsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureURIsIsMutable();
            uRIs_.add(index, value);
            onChanged();
          } else {
            uRIsBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addURIs(
            ReferencedURIProtos.ReferencedURI.Builder builderForValue) {
          if (uRIsBuilder_ == null) {
            ensureURIsIsMutable();
            uRIs_.add(builderForValue.build());
            onChanged();
          } else {
            uRIsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addURIs(
            int index, ReferencedURIProtos.ReferencedURI.Builder builderForValue) {
          if (uRIsBuilder_ == null) {
            ensureURIsIsMutable();
            uRIs_.add(index, builderForValue.build());
            onChanged();
          } else {
            uRIsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllURIs(
            Iterable<? extends ReferencedURIProtos.ReferencedURI> values) {
          if (uRIsBuilder_ == null) {
            ensureURIsIsMutable();
            super.addAll(values, uRIs_);
            onChanged();
          } else {
            uRIsBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearURIs() {
          if (uRIsBuilder_ == null) {
            uRIs_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
          } else {
            uRIsBuilder_.clear();
          }
          return this;
        }
        public Builder removeURIs(int index) {
          if (uRIsBuilder_ == null) {
            ensureURIsIsMutable();
            uRIs_.remove(index);
            onChanged();
          } else {
            uRIsBuilder_.remove(index);
          }
          return this;
        }
        public ReferencedURIProtos.ReferencedURI.Builder getURIsBuilder(
            int index) {
          return getURIsFieldBuilder().getBuilder(index);
        }
        public ReferencedURIProtos.ReferencedURIOrBuilder getURIsOrBuilder(
            int index) {
          if (uRIsBuilder_ == null) {
            return uRIs_.get(index);  } else {
            return uRIsBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends ReferencedURIProtos.ReferencedURIOrBuilder>
             getURIsOrBuilderList() {
          if (uRIsBuilder_ != null) {
            return uRIsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(uRIs_);
          }
        }
        public ReferencedURIProtos.ReferencedURI.Builder addURIsBuilder() {
          return getURIsFieldBuilder().addBuilder(
              ReferencedURIProtos.ReferencedURI.getDefaultInstance());
        }
        public ReferencedURIProtos.ReferencedURI.Builder addURIsBuilder(
            int index) {
          return getURIsFieldBuilder().addBuilder(
              index, ReferencedURIProtos.ReferencedURI.getDefaultInstance());
        }
        public java.util.List<ReferencedURIProtos.ReferencedURI.Builder>
             getURIsBuilderList() {
          return getURIsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            ReferencedURIProtos.ReferencedURI, ReferencedURIProtos.ReferencedURI.Builder, ReferencedURIProtos.ReferencedURIOrBuilder>
            getURIsFieldBuilder() {
          if (uRIsBuilder_ == null) {
            uRIsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                ReferencedURIProtos.ReferencedURI, ReferencedURIProtos.ReferencedURI.Builder, ReferencedURIProtos.ReferencedURIOrBuilder>(
                    uRIs_,
                    ((bitField0_ & 0x00000008) == 0x00000008),
                    getParentForChildren(),
                    isClean());
            uRIs_ = null;
          }
          return uRIsBuilder_;
        }
        
        // repeated group Output = 5 {
        private java.util.List<Output> output_ =
          java.util.Collections.emptyList();
        private void ensureOutputIsMutable() {
          if (!((bitField0_ & 0x00000010) == 0x00000010)) {
            output_ = new java.util.ArrayList<Output>(output_);
            bitField0_ |= 0x00000010;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            Output, Output.Builder, OutputOrBuilder> outputBuilder_;
        
        public java.util.List<Output> getOutputList() {
          if (outputBuilder_ == null) {
            return java.util.Collections.unmodifiableList(output_);
          } else {
            return outputBuilder_.getMessageList();
          }
        }
        public int getOutputCount() {
          if (outputBuilder_ == null) {
            return output_.size();
          } else {
            return outputBuilder_.getCount();
          }
        }
        public Output getOutput(int index) {
          if (outputBuilder_ == null) {
            return output_.get(index);
          } else {
            return outputBuilder_.getMessage(index);
          }
        }
        public Builder setOutput(
            int index, Output value) {
          if (outputBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOutputIsMutable();
            output_.set(index, value);
            onChanged();
          } else {
            outputBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setOutput(
            int index, Output.Builder builderForValue) {
          if (outputBuilder_ == null) {
            ensureOutputIsMutable();
            output_.set(index, builderForValue.build());
            onChanged();
          } else {
            outputBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addOutput(Output value) {
          if (outputBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOutputIsMutable();
            output_.add(value);
            onChanged();
          } else {
            outputBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addOutput(
            int index, Output value) {
          if (outputBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureOutputIsMutable();
            output_.add(index, value);
            onChanged();
          } else {
            outputBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addOutput(
            Output.Builder builderForValue) {
          if (outputBuilder_ == null) {
            ensureOutputIsMutable();
            output_.add(builderForValue.build());
            onChanged();
          } else {
            outputBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addOutput(
            int index, Output.Builder builderForValue) {
          if (outputBuilder_ == null) {
            ensureOutputIsMutable();
            output_.add(index, builderForValue.build());
            onChanged();
          } else {
            outputBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllOutput(
            Iterable<? extends Output> values) {
          if (outputBuilder_ == null) {
            ensureOutputIsMutable();
            super.addAll(values, output_);
            onChanged();
          } else {
            outputBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearOutput() {
          if (outputBuilder_ == null) {
            output_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000010);
            onChanged();
          } else {
            outputBuilder_.clear();
          }
          return this;
        }
        public Builder removeOutput(int index) {
          if (outputBuilder_ == null) {
            ensureOutputIsMutable();
            output_.remove(index);
            onChanged();
          } else {
            outputBuilder_.remove(index);
          }
          return this;
        }
        public Output.Builder getOutputBuilder(
            int index) {
          return getOutputFieldBuilder().getBuilder(index);
        }
        public OutputOrBuilder getOutputOrBuilder(
            int index) {
          if (outputBuilder_ == null) {
            return output_.get(index);  } else {
            return outputBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends OutputOrBuilder>
             getOutputOrBuilderList() {
          if (outputBuilder_ != null) {
            return outputBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(output_);
          }
        }
        public Output.Builder addOutputBuilder() {
          return getOutputFieldBuilder().addBuilder(
              Output.getDefaultInstance());
        }
        public Output.Builder addOutputBuilder(
            int index) {
          return getOutputFieldBuilder().addBuilder(
              index, Output.getDefaultInstance());
        }
        public java.util.List<Output.Builder>
             getOutputBuilderList() {
          return getOutputFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            Output, Output.Builder, OutputOrBuilder>
            getOutputFieldBuilder() {
          if (outputBuilder_ == null) {
            outputBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                Output, Output.Builder, OutputOrBuilder>(
                    output_,
                    ((bitField0_ & 0x00000010) == 0x00000010),
                    getParentForChildren(),
                    isClean());
            output_ = null;
          }
          return outputBuilder_;
        }
        
        // required uint32 InstanceCount = 6;
        private int instanceCount_ ;
        public boolean hasInstanceCount() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        public int getInstanceCount() {
          return instanceCount_;
        }
        public Builder setInstanceCount(int value) {
          bitField0_ |= 0x00000020;
          instanceCount_ = value;
          onChanged();
          return this;
        }
        public Builder clearInstanceCount() {
          bitField0_ = (bitField0_ & ~0x00000020);
          instanceCount_ = 0;
          onChanged();
          return this;
        }
        
        // repeated group Properties = 7 {
        private java.util.List<Properties> properties_ =
          java.util.Collections.emptyList();
        private void ensurePropertiesIsMutable() {
          if (!((bitField0_ & 0x00000040) == 0x00000040)) {
            properties_ = new java.util.ArrayList<Properties>(properties_);
            bitField0_ |= 0x00000040;
           }
        }
        
        private com.google.protobuf.RepeatedFieldBuilder<
            Properties, Properties.Builder, PropertiesOrBuilder> propertiesBuilder_;
        
        public java.util.List<Properties> getPropertiesList() {
          if (propertiesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(properties_);
          } else {
            return propertiesBuilder_.getMessageList();
          }
        }
        public int getPropertiesCount() {
          if (propertiesBuilder_ == null) {
            return properties_.size();
          } else {
            return propertiesBuilder_.getCount();
          }
        }
        public Properties getProperties(int index) {
          if (propertiesBuilder_ == null) {
            return properties_.get(index);
          } else {
            return propertiesBuilder_.getMessage(index);
          }
        }
        public Builder setProperties(
            int index, Properties value) {
          if (propertiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePropertiesIsMutable();
            properties_.set(index, value);
            onChanged();
          } else {
            propertiesBuilder_.setMessage(index, value);
          }
          return this;
        }
        public Builder setProperties(
            int index, Properties.Builder builderForValue) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            properties_.set(index, builderForValue.build());
            onChanged();
          } else {
            propertiesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addProperties(Properties value) {
          if (propertiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePropertiesIsMutable();
            properties_.add(value);
            onChanged();
          } else {
            propertiesBuilder_.addMessage(value);
          }
          return this;
        }
        public Builder addProperties(
            int index, Properties value) {
          if (propertiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePropertiesIsMutable();
            properties_.add(index, value);
            onChanged();
          } else {
            propertiesBuilder_.addMessage(index, value);
          }
          return this;
        }
        public Builder addProperties(
            Properties.Builder builderForValue) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            properties_.add(builderForValue.build());
            onChanged();
          } else {
            propertiesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        public Builder addProperties(
            int index, Properties.Builder builderForValue) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            properties_.add(index, builderForValue.build());
            onChanged();
          } else {
            propertiesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        public Builder addAllProperties(
            Iterable<? extends Properties> values) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            super.addAll(values, properties_);
            onChanged();
          } else {
            propertiesBuilder_.addAllMessages(values);
          }
          return this;
        }
        public Builder clearProperties() {
          if (propertiesBuilder_ == null) {
            properties_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
            onChanged();
          } else {
            propertiesBuilder_.clear();
          }
          return this;
        }
        public Builder removeProperties(int index) {
          if (propertiesBuilder_ == null) {
            ensurePropertiesIsMutable();
            properties_.remove(index);
            onChanged();
          } else {
            propertiesBuilder_.remove(index);
          }
          return this;
        }
        public Properties.Builder getPropertiesBuilder(
            int index) {
          return getPropertiesFieldBuilder().getBuilder(index);
        }
        public PropertiesOrBuilder getPropertiesOrBuilder(
            int index) {
          if (propertiesBuilder_ == null) {
            return properties_.get(index);  } else {
            return propertiesBuilder_.getMessageOrBuilder(index);
          }
        }
        public java.util.List<? extends PropertiesOrBuilder>
             getPropertiesOrBuilderList() {
          if (propertiesBuilder_ != null) {
            return propertiesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(properties_);
          }
        }
        public Properties.Builder addPropertiesBuilder() {
          return getPropertiesFieldBuilder().addBuilder(
              Properties.getDefaultInstance());
        }
        public Properties.Builder addPropertiesBuilder(
            int index) {
          return getPropertiesFieldBuilder().addBuilder(
              index, Properties.getDefaultInstance());
        }
        public java.util.List<Properties.Builder>
             getPropertiesBuilderList() {
          return getPropertiesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            Properties, Properties.Builder, PropertiesOrBuilder>
            getPropertiesFieldBuilder() {
          if (propertiesBuilder_ == null) {
            propertiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                Properties, Properties.Builder, PropertiesOrBuilder>(
                    properties_,
                    ((bitField0_ & 0x00000040) == 0x00000040),
                    getParentForChildren(),
                    isClean());
            properties_ = null;
          }
          return propertiesBuilder_;
        }
        
        // @@protoc_insertion_point(builder_scope:apsara.odps.lot.LanguageSink)
      }
      
      static {
        defaultInstance = new LanguageSink(true);
        defaultInstance.initFields();
      }
      
      // @@protoc_insertion_point(class_scope:apsara.odps.lot.LanguageSink)
    }
    
    private static com.google.protobuf.Descriptors.Descriptor
      internal_static_apsara_odps_lot_LanguageSink_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_apsara_odps_lot_LanguageSink_fieldAccessorTable;
    private static com.google.protobuf.Descriptors.Descriptor
      internal_static_apsara_odps_lot_LanguageSink_Resources_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_apsara_odps_lot_LanguageSink_Resources_fieldAccessorTable;
    private static com.google.protobuf.Descriptors.Descriptor
      internal_static_apsara_odps_lot_LanguageSink_Output_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_apsara_odps_lot_LanguageSink_Output_fieldAccessorTable;
    private static com.google.protobuf.Descriptors.Descriptor
      internal_static_apsara_odps_lot_LanguageSink_Properties_descriptor;
    private static
      com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_apsara_odps_lot_LanguageSink_Properties_fieldAccessorTable;
    
    public static com.google.protobuf.Descriptors.FileDescriptor
        getDescriptor() {
      return descriptor;
    }
    private static com.google.protobuf.Descriptors.FileDescriptor
        descriptor;
    static {
      String[] descriptorData = {
        "\n\026lot/languagesink.proto\022\017apsara.odps.lo" +
        "t\032\027common/expression.proto\032\022common/types" +
        ".proto\032\025common/language.proto\032\032common/re" +
        "ferenceduri.proto\"\354\003\n\014LanguageSink\022\'\n\010La" +
        "nguage\030\001 \002(\0162\025.apsara.odps.Language\022:\n\tr" +
        "esources\030\002 \003(\n2\'.apsara.odps.lot.Languag" +
        "eSink.Resources\022\021\n\tClassName\030\003 \002(\t\022(\n\004UR" +
        "Is\030\004 \003(\0132\032.apsara.odps.ReferencedURI\0224\n\006" +
        "output\030\005 \003(\n2$.apsara.odps.lot.LanguageS" +
        "ink.Output\022\025\n\rInstanceCount\030\006 \002(\r\022<\n\npro",
        "perties\030\007 \003(\n2(.apsara.odps.lot.Language" +
        "Sink.Properties\0322\n\tResources\022\017\n\007Project\030" +
        "\001 \002(\t\022\024\n\014ResourceName\030\002 \002(\t\032Q\n\006Output\022&\n" +
        "\006Column\030\001 \002(\0132\026.apsara.odps.Reference\022\037\n" +
        "\004Type\030\002 \002(\0162\021.apsara.odps.Type\032(\n\nProper" +
        "ties\022\013\n\003Key\030\001 \002(\t\022\r\n\005Value\030\002 \002(\tB\024B\022Lang" +
        "uageSinkProtos"
      };
      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_LanguageSink_descriptor =
              getDescriptor().getMessageTypes().get(0);
            internal_static_apsara_odps_lot_LanguageSink_fieldAccessorTable = new
              com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_apsara_odps_lot_LanguageSink_descriptor,
                new String[] { "Language", "Resources", "ClassName", "URIs", "Output", "InstanceCount", "Properties", },
                LanguageSink.class,
                LanguageSink.Builder.class);
            internal_static_apsara_odps_lot_LanguageSink_Resources_descriptor =
              internal_static_apsara_odps_lot_LanguageSink_descriptor.getNestedTypes().get(0);
            internal_static_apsara_odps_lot_LanguageSink_Resources_fieldAccessorTable = new
              com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_apsara_odps_lot_LanguageSink_Resources_descriptor,
                new String[] { "Project", "ResourceName", },
                LanguageSink.Resources.class,
                LanguageSink.Resources.Builder.class);
            internal_static_apsara_odps_lot_LanguageSink_Output_descriptor =
              internal_static_apsara_odps_lot_LanguageSink_descriptor.getNestedTypes().get(1);
            internal_static_apsara_odps_lot_LanguageSink_Output_fieldAccessorTable = new
              com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_apsara_odps_lot_LanguageSink_Output_descriptor,
                new String[] { "Column", "Type", },
                LanguageSink.Output.class,
                LanguageSink.Output.Builder.class);
            internal_static_apsara_odps_lot_LanguageSink_Properties_descriptor =
              internal_static_apsara_odps_lot_LanguageSink_descriptor.getNestedTypes().get(2);
            internal_static_apsara_odps_lot_LanguageSink_Properties_fieldAccessorTable = new
              com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_apsara_odps_lot_LanguageSink_Properties_descriptor,
                new String[] { "Key", "Value", },
                LanguageSink.Properties.class,
                LanguageSink.Properties.Builder.class);
            return null;
          }
        };
      com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
            ExpressionProtos.getDescriptor(),
            TypesProtos.getDescriptor(),
            LanguageProtos.getDescriptor(),
            ReferencedURIProtos.getDescriptor(),
          }, assigner);
    }
    
    // @@protoc_insertion_point(outer_class_scope)
  }
  