SqlTimestampCellConverterFactory.java

  1. package com.gh.mygreen.xlsmapper.cellconverter.impl;

  2. import java.sql.Timestamp;
  3. import java.util.Date;

  4. import com.gh.mygreen.xlsmapper.Configuration;
  5. import com.gh.mygreen.xlsmapper.cellconverter.CellConverter;
  6. import com.gh.mygreen.xlsmapper.fieldaccessor.FieldAccessor;

  7. /**
  8.  * {@link Timestamp}を処理する{@link CellConverter}を作成するためのファクトリクラス。
  9.  * @since 2.0
  10.  * @author T.TSUCHIE
  11.  *
  12.  */
  13. public class SqlTimestampCellConverterFactory extends AbstractDateCellConverterFactory<Timestamp> {

  14.     @Override
  15.     public SqlTimestampCellConverter create(FieldAccessor field, Configuration config) {
  16.        
  17.         final SqlTimestampCellConverter cellConverter = new SqlTimestampCellConverter(field, config, this);
  18.         setupCellConverter(cellConverter, field, config);
  19.        
  20.         return cellConverter;
  21.     }
  22.    
  23.     @Override
  24.     protected Timestamp convertTypeValue(Date date) {
  25.         return new Timestamp(date.getTime());
  26.     }
  27.    
  28.     /**
  29.      * {@inheritDoc}
  30.      * <p>{@code yyyy-MM-dd HH:mm:ss.SSS}の値を返す。</p>
  31.      */
  32.     @Override
  33.     protected String getDefaultJavaPattern() {
  34.         return "yyyy-MM-dd HH:mm:ss.SSS";
  35.     }
  36.    
  37.     /**
  38.      * {@inheritDoc}
  39.      * <p>{@code yyyy-mm-dd hh:mm:ss.SSS}の値を返す。</p>
  40.      */
  41.     @Override
  42.     protected String getDefaultExcelPattern() {
  43.         return "yyyy-mm-dd hh:mm:ss.SSS";
  44.     }
  45.    
  46.     public class SqlTimestampCellConverter extends AbstractDateCellConverter<Timestamp> {
  47.        
  48.         private final SqlTimestampCellConverterFactory convererFactory;
  49.        
  50.         private SqlTimestampCellConverter(final FieldAccessor field, final Configuration config,
  51.                 final SqlTimestampCellConverterFactory convererFactory) {
  52.             super(field, config);
  53.             this.convererFactory = convererFactory;
  54.         }
  55.        
  56.         @Override
  57.         protected Timestamp convertTypeValue(final Date value) {
  58.             return convererFactory.convertTypeValue(value);
  59.         }
  60.        
  61.     }
  62.    
  63. }