View Javadoc
1   package com.github.mygreen.supercsv.cellprocessor.format;
2   
3   import java.util.Collections;
4   import java.util.Map;
5   import java.util.Optional;
6   
7   /**
8    * 文字列をパースしてオブジェクトに変換するインタフェース。
9    * 
10   * @since 2.0
11   * @param <T> オブジェクトのタイプ
12   * @author T.TSUCHIE
13   *
14   */
15  @FunctionalInterface
16  public interface TextParser<T> {
17      
18      /**
19       * 書式を取得します。
20       * @return 書式を持たない場合は空を返します。
21       */
22      default Optional<String> getPattern() {
23          return Optional.empty();
24      }
25      
26      /**
27       * パース時のエラーメッセージ中の変数を取得します。
28       * @return 
29       */
30      default Map<String, Object> getMessageVariables() {
31          return Collections.emptyMap();
32      }
33      
34      /**
35       * パース時のエラーメッセージを取得します。
36       * @return メッセージが内場合は空を返します。
37       */
38      default Optional<String> getValidationMessage() {
39          return Optional.empty();
40      }
41      
42      /**
43       * 文字列をパースして、オブジェクトに変換する。
44       * <p>実装する際には、API経由などでパースした際に発生した例外は、{@link TextParseException}でラップするしてください。
45       *   <br>{@link TextParseException}でラップすると、{@link ParseProcessor}でエラーオブジェクトに変換されます。
46       * </p>
47       * 
48       * @param text パース対象の文字列。
49       * @return 変換された値。
50       * @throws TextParseException パースに失敗した際にスローされます。
51       */
52      T parse(String text);
53      
54  }