content: /*
   * Tencent is pleased to support the open source community by making Angel available.
   *
   * Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
   * compliance with the License. You may obtain a copy of the License at
   *
   * https://opensource.org/licenses/Apache-2.0
   *
   * Unless required by applicable law or agreed to in writing, software distributed under the License
   * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
   * or implied. See the License for the specific language governing permissions and limitations under
   * the License.
   *
   */
  // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: config/file_system_storage_path_source.proto
  
  package com.tencent.angel.config;
  
  public final class FileSystemStoragePathSourceConfigProtos {
    private FileSystemStoragePathSourceConfigProtos() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }
  
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
      registerAllExtensions(
          (com.google.protobuf.ExtensionRegistryLite) registry);
    }
    public interface FileSystemStoragePathSourceConfigOrBuilder extends
        // @@protoc_insertion_point(interface_extends:angel.FileSystemStoragePathSourceConfig)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      java.util.List<com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor> 
          getServablesList();
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor getServables(int index);
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      int getServablesCount();
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      java.util.List<? extends com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder> 
          getServablesOrBuilderList();
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder getServablesOrBuilder(
          int index);
  
      /**
       * <pre>
       * A single servable name/base_path pair to monitor.
       * DEPRECATED: Use 'servables' instead.
       * TODO(b/30898016): Stop using these fields, and ultimately remove them here.
       * </pre>
       *
       * <code>string servable_name = 1 [deprecated = true];</code>
       */
      @java.lang.Deprecated java.lang.String getServableName();
      /**
       * <pre>
       * A single servable name/base_path pair to monitor.
       * DEPRECATED: Use 'servables' instead.
       * TODO(b/30898016): Stop using these fields, and ultimately remove them here.
       * </pre>
       *
       * <code>string servable_name = 1 [deprecated = true];</code>
       */
      @java.lang.Deprecated com.google.protobuf.ByteString
          getServableNameBytes();
  
      /**
       * <code>string base_path = 2 [deprecated = true];</code>
       */
      @java.lang.Deprecated java.lang.String getBasePath();
      /**
       * <code>string base_path = 2 [deprecated = true];</code>
       */
      @java.lang.Deprecated com.google.protobuf.ByteString
          getBasePathBytes();
  
      /**
       * <pre>
       * How long to wait between file-system polling to look for children of
       * 'base_path', in seconds.
       * For testing use only: a negative value disables the polling thread.
       * </pre>
       *
       * <code>int64 file_system_poll_wait_seconds = 3;</code>
       */
      long getFileSystemPollWaitSeconds();
  
      /**
       * <pre>
       * If true, then FileSystemStoragePathSource::Create() and ::UpdateConfig()
       * fail if, for any configured servables, the file system doesn't currently
       * contain at least one version under the base path.
       * (Otherwise, it will emit a warning and keep pinging the file system to
       * check for a version to appear later.)
       * </pre>
       *
       * <code>bool fail_if_zero_versions_at_startup = 4;</code>
       */
      boolean getFailIfZeroVersionsAtStartup();
    }
    /**
     * <pre>
     * Config proto for FileSystemStoragePathSource.
     * </pre>
     *
     * Protobuf type {@code angel.FileSystemStoragePathSourceConfig}
     */
    public  static final class FileSystemStoragePathSourceConfig extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:angel.FileSystemStoragePathSourceConfig)
        FileSystemStoragePathSourceConfigOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use FileSystemStoragePathSourceConfig.newBuilder() to construct.
      private FileSystemStoragePathSourceConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private FileSystemStoragePathSourceConfig() {
        servables_ = java.util.Collections.emptyList();
        servableName_ = "";
        basePath_ = "";
        fileSystemPollWaitSeconds_ = 0L;
        failIfZeroVersionsAtStartup_ = false;
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private FileSystemStoragePathSourceConfig(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownFieldProto3(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
  
                servableName_ = s;
                break;
              }
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
  
                basePath_ = s;
                break;
              }
              case 24: {
  
                fileSystemPollWaitSeconds_ = input.readInt64();
                break;
              }
              case 32: {
  
                failIfZeroVersionsAtStartup_ = input.readBool();
                break;
              }
              case 42: {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  servables_ = new java.util.ArrayList<com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor>();
                  mutable_bitField0_ |= 0x00000001;
                }
                servables_.add(
                    input.readMessage(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.parser(), extensionRegistry));
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
            servables_ = java.util.Collections.unmodifiableList(servables_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_descriptor;
      }
  
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.Builder.class);
      }
  
      public interface ServableVersionPolicyOrBuilder extends
          // @@protoc_insertion_point(interface_extends:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy)
          com.google.protobuf.MessageOrBuilder {
  
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
         */
        boolean hasLatest();
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
         */
        com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest getLatest();
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
         */
        com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.LatestOrBuilder getLatestOrBuilder();
  
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
         */
        boolean hasAll();
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
         */
        com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All getAll();
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
         */
        com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.AllOrBuilder getAllOrBuilder();
  
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
         */
        boolean hasSpecific();
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
         */
        com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific getSpecific();
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
         */
        com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.SpecificOrBuilder getSpecificOrBuilder();
  
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.PolicyChoiceCase getPolicyChoiceCase();
      }
      /**
       * <pre>
       * A policy that dictates which version(s) of a servable should be served.
       * </pre>
       *
       * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy}
       */
      public  static final class ServableVersionPolicy extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy)
          ServableVersionPolicyOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use ServableVersionPolicy.newBuilder() to construct.
        private ServableVersionPolicy(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private ServableVersionPolicy() {
        }
  
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private ServableVersionPolicy(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownFieldProto3(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 802: {
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.Builder subBuilder = null;
                  if (policyChoiceCase_ == 100) {
                    subBuilder = ((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_).toBuilder();
                  }
                  policyChoice_ =
                      input.readMessage(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.parser(), extensionRegistry);
                  if (subBuilder != null) {
                    subBuilder.mergeFrom((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_);
                    policyChoice_ = subBuilder.buildPartial();
                  }
                  policyChoiceCase_ = 100;
                  break;
                }
                case 810: {
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.Builder subBuilder = null;
                  if (policyChoiceCase_ == 101) {
                    subBuilder = ((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_).toBuilder();
                  }
                  policyChoice_ =
                      input.readMessage(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.parser(), extensionRegistry);
                  if (subBuilder != null) {
                    subBuilder.mergeFrom((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_);
                    policyChoice_ = subBuilder.buildPartial();
                  }
                  policyChoiceCase_ = 101;
                  break;
                }
                case 818: {
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.Builder subBuilder = null;
                  if (policyChoiceCase_ == 102) {
                    subBuilder = ((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_).toBuilder();
                  }
                  policyChoice_ =
                      input.readMessage(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.parser(), extensionRegistry);
                  if (subBuilder != null) {
                    subBuilder.mergeFrom((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_);
                    policyChoice_ = subBuilder.buildPartial();
                  }
                  policyChoiceCase_ = 102;
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Builder.class);
        }
  
        public interface LatestOrBuilder extends
            // @@protoc_insertion_point(interface_extends:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest)
            com.google.protobuf.MessageOrBuilder {
  
          /**
           * <pre>
           * Number of latest versions to serve. (The default is 1.)
           * </pre>
           *
           * <code>uint32 num_versions = 1;</code>
           */
          int getNumVersions();
        }
        /**
         * <pre>
         * Serve the latest versions (i.e. the ones with the highest version
         * numbers), among those found on disk.
         * This is the default policy, with the default number of versions as 1.
         * </pre>
         *
         * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest}
         */
        public  static final class Latest extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest)
            LatestOrBuilder {
        private static final long serialVersionUID = 0L;
          // Use Latest.newBuilder() to construct.
          private Latest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
          }
          private Latest() {
            numVersions_ = 0;
          }
  
          @java.lang.Override
          public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
            return this.unknownFields;
          }
          private Latest(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            int mutable_bitField0_ = 0;
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder();
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownFieldProto3(
                        input, unknownFields, extensionRegistry, tag)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
  
                    numVersions_ = input.readUInt32();
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(
                  e).setUnfinishedMessage(this);
            } finally {
              this.unknownFields = unknownFields.build();
              makeExtensionsImmutable();
            }
          }
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_descriptor;
          }
  
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.Builder.class);
          }
  
          public static final int NUM_VERSIONS_FIELD_NUMBER = 1;
          private int numVersions_;
          /**
           * <pre>
           * Number of latest versions to serve. (The default is 1.)
           * </pre>
           *
           * <code>uint32 num_versions = 1;</code>
           */
          public int getNumVersions() {
            return numVersions_;
          }
  
          private byte memoizedIsInitialized = -1;
          public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;
  
            memoizedIsInitialized = 1;
            return true;
          }
  
          public void writeTo(com.google.protobuf.CodedOutputStream output)
                              throws java.io.IOException {
            if (numVersions_ != 0) {
              output.writeUInt32(1, numVersions_);
            }
            unknownFields.writeTo(output);
          }
  
          public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;
  
            size = 0;
            if (numVersions_ != 0) {
              size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, numVersions_);
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
          }
  
          @java.lang.Override
          public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
             return true;
            }
            if (!(obj instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest)) {
              return super.equals(obj);
            }
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest other = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) obj;
  
            boolean result = true;
            result = result && (getNumVersions()
                == other.getNumVersions());
            result = result && unknownFields.equals(other.unknownFields);
            return result;
          }
  
          @java.lang.Override
          public int hashCode() {
            if (memoizedHashCode != 0) {
              return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + NUM_VERSIONS_FIELD_NUMBER;
            hash = (53 * hash) + getNumVersions();
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
          }
  
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(
              java.nio.ByteBuffer data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(
              java.nio.ByteBuffer data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(
              com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(byte[] data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(
              byte[] data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(java.io.InputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }
  
          public Builder newBuilderForType() { return newBuilder(); }
          public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
          }
          public static Builder newBuilder(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
          }
          public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
          }
  
          @java.lang.Override
          protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
          }
          /**
           * <pre>
           * Serve the latest versions (i.e. the ones with the highest version
           * numbers), among those found on disk.
           * This is the default policy, with the default number of versions as 1.
           * </pre>
           *
           * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest}
           */
          public static final class Builder extends
              com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
              // @@protoc_insertion_point(builder_implements:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest)
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.LatestOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_descriptor;
            }
  
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_fieldAccessorTable
                  .ensureFieldAccessorsInitialized(
                      com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.Builder.class);
            }
  
            // Construct using com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.newBuilder()
            private Builder() {
              maybeForceBuilderInitialization();
            }
  
            private Builder(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
              super(parent);
              maybeForceBuilderInitialization();
            }
            private void maybeForceBuilderInitialization() {
              if (com.google.protobuf.GeneratedMessageV3
                      .alwaysUseFieldBuilders) {
              }
            }
            public Builder clear() {
              super.clear();
              numVersions_ = 0;
  
              return this;
            }
  
            public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_descriptor;
            }
  
            public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest getDefaultInstanceForType() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.getDefaultInstance();
            }
  
            public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest build() {
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(result);
              }
              return result;
            }
  
            public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest buildPartial() {
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest result = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest(this);
              result.numVersions_ = numVersions_;
              onBuilt();
              return result;
            }
  
            public Builder clone() {
              return (Builder) super.clone();
            }
            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return (Builder) super.setField(field, value);
            }
            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
              return (Builder) super.clearField(field);
            }
            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
              return (Builder) super.clearOneof(oneof);
            }
            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, java.lang.Object value) {
              return (Builder) super.setRepeatedField(field, index, value);
            }
            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return (Builder) super.addRepeatedField(field, value);
            }
            public Builder mergeFrom(com.google.protobuf.Message other) {
              if (other instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) {
                return mergeFrom((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest)other);
              } else {
                super.mergeFrom(other);
                return this;
              }
            }
  
            public Builder mergeFrom(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest other) {
              if (other == com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.getDefaultInstance()) return this;
              if (other.getNumVersions() != 0) {
                setNumVersions(other.getNumVersions());
              }
              this.mergeUnknownFields(other.unknownFields);
              onChanged();
              return this;
            }
  
            public final boolean isInitialized() {
              return true;
            }
  
            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest parsedMessage = null;
              try {
                parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                parsedMessage = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) e.getUnfinishedMessage();
                throw e.unwrapIOException();
              } finally {
                if (parsedMessage != null) {
                  mergeFrom(parsedMessage);
                }
              }
              return this;
            }
  
            private int numVersions_ ;
            /**
             * <pre>
             * Number of latest versions to serve. (The default is 1.)
             * </pre>
             *
             * <code>uint32 num_versions = 1;</code>
             */
            public int getNumVersions() {
              return numVersions_;
            }
            /**
             * <pre>
             * Number of latest versions to serve. (The default is 1.)
             * </pre>
             *
             * <code>uint32 num_versions = 1;</code>
             */
            public Builder setNumVersions(int value) {
              
              numVersions_ = value;
              onChanged();
              return this;
            }
            /**
             * <pre>
             * Number of latest versions to serve. (The default is 1.)
             * </pre>
             *
             * <code>uint32 num_versions = 1;</code>
             */
            public Builder clearNumVersions() {
              
              numVersions_ = 0;
              onChanged();
              return this;
            }
            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.setUnknownFieldsProto3(unknownFields);
            }
  
            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.mergeUnknownFields(unknownFields);
            }
  
  
            // @@protoc_insertion_point(builder_scope:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest)
          }
  
          // @@protoc_insertion_point(class_scope:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest)
          private static final com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest DEFAULT_INSTANCE;
          static {
            DEFAULT_INSTANCE = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest();
          }
  
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest getDefaultInstance() {
            return DEFAULT_INSTANCE;
          }
  
          private static final com.google.protobuf.Parser<Latest>
              PARSER = new com.google.protobuf.AbstractParser<Latest>() {
            public Latest parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
              return new Latest(input, extensionRegistry);
            }
          };
  
          public static com.google.protobuf.Parser<Latest> parser() {
            return PARSER;
          }
  
          @java.lang.Override
          public com.google.protobuf.Parser<Latest> getParserForType() {
            return PARSER;
          }
  
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
          }
  
        }
  
        public interface AllOrBuilder extends
            // @@protoc_insertion_point(interface_extends:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All)
            com.google.protobuf.MessageOrBuilder {
        }
        /**
         * <pre>
         * Serve all versions found on disk.
         * </pre>
         *
         * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All}
         */
        public  static final class All extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All)
            AllOrBuilder {
        private static final long serialVersionUID = 0L;
          // Use All.newBuilder() to construct.
          private All(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
          }
          private All() {
          }
  
          @java.lang.Override
          public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
            return this.unknownFields;
          }
          private All(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder();
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownFieldProto3(
                        input, unknownFields, extensionRegistry, tag)) {
                      done = true;
                    }
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(
                  e).setUnfinishedMessage(this);
            } finally {
              this.unknownFields = unknownFields.build();
              makeExtensionsImmutable();
            }
          }
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_descriptor;
          }
  
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.Builder.class);
          }
  
          private byte memoizedIsInitialized = -1;
          public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;
  
            memoizedIsInitialized = 1;
            return true;
          }
  
          public void writeTo(com.google.protobuf.CodedOutputStream output)
                              throws java.io.IOException {
            unknownFields.writeTo(output);
          }
  
          public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;
  
            size = 0;
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
          }
  
          @java.lang.Override
          public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
             return true;
            }
            if (!(obj instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All)) {
              return super.equals(obj);
            }
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All other = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) obj;
  
            boolean result = true;
            result = result && unknownFields.equals(other.unknownFields);
            return result;
          }
  
          @java.lang.Override
          public int hashCode() {
            if (memoizedHashCode != 0) {
              return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
          }
  
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(
              java.nio.ByteBuffer data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(
              java.nio.ByteBuffer data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(
              com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(byte[] data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(
              byte[] data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(java.io.InputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }
  
          public Builder newBuilderForType() { return newBuilder(); }
          public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
          }
          public static Builder newBuilder(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
          }
          public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
          }
  
          @java.lang.Override
          protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
          }
          /**
           * <pre>
           * Serve all versions found on disk.
           * </pre>
           *
           * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All}
           */
          public static final class Builder extends
              com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
              // @@protoc_insertion_point(builder_implements:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All)
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.AllOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_descriptor;
            }
  
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_fieldAccessorTable
                  .ensureFieldAccessorsInitialized(
                      com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.Builder.class);
            }
  
            // Construct using com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.newBuilder()
            private Builder() {
              maybeForceBuilderInitialization();
            }
  
            private Builder(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
              super(parent);
              maybeForceBuilderInitialization();
            }
            private void maybeForceBuilderInitialization() {
              if (com.google.protobuf.GeneratedMessageV3
                      .alwaysUseFieldBuilders) {
              }
            }
            public Builder clear() {
              super.clear();
              return this;
            }
  
            public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_descriptor;
            }
  
            public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All getDefaultInstanceForType() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.getDefaultInstance();
            }
  
            public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All build() {
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(result);
              }
              return result;
            }
  
            public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All buildPartial() {
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All result = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All(this);
              onBuilt();
              return result;
            }
  
            public Builder clone() {
              return (Builder) super.clone();
            }
            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return (Builder) super.setField(field, value);
            }
            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
              return (Builder) super.clearField(field);
            }
            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
              return (Builder) super.clearOneof(oneof);
            }
            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, java.lang.Object value) {
              return (Builder) super.setRepeatedField(field, index, value);
            }
            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return (Builder) super.addRepeatedField(field, value);
            }
            public Builder mergeFrom(com.google.protobuf.Message other) {
              if (other instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) {
                return mergeFrom((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All)other);
              } else {
                super.mergeFrom(other);
                return this;
              }
            }
  
            public Builder mergeFrom(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All other) {
              if (other == com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.getDefaultInstance()) return this;
              this.mergeUnknownFields(other.unknownFields);
              onChanged();
              return this;
            }
  
            public final boolean isInitialized() {
              return true;
            }
  
            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All parsedMessage = null;
              try {
                parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                parsedMessage = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) e.getUnfinishedMessage();
                throw e.unwrapIOException();
              } finally {
                if (parsedMessage != null) {
                  mergeFrom(parsedMessage);
                }
              }
              return this;
            }
            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.setUnknownFieldsProto3(unknownFields);
            }
  
            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.mergeUnknownFields(unknownFields);
            }
  
  
            // @@protoc_insertion_point(builder_scope:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All)
          }
  
          // @@protoc_insertion_point(class_scope:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All)
          private static final com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All DEFAULT_INSTANCE;
          static {
            DEFAULT_INSTANCE = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All();
          }
  
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All getDefaultInstance() {
            return DEFAULT_INSTANCE;
          }
  
          private static final com.google.protobuf.Parser<All>
              PARSER = new com.google.protobuf.AbstractParser<All>() {
            public All parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
              return new All(input, extensionRegistry);
            }
          };
  
          public static com.google.protobuf.Parser<All> parser() {
            return PARSER;
          }
  
          @java.lang.Override
          public com.google.protobuf.Parser<All> getParserForType() {
            return PARSER;
          }
  
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
          }
  
        }
  
        public interface SpecificOrBuilder extends
            // @@protoc_insertion_point(interface_extends:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific)
            com.google.protobuf.MessageOrBuilder {
  
          /**
           * <pre>
           * The version numbers to serve.
           * </pre>
           *
           * <code>repeated int64 versions = 1;</code>
           */
          java.util.List<java.lang.Long> getVersionsList();
          /**
           * <pre>
           * The version numbers to serve.
           * </pre>
           *
           * <code>repeated int64 versions = 1;</code>
           */
          int getVersionsCount();
          /**
           * <pre>
           * The version numbers to serve.
           * </pre>
           *
           * <code>repeated int64 versions = 1;</code>
           */
          long getVersions(int index);
        }
        /**
         * <pre>
         * Serve a specific version (or set of versions).
         * This policy is useful for rolling back to a specific version, or for
         * canarying a specific version while still serving a separate stable
         * version.
         * </pre>
         *
         * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific}
         */
        public  static final class Specific extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific)
            SpecificOrBuilder {
        private static final long serialVersionUID = 0L;
          // Use Specific.newBuilder() to construct.
          private Specific(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
          }
          private Specific() {
            versions_ = java.util.Collections.emptyList();
          }
  
          @java.lang.Override
          public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
            return this.unknownFields;
          }
          private Specific(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            this();
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            int mutable_bitField0_ = 0;
            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder();
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  default: {
                    if (!parseUnknownFieldProto3(
                        input, unknownFields, extensionRegistry, tag)) {
                      done = true;
                    }
                    break;
                  }
                  case 8: {
                    if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                      versions_ = new java.util.ArrayList<java.lang.Long>();
                      mutable_bitField0_ |= 0x00000001;
                    }
                    versions_.add(input.readInt64());
                    break;
                  }
                  case 10: {
                    int length = input.readRawVarint32();
                    int limit = input.pushLimit(length);
                    if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                      versions_ = new java.util.ArrayList<java.lang.Long>();
                      mutable_bitField0_ |= 0x00000001;
                    }
                    while (input.getBytesUntilLimit() > 0) {
                      versions_.add(input.readInt64());
                    }
                    input.popLimit(limit);
                    break;
                  }
                }
              }
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(this);
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(
                  e).setUnfinishedMessage(this);
            } finally {
              if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                versions_ = java.util.Collections.unmodifiableList(versions_);
              }
              this.unknownFields = unknownFields.build();
              makeExtensionsImmutable();
            }
          }
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_descriptor;
          }
  
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.Builder.class);
          }
  
          public static final int VERSIONS_FIELD_NUMBER = 1;
          private java.util.List<java.lang.Long> versions_;
          /**
           * <pre>
           * The version numbers to serve.
           * </pre>
           *
           * <code>repeated int64 versions = 1;</code>
           */
          public java.util.List<java.lang.Long>
              getVersionsList() {
            return versions_;
          }
          /**
           * <pre>
           * The version numbers to serve.
           * </pre>
           *
           * <code>repeated int64 versions = 1;</code>
           */
          public int getVersionsCount() {
            return versions_.size();
          }
          /**
           * <pre>
           * The version numbers to serve.
           * </pre>
           *
           * <code>repeated int64 versions = 1;</code>
           */
          public long getVersions(int index) {
            return versions_.get(index);
          }
          private int versionsMemoizedSerializedSize = -1;
  
          private byte memoizedIsInitialized = -1;
          public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1) return true;
            if (isInitialized == 0) return false;
  
            memoizedIsInitialized = 1;
            return true;
          }
  
          public void writeTo(com.google.protobuf.CodedOutputStream output)
                              throws java.io.IOException {
            getSerializedSize();
            if (getVersionsList().size() > 0) {
              output.writeUInt32NoTag(10);
              output.writeUInt32NoTag(versionsMemoizedSerializedSize);
            }
            for (int i = 0; i < versions_.size(); i++) {
              output.writeInt64NoTag(versions_.get(i));
            }
            unknownFields.writeTo(output);
          }
  
          public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1) return size;
  
            size = 0;
            {
              int dataSize = 0;
              for (int i = 0; i < versions_.size(); i++) {
                dataSize += com.google.protobuf.CodedOutputStream
                  .computeInt64SizeNoTag(versions_.get(i));
              }
              size += dataSize;
              if (!getVersionsList().isEmpty()) {
                size += 1;
                size += com.google.protobuf.CodedOutputStream
                    .computeInt32SizeNoTag(dataSize);
              }
              versionsMemoizedSerializedSize = dataSize;
            }
            size += unknownFields.getSerializedSize();
            memoizedSize = size;
            return size;
          }
  
          @java.lang.Override
          public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
             return true;
            }
            if (!(obj instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific)) {
              return super.equals(obj);
            }
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific other = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) obj;
  
            boolean result = true;
            result = result && getVersionsList()
                .equals(other.getVersionsList());
            result = result && unknownFields.equals(other.unknownFields);
            return result;
          }
  
          @java.lang.Override
          public int hashCode() {
            if (memoizedHashCode != 0) {
              return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getVersionsCount() > 0) {
              hash = (37 * hash) + VERSIONS_FIELD_NUMBER;
              hash = (53 * hash) + getVersionsList().hashCode();
            }
            hash = (29 * hash) + unknownFields.hashCode();
            memoizedHashCode = hash;
            return hash;
          }
  
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(
              java.nio.ByteBuffer data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(
              java.nio.ByteBuffer data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(
              com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(byte[] data)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(
              byte[] data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(java.io.InputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
          }
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
          }
  
          public Builder newBuilderForType() { return newBuilder(); }
          public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
          }
          public static Builder newBuilder(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
          }
          public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
          }
  
          @java.lang.Override
          protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
          }
          /**
           * <pre>
           * Serve a specific version (or set of versions).
           * This policy is useful for rolling back to a specific version, or for
           * canarying a specific version while still serving a separate stable
           * version.
           * </pre>
           *
           * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific}
           */
          public static final class Builder extends
              com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
              // @@protoc_insertion_point(builder_implements:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific)
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.SpecificOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_descriptor;
            }
  
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_fieldAccessorTable
                  .ensureFieldAccessorsInitialized(
                      com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.Builder.class);
            }
  
            // Construct using com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.newBuilder()
            private Builder() {
              maybeForceBuilderInitialization();
            }
  
            private Builder(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
              super(parent);
              maybeForceBuilderInitialization();
            }
            private void maybeForceBuilderInitialization() {
              if (com.google.protobuf.GeneratedMessageV3
                      .alwaysUseFieldBuilders) {
              }
            }
            public Builder clear() {
              super.clear();
              versions_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
              return this;
            }
  
            public com.google.protobuf.Descriptors.Descriptor
                getDescriptorForType() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_descriptor;
            }
  
            public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific getDefaultInstanceForType() {
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.getDefaultInstance();
            }
  
            public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific build() {
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific result = buildPartial();
              if (!result.isInitialized()) {
                throw newUninitializedMessageException(result);
              }
              return result;
            }
  
            public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific buildPartial() {
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific result = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific(this);
              int from_bitField0_ = bitField0_;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                versions_ = java.util.Collections.unmodifiableList(versions_);
                bitField0_ = (bitField0_ & ~0x00000001);
              }
              result.versions_ = versions_;
              onBuilt();
              return result;
            }
  
            public Builder clone() {
              return (Builder) super.clone();
            }
            public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return (Builder) super.setField(field, value);
            }
            public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
              return (Builder) super.clearField(field);
            }
            public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
              return (Builder) super.clearOneof(oneof);
            }
            public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, java.lang.Object value) {
              return (Builder) super.setRepeatedField(field, index, value);
            }
            public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
              return (Builder) super.addRepeatedField(field, value);
            }
            public Builder mergeFrom(com.google.protobuf.Message other) {
              if (other instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) {
                return mergeFrom((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific)other);
              } else {
                super.mergeFrom(other);
                return this;
              }
            }
  
            public Builder mergeFrom(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific other) {
              if (other == com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.getDefaultInstance()) return this;
              if (!other.versions_.isEmpty()) {
                if (versions_.isEmpty()) {
                  versions_ = other.versions_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                } else {
                  ensureVersionsIsMutable();
                  versions_.addAll(other.versions_);
                }
                onChanged();
              }
              this.mergeUnknownFields(other.unknownFields);
              onChanged();
              return this;
            }
  
            public final boolean isInitialized() {
              return true;
            }
  
            public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific parsedMessage = null;
              try {
                parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                parsedMessage = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) e.getUnfinishedMessage();
                throw e.unwrapIOException();
              } finally {
                if (parsedMessage != null) {
                  mergeFrom(parsedMessage);
                }
              }
              return this;
            }
            private int bitField0_;
  
            private java.util.List<java.lang.Long> versions_ = java.util.Collections.emptyList();
            private void ensureVersionsIsMutable() {
              if (!((bitField0_ & 0x00000001) == 0x00000001)) {
                versions_ = new java.util.ArrayList<java.lang.Long>(versions_);
                bitField0_ |= 0x00000001;
               }
            }
            /**
             * <pre>
             * The version numbers to serve.
             * </pre>
             *
             * <code>repeated int64 versions = 1;</code>
             */
            public java.util.List<java.lang.Long>
                getVersionsList() {
              return java.util.Collections.unmodifiableList(versions_);
            }
            /**
             * <pre>
             * The version numbers to serve.
             * </pre>
             *
             * <code>repeated int64 versions = 1;</code>
             */
            public int getVersionsCount() {
              return versions_.size();
            }
            /**
             * <pre>
             * The version numbers to serve.
             * </pre>
             *
             * <code>repeated int64 versions = 1;</code>
             */
            public long getVersions(int index) {
              return versions_.get(index);
            }
            /**
             * <pre>
             * The version numbers to serve.
             * </pre>
             *
             * <code>repeated int64 versions = 1;</code>
             */
            public Builder setVersions(
                int index, long value) {
              ensureVersionsIsMutable();
              versions_.set(index, value);
              onChanged();
              return this;
            }
            /**
             * <pre>
             * The version numbers to serve.
             * </pre>
             *
             * <code>repeated int64 versions = 1;</code>
             */
            public Builder addVersions(long value) {
              ensureVersionsIsMutable();
              versions_.add(value);
              onChanged();
              return this;
            }
            /**
             * <pre>
             * The version numbers to serve.
             * </pre>
             *
             * <code>repeated int64 versions = 1;</code>
             */
            public Builder addAllVersions(
                java.lang.Iterable<? extends java.lang.Long> values) {
              ensureVersionsIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, versions_);
              onChanged();
              return this;
            }
            /**
             * <pre>
             * The version numbers to serve.
             * </pre>
             *
             * <code>repeated int64 versions = 1;</code>
             */
            public Builder clearVersions() {
              versions_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
              onChanged();
              return this;
            }
            public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.setUnknownFieldsProto3(unknownFields);
            }
  
            public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
              return super.mergeUnknownFields(unknownFields);
            }
  
  
            // @@protoc_insertion_point(builder_scope:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific)
          }
  
          // @@protoc_insertion_point(class_scope:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific)
          private static final com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific DEFAULT_INSTANCE;
          static {
            DEFAULT_INSTANCE = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific();
          }
  
          public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific getDefaultInstance() {
            return DEFAULT_INSTANCE;
          }
  
          private static final com.google.protobuf.Parser<Specific>
              PARSER = new com.google.protobuf.AbstractParser<Specific>() {
            public Specific parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
              return new Specific(input, extensionRegistry);
            }
          };
  
          public static com.google.protobuf.Parser<Specific> parser() {
            return PARSER;
          }
  
          @java.lang.Override
          public com.google.protobuf.Parser<Specific> getParserForType() {
            return PARSER;
          }
  
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
          }
  
        }
  
        private int policyChoiceCase_ = 0;
        private java.lang.Object policyChoice_;
        public enum PolicyChoiceCase
            implements com.google.protobuf.Internal.EnumLite {
          LATEST(100),
          ALL(101),
          SPECIFIC(102),
          POLICYCHOICE_NOT_SET(0);
          private final int value;
          private PolicyChoiceCase(int value) {
            this.value = value;
          }
          /**
           * @deprecated Use {@link #forNumber(int)} instead.
           */
          @java.lang.Deprecated
          public static PolicyChoiceCase valueOf(int value) {
            return forNumber(value);
          }
  
          public static PolicyChoiceCase forNumber(int value) {
            switch (value) {
              case 100: return LATEST;
              case 101: return ALL;
              case 102: return SPECIFIC;
              case 0: return POLICYCHOICE_NOT_SET;
              default: return null;
            }
          }
          public int getNumber() {
            return this.value;
          }
        };
  
        public PolicyChoiceCase
        getPolicyChoiceCase() {
          return PolicyChoiceCase.forNumber(
              policyChoiceCase_);
        }
  
        public static final int LATEST_FIELD_NUMBER = 100;
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
         */
        public boolean hasLatest() {
          return policyChoiceCase_ == 100;
        }
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest getLatest() {
          if (policyChoiceCase_ == 100) {
             return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_;
          }
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.getDefaultInstance();
        }
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.LatestOrBuilder getLatestOrBuilder() {
          if (policyChoiceCase_ == 100) {
             return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_;
          }
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.getDefaultInstance();
        }
  
        public static final int ALL_FIELD_NUMBER = 101;
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
         */
        public boolean hasAll() {
          return policyChoiceCase_ == 101;
        }
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All getAll() {
          if (policyChoiceCase_ == 101) {
             return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_;
          }
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.getDefaultInstance();
        }
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.AllOrBuilder getAllOrBuilder() {
          if (policyChoiceCase_ == 101) {
             return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_;
          }
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.getDefaultInstance();
        }
  
        public static final int SPECIFIC_FIELD_NUMBER = 102;
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
         */
        public boolean hasSpecific() {
          return policyChoiceCase_ == 102;
        }
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific getSpecific() {
          if (policyChoiceCase_ == 102) {
             return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_;
          }
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.getDefaultInstance();
        }
        /**
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.SpecificOrBuilder getSpecificOrBuilder() {
          if (policyChoiceCase_ == 102) {
             return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_;
          }
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.getDefaultInstance();
        }
  
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;
  
          memoizedIsInitialized = 1;
          return true;
        }
  
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (policyChoiceCase_ == 100) {
            output.writeMessage(100, (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_);
          }
          if (policyChoiceCase_ == 101) {
            output.writeMessage(101, (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_);
          }
          if (policyChoiceCase_ == 102) {
            output.writeMessage(102, (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_);
          }
          unknownFields.writeTo(output);
        }
  
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;
  
          size = 0;
          if (policyChoiceCase_ == 100) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(100, (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_);
          }
          if (policyChoiceCase_ == 101) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(101, (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_);
          }
          if (policyChoiceCase_ == 102) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(102, (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }
  
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy)) {
            return super.equals(obj);
          }
          com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy other = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy) obj;
  
          boolean result = true;
          result = result && getPolicyChoiceCase().equals(
              other.getPolicyChoiceCase());
          if (!result) return false;
          switch (policyChoiceCase_) {
            case 100:
              result = result && getLatest()
                  .equals(other.getLatest());
              break;
            case 101:
              result = result && getAll()
                  .equals(other.getAll());
              break;
            case 102:
              result = result && getSpecific()
                  .equals(other.getSpecific());
              break;
            case 0:
            default:
          }
          result = result && unknownFields.equals(other.unknownFields);
          return result;
        }
  
        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          switch (policyChoiceCase_) {
            case 100:
              hash = (37 * hash) + LATEST_FIELD_NUMBER;
              hash = (53 * hash) + getLatest().hashCode();
              break;
            case 101:
              hash = (37 * hash) + ALL_FIELD_NUMBER;
              hash = (53 * hash) + getAll().hashCode();
              break;
            case 102:
              hash = (37 * hash) + SPECIFIC_FIELD_NUMBER;
              hash = (53 * hash) + getSpecific().hashCode();
              break;
            case 0:
            default:
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }
  
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
  
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }
  
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * A policy that dictates which version(s) of a servable should be served.
         * </pre>
         *
         * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy)
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicyOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_descriptor;
          }
  
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Builder.class);
          }
  
          // Construct using com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
  
          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          public Builder clear() {
            super.clear();
            policyChoiceCase_ = 0;
            policyChoice_ = null;
            return this;
          }
  
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_descriptor;
          }
  
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy getDefaultInstanceForType() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.getDefaultInstance();
          }
  
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy build() {
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
  
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy buildPartial() {
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy result = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy(this);
            if (policyChoiceCase_ == 100) {
              if (latestBuilder_ == null) {
                result.policyChoice_ = policyChoice_;
              } else {
                result.policyChoice_ = latestBuilder_.build();
              }
            }
            if (policyChoiceCase_ == 101) {
              if (allBuilder_ == null) {
                result.policyChoice_ = policyChoice_;
              } else {
                result.policyChoice_ = allBuilder_.build();
              }
            }
            if (policyChoiceCase_ == 102) {
              if (specificBuilder_ == null) {
                result.policyChoice_ = policyChoice_;
              } else {
                result.policyChoice_ = specificBuilder_.build();
              }
            }
            result.policyChoiceCase_ = policyChoiceCase_;
            onBuilt();
            return result;
          }
  
          public Builder clone() {
            return (Builder) super.clone();
          }
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return (Builder) super.setField(field, value);
          }
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return (Builder) super.clearField(field);
          }
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return (Builder) super.clearOneof(oneof);
          }
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return (Builder) super.setRepeatedField(field, index, value);
          }
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return (Builder) super.addRepeatedField(field, value);
          }
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy) {
              return mergeFrom((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
  
          public Builder mergeFrom(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy other) {
            if (other == com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.getDefaultInstance()) return this;
            switch (other.getPolicyChoiceCase()) {
              case LATEST: {
                mergeLatest(other.getLatest());
                break;
              }
              case ALL: {
                mergeAll(other.getAll());
                break;
              }
              case SPECIFIC: {
                mergeSpecific(other.getSpecific());
                break;
              }
              case POLICYCHOICE_NOT_SET: {
                break;
              }
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }
  
          public final boolean isInitialized() {
            return true;
          }
  
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int policyChoiceCase_ = 0;
          private java.lang.Object policyChoice_;
          public PolicyChoiceCase
              getPolicyChoiceCase() {
            return PolicyChoiceCase.forNumber(
                policyChoiceCase_);
          }
  
          public Builder clearPolicyChoice() {
            policyChoiceCase_ = 0;
            policyChoice_ = null;
            onChanged();
            return this;
          }
  
  
          private com.google.protobuf.SingleFieldBuilderV3<
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.LatestOrBuilder> latestBuilder_;
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
           */
          public boolean hasLatest() {
            return policyChoiceCase_ == 100;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest getLatest() {
            if (latestBuilder_ == null) {
              if (policyChoiceCase_ == 100) {
                return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_;
              }
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.getDefaultInstance();
            } else {
              if (policyChoiceCase_ == 100) {
                return latestBuilder_.getMessage();
              }
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.getDefaultInstance();
            }
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
           */
          public Builder setLatest(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest value) {
            if (latestBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              policyChoice_ = value;
              onChanged();
            } else {
              latestBuilder_.setMessage(value);
            }
            policyChoiceCase_ = 100;
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
           */
          public Builder setLatest(
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.Builder builderForValue) {
            if (latestBuilder_ == null) {
              policyChoice_ = builderForValue.build();
              onChanged();
            } else {
              latestBuilder_.setMessage(builderForValue.build());
            }
            policyChoiceCase_ = 100;
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
           */
          public Builder mergeLatest(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest value) {
            if (latestBuilder_ == null) {
              if (policyChoiceCase_ == 100 &&
                  policyChoice_ != com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.getDefaultInstance()) {
                policyChoice_ = com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.newBuilder((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_)
                    .mergeFrom(value).buildPartial();
              } else {
                policyChoice_ = value;
              }
              onChanged();
            } else {
              if (policyChoiceCase_ == 100) {
                latestBuilder_.mergeFrom(value);
              }
              latestBuilder_.setMessage(value);
            }
            policyChoiceCase_ = 100;
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
           */
          public Builder clearLatest() {
            if (latestBuilder_ == null) {
              if (policyChoiceCase_ == 100) {
                policyChoiceCase_ = 0;
                policyChoice_ = null;
                onChanged();
              }
            } else {
              if (policyChoiceCase_ == 100) {
                policyChoiceCase_ = 0;
                policyChoice_ = null;
              }
              latestBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.Builder getLatestBuilder() {
            return getLatestFieldBuilder().getBuilder();
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.LatestOrBuilder getLatestOrBuilder() {
            if ((policyChoiceCase_ == 100) && (latestBuilder_ != null)) {
              return latestBuilder_.getMessageOrBuilder();
            } else {
              if (policyChoiceCase_ == 100) {
                return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_;
              }
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.getDefaultInstance();
            }
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest latest = 100;</code>
           */
          private com.google.protobuf.SingleFieldBuilderV3<
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.LatestOrBuilder> 
              getLatestFieldBuilder() {
            if (latestBuilder_ == null) {
              if (!(policyChoiceCase_ == 100)) {
                policyChoice_ = com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.getDefaultInstance();
              }
              latestBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.LatestOrBuilder>(
                      (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Latest) policyChoice_,
                      getParentForChildren(),
                      isClean());
              policyChoice_ = null;
            }
            policyChoiceCase_ = 100;
            onChanged();;
            return latestBuilder_;
          }
  
          private com.google.protobuf.SingleFieldBuilderV3<
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.AllOrBuilder> allBuilder_;
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
           */
          public boolean hasAll() {
            return policyChoiceCase_ == 101;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All getAll() {
            if (allBuilder_ == null) {
              if (policyChoiceCase_ == 101) {
                return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_;
              }
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.getDefaultInstance();
            } else {
              if (policyChoiceCase_ == 101) {
                return allBuilder_.getMessage();
              }
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.getDefaultInstance();
            }
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
           */
          public Builder setAll(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All value) {
            if (allBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              policyChoice_ = value;
              onChanged();
            } else {
              allBuilder_.setMessage(value);
            }
            policyChoiceCase_ = 101;
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
           */
          public Builder setAll(
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.Builder builderForValue) {
            if (allBuilder_ == null) {
              policyChoice_ = builderForValue.build();
              onChanged();
            } else {
              allBuilder_.setMessage(builderForValue.build());
            }
            policyChoiceCase_ = 101;
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
           */
          public Builder mergeAll(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All value) {
            if (allBuilder_ == null) {
              if (policyChoiceCase_ == 101 &&
                  policyChoice_ != com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.getDefaultInstance()) {
                policyChoice_ = com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.newBuilder((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_)
                    .mergeFrom(value).buildPartial();
              } else {
                policyChoice_ = value;
              }
              onChanged();
            } else {
              if (policyChoiceCase_ == 101) {
                allBuilder_.mergeFrom(value);
              }
              allBuilder_.setMessage(value);
            }
            policyChoiceCase_ = 101;
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
           */
          public Builder clearAll() {
            if (allBuilder_ == null) {
              if (policyChoiceCase_ == 101) {
                policyChoiceCase_ = 0;
                policyChoice_ = null;
                onChanged();
              }
            } else {
              if (policyChoiceCase_ == 101) {
                policyChoiceCase_ = 0;
                policyChoice_ = null;
              }
              allBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.Builder getAllBuilder() {
            return getAllFieldBuilder().getBuilder();
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.AllOrBuilder getAllOrBuilder() {
            if ((policyChoiceCase_ == 101) && (allBuilder_ != null)) {
              return allBuilder_.getMessageOrBuilder();
            } else {
              if (policyChoiceCase_ == 101) {
                return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_;
              }
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.getDefaultInstance();
            }
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All all = 101;</code>
           */
          private com.google.protobuf.SingleFieldBuilderV3<
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.AllOrBuilder> 
              getAllFieldBuilder() {
            if (allBuilder_ == null) {
              if (!(policyChoiceCase_ == 101)) {
                policyChoice_ = com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.getDefaultInstance();
              }
              allBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.AllOrBuilder>(
                      (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.All) policyChoice_,
                      getParentForChildren(),
                      isClean());
              policyChoice_ = null;
            }
            policyChoiceCase_ = 101;
            onChanged();;
            return allBuilder_;
          }
  
          private com.google.protobuf.SingleFieldBuilderV3<
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.SpecificOrBuilder> specificBuilder_;
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
           */
          public boolean hasSpecific() {
            return policyChoiceCase_ == 102;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific getSpecific() {
            if (specificBuilder_ == null) {
              if (policyChoiceCase_ == 102) {
                return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_;
              }
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.getDefaultInstance();
            } else {
              if (policyChoiceCase_ == 102) {
                return specificBuilder_.getMessage();
              }
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.getDefaultInstance();
            }
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
           */
          public Builder setSpecific(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific value) {
            if (specificBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              policyChoice_ = value;
              onChanged();
            } else {
              specificBuilder_.setMessage(value);
            }
            policyChoiceCase_ = 102;
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
           */
          public Builder setSpecific(
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.Builder builderForValue) {
            if (specificBuilder_ == null) {
              policyChoice_ = builderForValue.build();
              onChanged();
            } else {
              specificBuilder_.setMessage(builderForValue.build());
            }
            policyChoiceCase_ = 102;
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
           */
          public Builder mergeSpecific(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific value) {
            if (specificBuilder_ == null) {
              if (policyChoiceCase_ == 102 &&
                  policyChoice_ != com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.getDefaultInstance()) {
                policyChoice_ = com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.newBuilder((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_)
                    .mergeFrom(value).buildPartial();
              } else {
                policyChoice_ = value;
              }
              onChanged();
            } else {
              if (policyChoiceCase_ == 102) {
                specificBuilder_.mergeFrom(value);
              }
              specificBuilder_.setMessage(value);
            }
            policyChoiceCase_ = 102;
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
           */
          public Builder clearSpecific() {
            if (specificBuilder_ == null) {
              if (policyChoiceCase_ == 102) {
                policyChoiceCase_ = 0;
                policyChoice_ = null;
                onChanged();
              }
            } else {
              if (policyChoiceCase_ == 102) {
                policyChoiceCase_ = 0;
                policyChoice_ = null;
              }
              specificBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.Builder getSpecificBuilder() {
            return getSpecificFieldBuilder().getBuilder();
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.SpecificOrBuilder getSpecificOrBuilder() {
            if ((policyChoiceCase_ == 102) && (specificBuilder_ != null)) {
              return specificBuilder_.getMessageOrBuilder();
            } else {
              if (policyChoiceCase_ == 102) {
                return (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_;
              }
              return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.getDefaultInstance();
            }
          }
          /**
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific specific = 102;</code>
           */
          private com.google.protobuf.SingleFieldBuilderV3<
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.SpecificOrBuilder> 
              getSpecificFieldBuilder() {
            if (specificBuilder_ == null) {
              if (!(policyChoiceCase_ == 102)) {
                policyChoice_ = com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.getDefaultInstance();
              }
              specificBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.SpecificOrBuilder>(
                      (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Specific) policyChoice_,
                      getParentForChildren(),
                      isClean());
              policyChoice_ = null;
            }
            policyChoiceCase_ = 102;
            onChanged();;
            return specificBuilder_;
          }
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFieldsProto3(unknownFields);
          }
  
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }
  
  
          // @@protoc_insertion_point(builder_scope:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy)
        }
  
        // @@protoc_insertion_point(class_scope:angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy)
        private static final com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy();
        }
  
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static final com.google.protobuf.Parser<ServableVersionPolicy>
            PARSER = new com.google.protobuf.AbstractParser<ServableVersionPolicy>() {
          public ServableVersionPolicy parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServableVersionPolicy(input, extensionRegistry);
          }
        };
  
        public static com.google.protobuf.Parser<ServableVersionPolicy> parser() {
          return PARSER;
        }
  
        @java.lang.Override
        public com.google.protobuf.Parser<ServableVersionPolicy> getParserForType() {
          return PARSER;
        }
  
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }
  
      }
  
      public interface ServableToMonitorOrBuilder extends
          // @@protoc_insertion_point(interface_extends:angel.FileSystemStoragePathSourceConfig.ServableToMonitor)
          com.google.protobuf.MessageOrBuilder {
  
        /**
         * <pre>
         * The servable name to supply in aspired-versions callback calls. Child
         * paths of 'base_path' are considered to be versions of this servable.
         * </pre>
         *
         * <code>string servable_name = 1;</code>
         */
        java.lang.String getServableName();
        /**
         * <pre>
         * The servable name to supply in aspired-versions callback calls. Child
         * paths of 'base_path' are considered to be versions of this servable.
         * </pre>
         *
         * <code>string servable_name = 1;</code>
         */
        com.google.protobuf.ByteString
            getServableNameBytes();
  
        /**
         * <pre>
         * The path to monitor, i.e. look for child paths of the form base_path/123.
         * </pre>
         *
         * <code>string base_path = 2;</code>
         */
        java.lang.String getBasePath();
        /**
         * <pre>
         * The path to monitor, i.e. look for child paths of the form base_path/123.
         * </pre>
         *
         * <code>string base_path = 2;</code>
         */
        com.google.protobuf.ByteString
            getBasePathBytes();
  
        /**
         * <pre>
         * The policy to determines the number of versions of the servable to be
         * served at the same time.
         * </pre>
         *
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
         */
        boolean hasServableVersionPolicy();
        /**
         * <pre>
         * The policy to determines the number of versions of the servable to be
         * served at the same time.
         * </pre>
         *
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
         */
        com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy getServableVersionPolicy();
        /**
         * <pre>
         * The policy to determines the number of versions of the servable to be
         * served at the same time.
         * </pre>
         *
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
         */
        com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicyOrBuilder getServableVersionPolicyOrBuilder();
      }
      /**
       * <pre>
       * A servable name and base path to look for versions of the servable.
       * </pre>
       *
       * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableToMonitor}
       */
      public  static final class ServableToMonitor extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:angel.FileSystemStoragePathSourceConfig.ServableToMonitor)
          ServableToMonitorOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use ServableToMonitor.newBuilder() to construct.
        private ServableToMonitor(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private ServableToMonitor() {
          servableName_ = "";
          basePath_ = "";
        }
  
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private ServableToMonitor(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownFieldProto3(
                      input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 10: {
                  java.lang.String s = input.readStringRequireUtf8();
  
                  servableName_ = s;
                  break;
                }
                case 18: {
                  java.lang.String s = input.readStringRequireUtf8();
  
                  basePath_ = s;
                  break;
                }
                case 34: {
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Builder subBuilder = null;
                  if (servableVersionPolicy_ != null) {
                    subBuilder = servableVersionPolicy_.toBuilder();
                  }
                  servableVersionPolicy_ = input.readMessage(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.parser(), extensionRegistry);
                  if (subBuilder != null) {
                    subBuilder.mergeFrom(servableVersionPolicy_);
                    servableVersionPolicy_ = subBuilder.buildPartial();
                  }
  
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder.class);
        }
  
        public static final int SERVABLE_NAME_FIELD_NUMBER = 1;
        private volatile java.lang.Object servableName_;
        /**
         * <pre>
         * The servable name to supply in aspired-versions callback calls. Child
         * paths of 'base_path' are considered to be versions of this servable.
         * </pre>
         *
         * <code>string servable_name = 1;</code>
         */
        public java.lang.String getServableName() {
          java.lang.Object ref = servableName_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            servableName_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * The servable name to supply in aspired-versions callback calls. Child
         * paths of 'base_path' are considered to be versions of this servable.
         * </pre>
         *
         * <code>string servable_name = 1;</code>
         */
        public com.google.protobuf.ByteString
            getServableNameBytes() {
          java.lang.Object ref = servableName_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            servableName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
  
        public static final int BASE_PATH_FIELD_NUMBER = 2;
        private volatile java.lang.Object basePath_;
        /**
         * <pre>
         * The path to monitor, i.e. look for child paths of the form base_path/123.
         * </pre>
         *
         * <code>string base_path = 2;</code>
         */
        public java.lang.String getBasePath() {
          java.lang.Object ref = basePath_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            basePath_ = s;
            return s;
          }
        }
        /**
         * <pre>
         * The path to monitor, i.e. look for child paths of the form base_path/123.
         * </pre>
         *
         * <code>string base_path = 2;</code>
         */
        public com.google.protobuf.ByteString
            getBasePathBytes() {
          java.lang.Object ref = basePath_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            basePath_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
  
        public static final int SERVABLE_VERSION_POLICY_FIELD_NUMBER = 4;
        private com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy servableVersionPolicy_;
        /**
         * <pre>
         * The policy to determines the number of versions of the servable to be
         * served at the same time.
         * </pre>
         *
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
         */
        public boolean hasServableVersionPolicy() {
          return servableVersionPolicy_ != null;
        }
        /**
         * <pre>
         * The policy to determines the number of versions of the servable to be
         * served at the same time.
         * </pre>
         *
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy getServableVersionPolicy() {
          return servableVersionPolicy_ == null ? com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.getDefaultInstance() : servableVersionPolicy_;
        }
        /**
         * <pre>
         * The policy to determines the number of versions of the servable to be
         * served at the same time.
         * </pre>
         *
         * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicyOrBuilder getServableVersionPolicyOrBuilder() {
          return getServableVersionPolicy();
        }
  
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;
  
          memoizedIsInitialized = 1;
          return true;
        }
  
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (!getServableNameBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 1, servableName_);
          }
          if (!getBasePathBytes().isEmpty()) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, basePath_);
          }
          if (servableVersionPolicy_ != null) {
            output.writeMessage(4, getServableVersionPolicy());
          }
          unknownFields.writeTo(output);
        }
  
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;
  
          size = 0;
          if (!getServableNameBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, servableName_);
          }
          if (!getBasePathBytes().isEmpty()) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, basePath_);
          }
          if (servableVersionPolicy_ != null) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(4, getServableVersionPolicy());
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }
  
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor)) {
            return super.equals(obj);
          }
          com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor other = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor) obj;
  
          boolean result = true;
          result = result && getServableName()
              .equals(other.getServableName());
          result = result && getBasePath()
              .equals(other.getBasePath());
          result = result && (hasServableVersionPolicy() == other.hasServableVersionPolicy());
          if (hasServableVersionPolicy()) {
            result = result && getServableVersionPolicy()
                .equals(other.getServableVersionPolicy());
          }
          result = result && unknownFields.equals(other.unknownFields);
          return result;
        }
  
        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (37 * hash) + SERVABLE_NAME_FIELD_NUMBER;
          hash = (53 * hash) + getServableName().hashCode();
          hash = (37 * hash) + BASE_PATH_FIELD_NUMBER;
          hash = (53 * hash) + getBasePath().hashCode();
          if (hasServableVersionPolicy()) {
            hash = (37 * hash) + SERVABLE_VERSION_POLICY_FIELD_NUMBER;
            hash = (53 * hash) + getServableVersionPolicy().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }
  
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
  
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }
  
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * <pre>
         * A servable name and base path to look for versions of the servable.
         * </pre>
         *
         * Protobuf type {@code angel.FileSystemStoragePathSourceConfig.ServableToMonitor}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:angel.FileSystemStoragePathSourceConfig.ServableToMonitor)
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_descriptor;
          }
  
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder.class);
          }
  
          // Construct using com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
  
          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }
          public Builder clear() {
            super.clear();
            servableName_ = "";
  
            basePath_ = "";
  
            if (servableVersionPolicyBuilder_ == null) {
              servableVersionPolicy_ = null;
            } else {
              servableVersionPolicy_ = null;
              servableVersionPolicyBuilder_ = null;
            }
            return this;
          }
  
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_descriptor;
          }
  
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor getDefaultInstanceForType() {
            return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.getDefaultInstance();
          }
  
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor build() {
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
  
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor buildPartial() {
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor result = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor(this);
            result.servableName_ = servableName_;
            result.basePath_ = basePath_;
            if (servableVersionPolicyBuilder_ == null) {
              result.servableVersionPolicy_ = servableVersionPolicy_;
            } else {
              result.servableVersionPolicy_ = servableVersionPolicyBuilder_.build();
            }
            onBuilt();
            return result;
          }
  
          public Builder clone() {
            return (Builder) super.clone();
          }
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return (Builder) super.setField(field, value);
          }
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return (Builder) super.clearField(field);
          }
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return (Builder) super.clearOneof(oneof);
          }
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return (Builder) super.setRepeatedField(field, index, value);
          }
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return (Builder) super.addRepeatedField(field, value);
          }
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor) {
              return mergeFrom((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
  
          public Builder mergeFrom(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor other) {
            if (other == com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.getDefaultInstance()) return this;
            if (!other.getServableName().isEmpty()) {
              servableName_ = other.servableName_;
              onChanged();
            }
            if (!other.getBasePath().isEmpty()) {
              basePath_ = other.basePath_;
              onChanged();
            }
            if (other.hasServableVersionPolicy()) {
              mergeServableVersionPolicy(other.getServableVersionPolicy());
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }
  
          public final boolean isInitialized() {
            return true;
          }
  
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
  
          private java.lang.Object servableName_ = "";
          /**
           * <pre>
           * The servable name to supply in aspired-versions callback calls. Child
           * paths of 'base_path' are considered to be versions of this servable.
           * </pre>
           *
           * <code>string servable_name = 1;</code>
           */
          public java.lang.String getServableName() {
            java.lang.Object ref = servableName_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              servableName_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * The servable name to supply in aspired-versions callback calls. Child
           * paths of 'base_path' are considered to be versions of this servable.
           * </pre>
           *
           * <code>string servable_name = 1;</code>
           */
          public com.google.protobuf.ByteString
              getServableNameBytes() {
            java.lang.Object ref = servableName_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              servableName_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * The servable name to supply in aspired-versions callback calls. Child
           * paths of 'base_path' are considered to be versions of this servable.
           * </pre>
           *
           * <code>string servable_name = 1;</code>
           */
          public Builder setServableName(
              java.lang.String value) {
            if (value == null) {
      throw new NullPointerException();
    }
    
            servableName_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * The servable name to supply in aspired-versions callback calls. Child
           * paths of 'base_path' are considered to be versions of this servable.
           * </pre>
           *
           * <code>string servable_name = 1;</code>
           */
          public Builder clearServableName() {
            
            servableName_ = getDefaultInstance().getServableName();
            onChanged();
            return this;
          }
          /**
           * <pre>
           * The servable name to supply in aspired-versions callback calls. Child
           * paths of 'base_path' are considered to be versions of this servable.
           * </pre>
           *
           * <code>string servable_name = 1;</code>
           */
          public Builder setServableNameBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
            
            servableName_ = value;
            onChanged();
            return this;
          }
  
          private java.lang.Object basePath_ = "";
          /**
           * <pre>
           * The path to monitor, i.e. look for child paths of the form base_path/123.
           * </pre>
           *
           * <code>string base_path = 2;</code>
           */
          public java.lang.String getBasePath() {
            java.lang.Object ref = basePath_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              basePath_ = s;
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           * The path to monitor, i.e. look for child paths of the form base_path/123.
           * </pre>
           *
           * <code>string base_path = 2;</code>
           */
          public com.google.protobuf.ByteString
              getBasePathBytes() {
            java.lang.Object ref = basePath_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              basePath_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * <pre>
           * The path to monitor, i.e. look for child paths of the form base_path/123.
           * </pre>
           *
           * <code>string base_path = 2;</code>
           */
          public Builder setBasePath(
              java.lang.String value) {
            if (value == null) {
      throw new NullPointerException();
    }
    
            basePath_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           * The path to monitor, i.e. look for child paths of the form base_path/123.
           * </pre>
           *
           * <code>string base_path = 2;</code>
           */
          public Builder clearBasePath() {
            
            basePath_ = getDefaultInstance().getBasePath();
            onChanged();
            return this;
          }
          /**
           * <pre>
           * The path to monitor, i.e. look for child paths of the form base_path/123.
           * </pre>
           *
           * <code>string base_path = 2;</code>
           */
          public Builder setBasePathBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
            
            basePath_ = value;
            onChanged();
            return this;
          }
  
          private com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy servableVersionPolicy_ = null;
          private com.google.protobuf.SingleFieldBuilderV3<
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicyOrBuilder> servableVersionPolicyBuilder_;
          /**
           * <pre>
           * The policy to determines the number of versions of the servable to be
           * served at the same time.
           * </pre>
           *
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
           */
          public boolean hasServableVersionPolicy() {
            return servableVersionPolicyBuilder_ != null || servableVersionPolicy_ != null;
          }
          /**
           * <pre>
           * The policy to determines the number of versions of the servable to be
           * served at the same time.
           * </pre>
           *
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy getServableVersionPolicy() {
            if (servableVersionPolicyBuilder_ == null) {
              return servableVersionPolicy_ == null ? com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.getDefaultInstance() : servableVersionPolicy_;
            } else {
              return servableVersionPolicyBuilder_.getMessage();
            }
          }
          /**
           * <pre>
           * The policy to determines the number of versions of the servable to be
           * served at the same time.
           * </pre>
           *
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
           */
          public Builder setServableVersionPolicy(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy value) {
            if (servableVersionPolicyBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              servableVersionPolicy_ = value;
              onChanged();
            } else {
              servableVersionPolicyBuilder_.setMessage(value);
            }
  
            return this;
          }
          /**
           * <pre>
           * The policy to determines the number of versions of the servable to be
           * served at the same time.
           * </pre>
           *
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
           */
          public Builder setServableVersionPolicy(
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Builder builderForValue) {
            if (servableVersionPolicyBuilder_ == null) {
              servableVersionPolicy_ = builderForValue.build();
              onChanged();
            } else {
              servableVersionPolicyBuilder_.setMessage(builderForValue.build());
            }
  
            return this;
          }
          /**
           * <pre>
           * The policy to determines the number of versions of the servable to be
           * served at the same time.
           * </pre>
           *
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
           */
          public Builder mergeServableVersionPolicy(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy value) {
            if (servableVersionPolicyBuilder_ == null) {
              if (servableVersionPolicy_ != null) {
                servableVersionPolicy_ =
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.newBuilder(servableVersionPolicy_).mergeFrom(value).buildPartial();
              } else {
                servableVersionPolicy_ = value;
              }
              onChanged();
            } else {
              servableVersionPolicyBuilder_.mergeFrom(value);
            }
  
            return this;
          }
          /**
           * <pre>
           * The policy to determines the number of versions of the servable to be
           * served at the same time.
           * </pre>
           *
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
           */
          public Builder clearServableVersionPolicy() {
            if (servableVersionPolicyBuilder_ == null) {
              servableVersionPolicy_ = null;
              onChanged();
            } else {
              servableVersionPolicy_ = null;
              servableVersionPolicyBuilder_ = null;
            }
  
            return this;
          }
          /**
           * <pre>
           * The policy to determines the number of versions of the servable to be
           * served at the same time.
           * </pre>
           *
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Builder getServableVersionPolicyBuilder() {
            
            onChanged();
            return getServableVersionPolicyFieldBuilder().getBuilder();
          }
          /**
           * <pre>
           * The policy to determines the number of versions of the servable to be
           * served at the same time.
           * </pre>
           *
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
           */
          public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicyOrBuilder getServableVersionPolicyOrBuilder() {
            if (servableVersionPolicyBuilder_ != null) {
              return servableVersionPolicyBuilder_.getMessageOrBuilder();
            } else {
              return servableVersionPolicy_ == null ?
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.getDefaultInstance() : servableVersionPolicy_;
            }
          }
          /**
           * <pre>
           * The policy to determines the number of versions of the servable to be
           * served at the same time.
           * </pre>
           *
           * <code>.angel.FileSystemStoragePathSourceConfig.ServableVersionPolicy servable_version_policy = 4;</code>
           */
          private com.google.protobuf.SingleFieldBuilderV3<
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicyOrBuilder> 
              getServableVersionPolicyFieldBuilder() {
            if (servableVersionPolicyBuilder_ == null) {
              servableVersionPolicyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicy.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableVersionPolicyOrBuilder>(
                      getServableVersionPolicy(),
                      getParentForChildren(),
                      isClean());
              servableVersionPolicy_ = null;
            }
            return servableVersionPolicyBuilder_;
          }
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFieldsProto3(unknownFields);
          }
  
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }
  
  
          // @@protoc_insertion_point(builder_scope:angel.FileSystemStoragePathSourceConfig.ServableToMonitor)
        }
  
        // @@protoc_insertion_point(class_scope:angel.FileSystemStoragePathSourceConfig.ServableToMonitor)
        private static final com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor();
        }
  
        public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static final com.google.protobuf.Parser<ServableToMonitor>
            PARSER = new com.google.protobuf.AbstractParser<ServableToMonitor>() {
          public ServableToMonitor parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServableToMonitor(input, extensionRegistry);
          }
        };
  
        public static com.google.protobuf.Parser<ServableToMonitor> parser() {
          return PARSER;
        }
  
        @java.lang.Override
        public com.google.protobuf.Parser<ServableToMonitor> getParserForType() {
          return PARSER;
        }
  
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }
  
      }
  
      private int bitField0_;
      public static final int SERVABLES_FIELD_NUMBER = 5;
      private java.util.List<com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor> servables_;
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      public java.util.List<com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor> getServablesList() {
        return servables_;
      }
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      public java.util.List<? extends com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder> 
          getServablesOrBuilderList() {
        return servables_;
      }
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      public int getServablesCount() {
        return servables_.size();
      }
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor getServables(int index) {
        return servables_.get(index);
      }
      /**
       * <pre>
       * The servables to monitor for new versions, and aspire.
       * </pre>
       *
       * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
       */
      public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder getServablesOrBuilder(
          int index) {
        return servables_.get(index);
      }
  
      public static final int SERVABLE_NAME_FIELD_NUMBER = 1;
      private volatile java.lang.Object servableName_;
      /**
       * <pre>
       * A single servable name/base_path pair to monitor.
       * DEPRECATED: Use 'servables' instead.
       * TODO(b/30898016): Stop using these fields, and ultimately remove them here.
       * </pre>
       *
       * <code>string servable_name = 1 [deprecated = true];</code>
       */
      @java.lang.Deprecated public java.lang.String getServableName() {
        java.lang.Object ref = servableName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          servableName_ = s;
          return s;
        }
      }
      /**
       * <pre>
       * A single servable name/base_path pair to monitor.
       * DEPRECATED: Use 'servables' instead.
       * TODO(b/30898016): Stop using these fields, and ultimately remove them here.
       * </pre>
       *
       * <code>string servable_name = 1 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.protobuf.ByteString
          getServableNameBytes() {
        java.lang.Object ref = servableName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          servableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int BASE_PATH_FIELD_NUMBER = 2;
      private volatile java.lang.Object basePath_;
      /**
       * <code>string base_path = 2 [deprecated = true];</code>
       */
      @java.lang.Deprecated public java.lang.String getBasePath() {
        java.lang.Object ref = basePath_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          basePath_ = s;
          return s;
        }
      }
      /**
       * <code>string base_path = 2 [deprecated = true];</code>
       */
      @java.lang.Deprecated public com.google.protobuf.ByteString
          getBasePathBytes() {
        java.lang.Object ref = basePath_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          basePath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int FILE_SYSTEM_POLL_WAIT_SECONDS_FIELD_NUMBER = 3;
      private long fileSystemPollWaitSeconds_;
      /**
       * <pre>
       * How long to wait between file-system polling to look for children of
       * 'base_path', in seconds.
       * For testing use only: a negative value disables the polling thread.
       * </pre>
       *
       * <code>int64 file_system_poll_wait_seconds = 3;</code>
       */
      public long getFileSystemPollWaitSeconds() {
        return fileSystemPollWaitSeconds_;
      }
  
      public static final int FAIL_IF_ZERO_VERSIONS_AT_STARTUP_FIELD_NUMBER = 4;
      private boolean failIfZeroVersionsAtStartup_;
      /**
       * <pre>
       * If true, then FileSystemStoragePathSource::Create() and ::UpdateConfig()
       * fail if, for any configured servables, the file system doesn't currently
       * contain at least one version under the base path.
       * (Otherwise, it will emit a warning and keep pinging the file system to
       * check for a version to appear later.)
       * </pre>
       *
       * <code>bool fail_if_zero_versions_at_startup = 4;</code>
       */
      public boolean getFailIfZeroVersionsAtStartup() {
        return failIfZeroVersionsAtStartup_;
      }
  
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getServableNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, servableName_);
        }
        if (!getBasePathBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, basePath_);
        }
        if (fileSystemPollWaitSeconds_ != 0L) {
          output.writeInt64(3, fileSystemPollWaitSeconds_);
        }
        if (failIfZeroVersionsAtStartup_ != false) {
          output.writeBool(4, failIfZeroVersionsAtStartup_);
        }
        for (int i = 0; i < servables_.size(); i++) {
          output.writeMessage(5, servables_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (!getServableNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, servableName_);
        }
        if (!getBasePathBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, basePath_);
        }
        if (fileSystemPollWaitSeconds_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, fileSystemPollWaitSeconds_);
        }
        if (failIfZeroVersionsAtStartup_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(4, failIfZeroVersionsAtStartup_);
        }
        for (int i = 0; i < servables_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, servables_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig)) {
          return super.equals(obj);
        }
        com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig other = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig) obj;
  
        boolean result = true;
        result = result && getServablesList()
            .equals(other.getServablesList());
        result = result && getServableName()
            .equals(other.getServableName());
        result = result && getBasePath()
            .equals(other.getBasePath());
        result = result && (getFileSystemPollWaitSeconds()
            == other.getFileSystemPollWaitSeconds());
        result = result && (getFailIfZeroVersionsAtStartup()
            == other.getFailIfZeroVersionsAtStartup());
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getServablesCount() > 0) {
          hash = (37 * hash) + SERVABLES_FIELD_NUMBER;
          hash = (53 * hash) + getServablesList().hashCode();
        }
        hash = (37 * hash) + SERVABLE_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getServableName().hashCode();
        hash = (37 * hash) + BASE_PATH_FIELD_NUMBER;
        hash = (53 * hash) + getBasePath().hashCode();
        hash = (37 * hash) + FILE_SYSTEM_POLL_WAIT_SECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getFileSystemPollWaitSeconds());
        hash = (37 * hash) + FAIL_IF_ZERO_VERSIONS_AT_STARTUP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getFailIfZeroVersionsAtStartup());
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * Config proto for FileSystemStoragePathSource.
       * </pre>
       *
       * Protobuf type {@code angel.FileSystemStoragePathSourceConfig}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:angel.FileSystemStoragePathSourceConfig)
          com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfigOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_descriptor;
        }
  
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.class, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.Builder.class);
        }
  
        // Construct using com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getServablesFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          if (servablesBuilder_ == null) {
            servables_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            servablesBuilder_.clear();
          }
          servableName_ = "";
  
          basePath_ = "";
  
          fileSystemPollWaitSeconds_ = 0L;
  
          failIfZeroVersionsAtStartup_ = false;
  
          return this;
        }
  
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.internal_static_angel_FileSystemStoragePathSourceConfig_descriptor;
        }
  
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig getDefaultInstanceForType() {
          return com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.getDefaultInstance();
        }
  
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig build() {
          com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig buildPartial() {
          com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig result = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (servablesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              servables_ = java.util.Collections.unmodifiableList(servables_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.servables_ = servables_;
          } else {
            result.servables_ = servablesBuilder_.build();
          }
          result.servableName_ = servableName_;
          result.basePath_ = basePath_;
          result.fileSystemPollWaitSeconds_ = fileSystemPollWaitSeconds_;
          result.failIfZeroVersionsAtStartup_ = failIfZeroVersionsAtStartup_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }
  
        public Builder clone() {
          return (Builder) super.clone();
        }
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.setField(field, value);
        }
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return (Builder) super.clearField(field);
        }
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return (Builder) super.clearOneof(oneof);
        }
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return (Builder) super.setRepeatedField(field, index, value);
        }
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return (Builder) super.addRepeatedField(field, value);
        }
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig) {
            return mergeFrom((com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig other) {
          if (other == com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.getDefaultInstance()) return this;
          if (servablesBuilder_ == null) {
            if (!other.servables_.isEmpty()) {
              if (servables_.isEmpty()) {
                servables_ = other.servables_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureServablesIsMutable();
                servables_.addAll(other.servables_);
              }
              onChanged();
            }
          } else {
            if (!other.servables_.isEmpty()) {
              if (servablesBuilder_.isEmpty()) {
                servablesBuilder_.dispose();
                servablesBuilder_ = null;
                servables_ = other.servables_;
                bitField0_ = (bitField0_ & ~0x00000001);
                servablesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getServablesFieldBuilder() : null;
              } else {
                servablesBuilder_.addAllMessages(other.servables_);
              }
            }
          }
          if (!other.getServableName().isEmpty()) {
            servableName_ = other.servableName_;
            onChanged();
          }
          if (!other.getBasePath().isEmpty()) {
            basePath_ = other.basePath_;
            onChanged();
          }
          if (other.getFileSystemPollWaitSeconds() != 0L) {
            setFileSystemPollWaitSeconds(other.getFileSystemPollWaitSeconds());
          }
          if (other.getFailIfZeroVersionsAtStartup() != false) {
            setFailIfZeroVersionsAtStartup(other.getFailIfZeroVersionsAtStartup());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        public final boolean isInitialized() {
          return true;
        }
  
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private java.util.List<com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor> servables_ =
          java.util.Collections.emptyList();
        private void ensureServablesIsMutable() {
          if (!((bitField0_ & 0x00000001) == 0x00000001)) {
            servables_ = new java.util.ArrayList<com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor>(servables_);
            bitField0_ |= 0x00000001;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder> servablesBuilder_;
  
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public java.util.List<com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor> getServablesList() {
          if (servablesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(servables_);
          } else {
            return servablesBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public int getServablesCount() {
          if (servablesBuilder_ == null) {
            return servables_.size();
          } else {
            return servablesBuilder_.getCount();
          }
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor getServables(int index) {
          if (servablesBuilder_ == null) {
            return servables_.get(index);
          } else {
            return servablesBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public Builder setServables(
            int index, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor value) {
          if (servablesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureServablesIsMutable();
            servables_.set(index, value);
            onChanged();
          } else {
            servablesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public Builder setServables(
            int index, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder builderForValue) {
          if (servablesBuilder_ == null) {
            ensureServablesIsMutable();
            servables_.set(index, builderForValue.build());
            onChanged();
          } else {
            servablesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public Builder addServables(com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor value) {
          if (servablesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureServablesIsMutable();
            servables_.add(value);
            onChanged();
          } else {
            servablesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public Builder addServables(
            int index, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor value) {
          if (servablesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureServablesIsMutable();
            servables_.add(index, value);
            onChanged();
          } else {
            servablesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public Builder addServables(
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder builderForValue) {
          if (servablesBuilder_ == null) {
            ensureServablesIsMutable();
            servables_.add(builderForValue.build());
            onChanged();
          } else {
            servablesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public Builder addServables(
            int index, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder builderForValue) {
          if (servablesBuilder_ == null) {
            ensureServablesIsMutable();
            servables_.add(index, builderForValue.build());
            onChanged();
          } else {
            servablesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public Builder addAllServables(
            java.lang.Iterable<? extends com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor> values) {
          if (servablesBuilder_ == null) {
            ensureServablesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, servables_);
            onChanged();
          } else {
            servablesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public Builder clearServables() {
          if (servablesBuilder_ == null) {
            servables_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            servablesBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public Builder removeServables(int index) {
          if (servablesBuilder_ == null) {
            ensureServablesIsMutable();
            servables_.remove(index);
            onChanged();
          } else {
            servablesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder getServablesBuilder(
            int index) {
          return getServablesFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder getServablesOrBuilder(
            int index) {
          if (servablesBuilder_ == null) {
            return servables_.get(index);  } else {
            return servablesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public java.util.List<? extends com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder> 
             getServablesOrBuilderList() {
          if (servablesBuilder_ != null) {
            return servablesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(servables_);
          }
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder addServablesBuilder() {
          return getServablesFieldBuilder().addBuilder(
              com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.getDefaultInstance());
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder addServablesBuilder(
            int index) {
          return getServablesFieldBuilder().addBuilder(
              index, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.getDefaultInstance());
        }
        /**
         * <pre>
         * The servables to monitor for new versions, and aspire.
         * </pre>
         *
         * <code>repeated .angel.FileSystemStoragePathSourceConfig.ServableToMonitor servables = 5;</code>
         */
        public java.util.List<com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder> 
             getServablesBuilderList() {
          return getServablesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder> 
            getServablesFieldBuilder() {
          if (servablesBuilder_ == null) {
            servablesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitor.Builder, com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig.ServableToMonitorOrBuilder>(
                    servables_,
                    ((bitField0_ & 0x00000001) == 0x00000001),
                    getParentForChildren(),
                    isClean());
            servables_ = null;
          }
          return servablesBuilder_;
        }
  
        private java.lang.Object servableName_ = "";
        /**
         * <pre>
         * A single servable name/base_path pair to monitor.
         * DEPRECATED: Use 'servables' instead.
         * TODO(b/30898016): Stop using these fields, and ultimately remove them here.
         * </pre>
         *
         * <code>string servable_name = 1 [deprecated = true];</code>
         */
        @java.lang.Deprecated public java.lang.String getServableName() {
          java.lang.Object ref = servableName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            servableName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * A single servable name/base_path pair to monitor.
         * DEPRECATED: Use 'servables' instead.
         * TODO(b/30898016): Stop using these fields, and ultimately remove them here.
         * </pre>
         *
         * <code>string servable_name = 1 [deprecated = true];</code>
         */
        @java.lang.Deprecated public com.google.protobuf.ByteString
            getServableNameBytes() {
          java.lang.Object ref = servableName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            servableName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <pre>
         * A single servable name/base_path pair to monitor.
         * DEPRECATED: Use 'servables' instead.
         * TODO(b/30898016): Stop using these fields, and ultimately remove them here.
         * </pre>
         *
         * <code>string servable_name = 1 [deprecated = true];</code>
         */
        @java.lang.Deprecated public Builder setServableName(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          servableName_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * A single servable name/base_path pair to monitor.
         * DEPRECATED: Use 'servables' instead.
         * TODO(b/30898016): Stop using these fields, and ultimately remove them here.
         * </pre>
         *
         * <code>string servable_name = 1 [deprecated = true];</code>
         */
        @java.lang.Deprecated public Builder clearServableName() {
          
          servableName_ = getDefaultInstance().getServableName();
          onChanged();
          return this;
        }
        /**
         * <pre>
         * A single servable name/base_path pair to monitor.
         * DEPRECATED: Use 'servables' instead.
         * TODO(b/30898016): Stop using these fields, and ultimately remove them here.
         * </pre>
         *
         * <code>string servable_name = 1 [deprecated = true];</code>
         */
        @java.lang.Deprecated public Builder setServableNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          servableName_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object basePath_ = "";
        /**
         * <code>string base_path = 2 [deprecated = true];</code>
         */
        @java.lang.Deprecated public java.lang.String getBasePath() {
          java.lang.Object ref = basePath_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            basePath_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string base_path = 2 [deprecated = true];</code>
         */
        @java.lang.Deprecated public com.google.protobuf.ByteString
            getBasePathBytes() {
          java.lang.Object ref = basePath_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            basePath_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string base_path = 2 [deprecated = true];</code>
         */
        @java.lang.Deprecated public Builder setBasePath(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          basePath_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string base_path = 2 [deprecated = true];</code>
         */
        @java.lang.Deprecated public Builder clearBasePath() {
          
          basePath_ = getDefaultInstance().getBasePath();
          onChanged();
          return this;
        }
        /**
         * <code>string base_path = 2 [deprecated = true];</code>
         */
        @java.lang.Deprecated public Builder setBasePathBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          basePath_ = value;
          onChanged();
          return this;
        }
  
        private long fileSystemPollWaitSeconds_ ;
        /**
         * <pre>
         * How long to wait between file-system polling to look for children of
         * 'base_path', in seconds.
         * For testing use only: a negative value disables the polling thread.
         * </pre>
         *
         * <code>int64 file_system_poll_wait_seconds = 3;</code>
         */
        public long getFileSystemPollWaitSeconds() {
          return fileSystemPollWaitSeconds_;
        }
        /**
         * <pre>
         * How long to wait between file-system polling to look for children of
         * 'base_path', in seconds.
         * For testing use only: a negative value disables the polling thread.
         * </pre>
         *
         * <code>int64 file_system_poll_wait_seconds = 3;</code>
         */
        public Builder setFileSystemPollWaitSeconds(long value) {
          
          fileSystemPollWaitSeconds_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * How long to wait between file-system polling to look for children of
         * 'base_path', in seconds.
         * For testing use only: a negative value disables the polling thread.
         * </pre>
         *
         * <code>int64 file_system_poll_wait_seconds = 3;</code>
         */
        public Builder clearFileSystemPollWaitSeconds() {
          
          fileSystemPollWaitSeconds_ = 0L;
          onChanged();
          return this;
        }
  
        private boolean failIfZeroVersionsAtStartup_ ;
        /**
         * <pre>
         * If true, then FileSystemStoragePathSource::Create() and ::UpdateConfig()
         * fail if, for any configured servables, the file system doesn't currently
         * contain at least one version under the base path.
         * (Otherwise, it will emit a warning and keep pinging the file system to
         * check for a version to appear later.)
         * </pre>
         *
         * <code>bool fail_if_zero_versions_at_startup = 4;</code>
         */
        public boolean getFailIfZeroVersionsAtStartup() {
          return failIfZeroVersionsAtStartup_;
        }
        /**
         * <pre>
         * If true, then FileSystemStoragePathSource::Create() and ::UpdateConfig()
         * fail if, for any configured servables, the file system doesn't currently
         * contain at least one version under the base path.
         * (Otherwise, it will emit a warning and keep pinging the file system to
         * check for a version to appear later.)
         * </pre>
         *
         * <code>bool fail_if_zero_versions_at_startup = 4;</code>
         */
        public Builder setFailIfZeroVersionsAtStartup(boolean value) {
          
          failIfZeroVersionsAtStartup_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * If true, then FileSystemStoragePathSource::Create() and ::UpdateConfig()
         * fail if, for any configured servables, the file system doesn't currently
         * contain at least one version under the base path.
         * (Otherwise, it will emit a warning and keep pinging the file system to
         * check for a version to appear later.)
         * </pre>
         *
         * <code>bool fail_if_zero_versions_at_startup = 4;</code>
         */
        public Builder clearFailIfZeroVersionsAtStartup() {
          
          failIfZeroVersionsAtStartup_ = false;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFieldsProto3(unknownFields);
        }
  
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:angel.FileSystemStoragePathSourceConfig)
      }
  
      // @@protoc_insertion_point(class_scope:angel.FileSystemStoragePathSourceConfig)
      private static final com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig();
      }
  
      public static com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<FileSystemStoragePathSourceConfig>
          PARSER = new com.google.protobuf.AbstractParser<FileSystemStoragePathSourceConfig>() {
        public FileSystemStoragePathSourceConfig parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new FileSystemStoragePathSourceConfig(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<FileSystemStoragePathSourceConfig> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<FileSystemStoragePathSourceConfig> getParserForType() {
        return PARSER;
      }
  
      public com.tencent.angel.config.FileSystemStoragePathSourceConfigProtos.FileSystemStoragePathSourceConfig getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_FileSystemStoragePathSourceConfig_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_FileSystemStoragePathSourceConfig_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_fieldAccessorTable;
  
    public static com.google.protobuf.Descriptors.FileDescriptor
        getDescriptor() {
      return descriptor;
    }
    private static  com.google.protobuf.Descriptors.FileDescriptor
        descriptor;
    static {
      java.lang.String[] descriptorData = {
        "\n,config/file_system_storage_path_source" +
        ".proto\022\005angel\"\225\006\n!FileSystemStoragePathS" +
        "ourceConfig\022M\n\tservables\030\005 \003(\0132:.angel.F" +
        "ileSystemStoragePathSourceConfig.Servabl" +
        "eToMonitor\022\031\n\rservable_name\030\001 \001(\tB\002\030\001\022\025\n" +
        "\tbase_path\030\002 \001(\tB\002\030\001\022%\n\035file_system_poll" +
        "_wait_seconds\030\003 \001(\003\022(\n fail_if_zero_vers" +
        "ions_at_startup\030\004 \001(\010\032\366\002\n\025ServableVersio" +
        "nPolicy\022W\n\006latest\030d \001(\0132E.angel.FileSyst" +
        "emStoragePathSourceConfig.ServableVersio" +
        "nPolicy.LatestH\000\022Q\n\003all\030e \001(\0132B.angel.Fi" +
        "leSystemStoragePathSourceConfig.Servable" +
        "VersionPolicy.AllH\000\022[\n\010specific\030f \001(\0132G." +
        "angel.FileSystemStoragePathSourceConfig." +
        "ServableVersionPolicy.SpecificH\000\032\036\n\006Late" +
        "st\022\024\n\014num_versions\030\001 \001(\r\032\005\n\003All\032\034\n\010Speci" +
        "fic\022\020\n\010versions\030\001 \003(\003B\017\n\rpolicy_choice\032\244" +
        "\001\n\021ServableToMonitor\022\025\n\rservable_name\030\001 " +
        "\001(\t\022\021\n\tbase_path\030\002 \001(\t\022_\n\027servable_versi" +
        "on_policy\030\004 \001(\0132>.angel.FileSystemStorag" +
        "ePathSourceConfig.ServableVersionPolicyJ" +
        "\004\010\003\020\004BE\n\030com.tencent.angel.configB\'FileS" +
        "ystemStoragePathSourceConfigProtosP\000b\006pr" +
        "oto3"
      };
      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;
              return null;
            }
          };
      com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
          }, assigner);
      internal_static_angel_FileSystemStoragePathSourceConfig_descriptor =
        getDescriptor().getMessageTypes().get(0);
      internal_static_angel_FileSystemStoragePathSourceConfig_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_FileSystemStoragePathSourceConfig_descriptor,
          new java.lang.String[] { "Servables", "ServableName", "BasePath", "FileSystemPollWaitSeconds", "FailIfZeroVersionsAtStartup", });
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_descriptor =
        internal_static_angel_FileSystemStoragePathSourceConfig_descriptor.getNestedTypes().get(0);
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_descriptor,
          new java.lang.String[] { "Latest", "All", "Specific", "PolicyChoice", });
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_descriptor =
        internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_descriptor.getNestedTypes().get(0);
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Latest_descriptor,
          new java.lang.String[] { "NumVersions", });
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_descriptor =
        internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_descriptor.getNestedTypes().get(1);
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_All_descriptor,
          new java.lang.String[] { });
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_descriptor =
        internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_descriptor.getNestedTypes().get(2);
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_FileSystemStoragePathSourceConfig_ServableVersionPolicy_Specific_descriptor,
          new java.lang.String[] { "Versions", });
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_descriptor =
        internal_static_angel_FileSystemStoragePathSourceConfig_descriptor.getNestedTypes().get(1);
      internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_angel_FileSystemStoragePathSourceConfig_ServableToMonitor_descriptor,
          new java.lang.String[] { "ServableName", "BasePath", "ServableVersionPolicy", });
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  