public abstract class AbstractDateStringConverter extends java.lang.Object implements ExtendedStringConvertor
YYYYMMDDConvertor
,
YYYYMMConvertor
Modifier | Constructor and Description |
---|---|
protected |
AbstractDateStringConverter(java.lang.String datePattern,
java.lang.String dataType)
コンストラクタ。
|
Modifier and Type | Method and Description |
---|---|
protected java.lang.String |
convert(java.lang.String value,
FormatSpec formatSpec)
指定されたフォーマット仕様で値を変換する。
|
<T> java.lang.Object |
convert(ValidationContext<T> context,
java.lang.String propertyName,
java.lang.Object value,
java.lang.annotation.Annotation annotation)
変換を行う。
変換に失敗した場合、ValidationContextにエラー内容を設定する。 |
protected abstract nablarch.common.date.AbstractDateStringConverter.AnnotationData |
getAnnotationDataFrom(java.lang.annotation.Annotation annotation)
アノテーションから値を取得する。
|
protected <T> FormatSpec |
getFormatSpec(ValidationContext<T> context,
java.lang.String propertyName,
java.lang.String allowFormat)
プロパティの変換に使用するフォーマット仕様を取得する。
ConversionUtil.getFormatSpec(ValidationContext, String) を呼び出し、
プロパティに対する有効なフォーマット仕様(yyyymmddなど)を取得して返す。
プロパティに対する有効なフォーマット仕様が存在しない場合は、
allowFormatから生成したフォーマット仕様を返す。 |
protected java.lang.String |
getNumbersOnlyFormat(java.lang.String format)
フォーマット文字列から日付文字列の区切り文字を取り除いた値を返す。
DateUtil.getNumbersOnlyFormat(String) に処理を委譲する。 |
java.lang.Class<?> |
getTargetClass()
変換対象のクラスを取得する。
|
protected boolean |
isConvertible(java.lang.String value,
FormatSpec formatSpec)
指定されたフォーマット仕様で値が変換可能か否かを判定する。
|
<T> boolean |
isConvertible(ValidationContext<T> context,
java.lang.String propertyName,
java.lang.Object propertyDisplayName,
java.lang.Object value,
java.lang.annotation.Annotation format)
変換可否のプレチェックを行う。
変換できない文字列であった場合、エラーメッセージをValidationContextに追加し、falseを返却する。 |
void |
setParseFailedMessageId(java.lang.String parseFailedMessageId)
指定された日付文字列への変換失敗時のメッセージIDを設定する。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getTargetAnnotation
protected AbstractDateStringConverter(java.lang.String datePattern, java.lang.String dataType)
datePattern
- フォーマットに使用する日付パターンdataType
- "データタイプ{パターン}"形式のデータタイプpublic void setParseFailedMessageId(java.lang.String parseFailedMessageId)
parseFailedMessageId
- 指定された日付文字列への変換失敗時のメッセージIDpublic <T> java.lang.Object convert(ValidationContext<T> context, java.lang.String propertyName, java.lang.Object value, java.lang.annotation.Annotation annotation)
#convert(String, String)
メソッドに委譲する。protected java.lang.String convert(java.lang.String value, FormatSpec formatSpec)
はじめに指定されたフォーマット仕様で値の解析を試みる。
指定されたフォーマット仕様で解析できない場合は、
getNumbersOnlyFormat(String)
メソッドを使用し、
日付文字列の区切り文字を取り除いたフォーマットで解析する。
最後に解析結果として取得できるDateオブジェクトを、所定のパターン(datePattern
)の
文字列に変換する。
value
- 値formatSpec
- フォーマット仕様public java.lang.Class<?> getTargetClass()
getTargetClass
in interface Convertor
public <T> boolean isConvertible(ValidationContext<T> context, java.lang.String propertyName, java.lang.Object propertyDisplayName, java.lang.Object value, java.lang.annotation.Annotation format)
#isConvertible(String, String)
メソッドに委譲する。
値が変換不可の場合は、バリデーション結果メッセージを設定しfalseを返す。
メッセージIDは、YYYYMMDD
アノテーションのmessageId属性の値を使用する。
YYYYMMDD
アノテーションにメッセージIDが指定されていない場合は、
本クラスのparseFailedMessageIdプロパティの値をメッセージIDに使用する。isConvertible
in interface Convertor
T
- バリデーション結果で取得できる型context
- ValidationContextpropertyName
- プロパティ名propertyDisplayName
- プロパティの表示名オブジェクトvalue
- 変換可否のプレチェックを行う値format
- フォーマットを指定するアノテーション(指定がない場合null)protected boolean isConvertible(java.lang.String value, FormatSpec formatSpec)
はじめに指定されたフォーマット仕様で値が変換可能か否かを判定する。
指定されたフォーマット仕様で変換不可の場合は、
getNumbersOnlyFormat(String)
メソッドを使用し、
日付文字列の区切り文字を取り除いたフォーマットで変換可能か否かを判定する。
value
- 値formatSpec
- フォーマット仕様protected <T> FormatSpec getFormatSpec(ValidationContext<T> context, java.lang.String propertyName, java.lang.String allowFormat)
ConversionUtil.getFormatSpec(ValidationContext, String)
を呼び出し、
プロパティに対する有効なフォーマット仕様(yyyymmddなど)を取得して返す。
プロパティに対する有効なフォーマット仕様が存在しない場合は、
allowFormatから生成したフォーマット仕様を返す。T
- バリデーション結果で取得できる型context
- ValidationContextpropertyName
- プロパティ名allowFormat
- フォーマットprotected java.lang.String getNumbersOnlyFormat(java.lang.String format)
DateUtil.getNumbersOnlyFormat(String)
に処理を委譲する。format
- フォーマット文字列protected abstract nablarch.common.date.AbstractDateStringConverter.AnnotationData getAnnotationDataFrom(java.lang.annotation.Annotation annotation)
annotation
- アノテーション