    001/*
    002 * Copyright (c) 2009 The openGion Project.
    003 *
    004 * Licensed under the Apache License, Version 2.0 (the "License");
    005 * you may not use this file except in compliance with the License.
    006 * You may obtain a copy of the License at
    007 *
    008 *     http://www.apache.org/licenses/LICENSE-2.0
    009 *
    010 * Unless required by applicable law or agreed to in writing, software
    011 * distributed under the License is distributed on an "AS IS" BASIS,
    012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
    013 * either express or implied. See the License for the specific language
    014 * governing permissions and limitations under the License.
    015 */
    016package org.opengion.fukurou.model;
    017
    018import java.io.File;                                                                                    // 6.2.0.0 (2015/02/27)
    019
    020/**
    021 * POI による、Excel(xls)の読み取り処理の インターフェースです。
    022 *
    023 * xls形式のEXCELを、イベント方式でテキストデータを読み取ります。
    024 * このインターフェースでは、EXCEL形式を、TableModelHelper を介したイベントで読み取ります。
    025 * TableModelHelperイベントは、openGion形式のファイル読み取りに準拠した方法をサポートします。
    026 * ※ openGion形式のEXCELファイルとは、#NAME 列に、カラム名があり、#で始まる
    027 *    レコードは、コメントとして判断し、読み飛ばす処理の事です。
    028 *
    029 * @og.rev 6.2.0.0 (2015/02/27) 新規作成
    030 * @og.group ファイル入力
    031 *
    032 * @version  6.0
    033 * @author   Kazuhiko Hasegawa
    034 * @since    JDK7.0,
    035 */
    036@FunctionalInterface
    037public interface EventReader {
    038
    039        /**
    040         * 引数ファイル(Excel)を、TableModelHelperイベントに適用します。
    041         *
    042         * TableModelHelperは、EXCEL読み取り処理用の統一されたイベント処理クラスです。
    043         * openGion特有のEXCEL処理方法(#NAME , 先頭行#コメントなど)を実装しています。
    044         * これは、HSSFやXSSFの処理を、統一的なイベントモデルで扱うためです。
    045         * SSモデルが良いのですが、巨大なXSSF(.xlsx)ファイルを解析すると、OutOfMemoryエラーが
    046         * 発生する為、個々に処理する必要があります。
    047         * あくまで、読み取り限定であれば、こちらのイベントモデルで十分です。
    048         *
    049         * @og.rev 6.2.0.0 (2015/02/27) 新規作成
    050         *
    051         * @param       file 入力ファイル名
    052         * @param       helper イベント処理するオブジェクト
    053         */
    054        void eventReader( final File file , final TableModelHelper helper );
    055}