content: package com.ctrip.framework.apollo.util.function;
  
  import java.util.Date;
  
  import com.ctrip.framework.apollo.exceptions.ApolloConfigException;
  import com.ctrip.framework.apollo.util.parser.ParserException;
  import com.ctrip.framework.apollo.util.parser.Parsers;
  import com.google.common.base.Function;
  
  /**
   * @author Jason Song(song_s@ctrip.com)
   */
  public interface Functions {
    Function<String, Integer> TO_INT_FUNCTION = new Function<String, Integer>() {
      @Override
      public Integer apply(String input) {
        return Integer.parseInt(input);
      }
    };
    Function<String, Long> TO_LONG_FUNCTION = new Function<String, Long>() {
      @Override
      public Long apply(String input) {
        return Long.parseLong(input);
      }
    };
    Function<String, Short> TO_SHORT_FUNCTION = new Function<String, Short>() {
      @Override
      public Short apply(String input) {
        return Short.parseShort(input);
      }
    };
    Function<String, Float> TO_FLOAT_FUNCTION = new Function<String, Float>() {
      @Override
      public Float apply(String input) {
        return Float.parseFloat(input);
      }
    };
    Function<String, Double> TO_DOUBLE_FUNCTION = new Function<String, Double>() {
      @Override
      public Double apply(String input) {
        return Double.parseDouble(input);
      }
    };
    Function<String, Byte> TO_BYTE_FUNCTION = new Function<String, Byte>() {
      @Override
      public Byte apply(String input) {
        return Byte.parseByte(input);
      }
    };
    Function<String, Boolean> TO_BOOLEAN_FUNCTION = new Function<String, Boolean>() {
      @Override
      public Boolean apply(String input) {
        return Boolean.parseBoolean(input);
      }
    };
    Function<String, Date> TO_DATE_FUNCTION = new Function<String, Date>() {
      @Override
      public Date apply(String input) {
        try {
          return Parsers.forDate().parse(input);
        } catch (ParserException ex) {
          throw new ApolloConfigException("Parse date failed", ex);
        }
      }
    };
    Function<String, Long> TO_DURATION_FUNCTION = new Function<String, Long>() {
      @Override
      public Long apply(String input) {
        try {
          return Parsers.forDuration().parseToMillis(input);
        } catch (ParserException ex) {
          throw new ApolloConfigException("Parse duration failed", ex);
        }
      }
    };
  }
  