content: package com.ctrip.framework.apollo.core.enums;
  
  import com.ctrip.framework.apollo.core.utils.StringUtils;
  
  /**
   * @author Jason Song(song_s@ctrip.com)
   */
  public enum ConfigFileFormat {
    Properties("properties"), XML("xml"), JSON("json"), YML("yml"), YAML("yaml");
  
    private String value;
  
    ConfigFileFormat(String value) {
      this.value = value;
    }
  
    public String getValue() {
      return value;
    }
  
    public static ConfigFileFormat fromString(String value) {
      if (StringUtils.isEmpty(value)) {
        throw new IllegalArgumentException("value can not be empty");
      }
      switch (value) {
        case "properties":
          return Properties;
        case "xml":
          return XML;
        case "json":
          return JSON;
        case "yml":
          return YML;
        case "yaml":
          return YAML;
      }
      throw new IllegalArgumentException(value + " can not map enum");
    }
  
    public static boolean isValidFormat(String value) {
      try {
        fromString(value);
        return true;
      } catch (IllegalArgumentException e) {
        return false;
      }
    }
  }
  