MergedRecord.java

  1. package com.gh.mygreen.xlsmapper.fieldprocessor;

  2. import org.apache.poi.ss.util.CellRangeAddress;

  3. /**
  4.  * ネストしたレコードを処理するために、親のレコードの結合情報を保持しておくためのクラス。
  5.  *
  6.  * @since 1.4
  7.  * @author T.TSUCHIE
  8.  *
  9.  */
  10. public class MergedRecord {
  11.    
  12.     /**
  13.      * 該当する見出し情報
  14.      */
  15.     private final RecordHeader headerRecord;
  16.    
  17.     /**
  18.      * 結合された領域の情報
  19.      */
  20.     private final CellRangeAddress mergedRange;
  21.    
  22.     /**
  23.      * 結合されたサイズ
  24.      */
  25.     private final int mergedSize;
  26.    
  27.     public MergedRecord(final RecordHeader headerRecord, final CellRangeAddress mergedRange, int mergedSize) {
  28.         this.headerRecord = headerRecord;
  29.         this.mergedRange = mergedRange;
  30.         this.mergedSize = mergedSize;
  31.     }
  32.    
  33.     /**
  34.      * 該当する見出しの情報を取得する。
  35.      * @return
  36.      */
  37.     public RecordHeader getHeaderRecord() {
  38.         return headerRecord;
  39.     }
  40.    
  41.     /**
  42.      * 結合情報を取得する。
  43.      * @return
  44.      */
  45.     public CellRangeAddress getMergedRange() {
  46.         return mergedRange;
  47.     }
  48.    
  49.     /**
  50.      * 結合された行の幅を取得する。
  51.      * @return
  52.      */
  53.     public int getRowSpan() {
  54.         return mergedRange.getLastRow() - mergedRange.getFirstRow() + 1;
  55.     }
  56.    
  57.     /**
  58.      * 結合された列の幅を取得する。
  59.      * @return
  60.      */
  61.     public int getColSpan() {
  62.         return mergedRange.getLastColumn() - mergedRange.getFirstColumn() + 1;
  63.     }
  64.    
  65.     /**
  66.      * 結合されたサイズを取得する。
  67.      * <p>Horizontalの場合は縦幅、Verticalの場合は横幅が設定される。
  68.      * @return
  69.      */
  70.     public int getMergedSize() {
  71.         return mergedSize;
  72.     }
  73.    
  74. }