    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.hayabusa.report;
    017
    018// import org.opengion.fukurou.util.Shell;
    019// import org.opengion.hayabusa.common.HybsSystem;
    020import org.opengion.hayabusa.db.DBTableModel;
    021import static org.opengion.fukurou.system.HybsConst.BUFFER_MIDDLE;      // 6.4.2.1 (2016/02/05)
    022
    023/**
    024 * CSVPrintPoint インターフェース のデフォルト実装クラスです。
    025 * execute() をオーバーライドして、各種CSV取込み方式のシステムに対応して下さい。
    026 *
    027 * @og.group 帳票システム
    028 *
    029 * @version  5.0
    030 * @author       Masakazu Takahashi
    031 * @since    JDK6.0,
    032 */
    033public abstract class AbstractCSVPrintPointService implements CSVPrintPointService {
    034
    035        /** カラム */ protected String                     ykno            ;
    036        /** カラム */ protected String                     systemId        ;
    037        /** カラム */ protected String                     fgrun           ;
    038//      /** カラム */ protected String                     hostName        ;                       // 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    039//      /** カラム */ protected String                     prtName         ;                       // 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    040        /** カラム */ protected DBTableModel       table           ;
    041        /** カラム */ protected DBTableModel       tableH          ;
    042        /** カラム */ protected DBTableModel       tableF          ;
    043//      /** カラム */ protected String                     prgdir          ;                       // 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    044//      /** カラム */ protected String                     prgfile         ;                       // 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    045        /** カラム */ protected String                     outdir          ;
    046        /** カラム */ protected String                     prtid           ;
    047//      /** カラム */ protected String                     portnm          ;                       // 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    048        /** カラム */ protected String                     listid          ;
    049        /** カラム */ protected String                     modelname       ;
    050
    051        /** カラム */ protected String                     grpid           ;                       // 5.9.2.2 (2015/11/20)
    052        /** カラム */ protected String                     dmngrp          ;                       // 5.9.2.2 (2015/11/20)
    053        /** カラム */ protected String                     option          ;                       // 5.9.3.0 (2015/12/04)
    054//      /** カラム */ protected String                     fgcut           ;                       // 5.9.3.0 (2015/12/04)
    055
    056        /** エラーメッセージ */ protected final StringBuilder   errMsg  = new StringBuilder( BUFFER_MIDDLE );   // エラーメッセージ
    057        /** 完了ﾌﾗｸﾞ */                   protected               String                  fgkan   = GE50Access.FG_ERR2;   // 初期値はアプリエラー
    058
    059//      private static final int TIMEOUT = HybsSystem.sysInt( "REPORT_DAEMON_TIMEOUT" );        // Shellタイムアウト 6.3.9.1 (2015/11/27) private static final化
    060//      /** シェルコマンド */ protected String         shellCmd        ;               // 7.3.0.0 (2021/01/06) SpotBugs:未使用のフィールド
    061
    062        /** 実行ﾌﾗｸﾞ {@value} */ protected static final String FGRUN_EXCEL  = "H";
    063        /** 実行ﾌﾗｸﾞ {@value} */ protected static final String FGRUN_PDF    = "I";
    064        /** 実行ﾌﾗｸﾞ {@value} */ protected final static String FGRUN_EXCEL2 = "J";        // 5.9.4.2 (2016/01/13)
    065
    066//      private static final String CR          = System.getProperty("line.separator");
    067
    068        /**
    069         * デフォルトコンストラクター
    070         *
    071         * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
    072         */
    073        protected AbstractCSVPrintPointService() { super(); }           // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。
    074
    075        /**
    076         * 発行処理
    077         * 対象のシステムに応じてこのメソッドをオーバーライドします
    078         * 実行後はfgkanの値を正しい値でセットしなおして下さい。
    079         *
    080         * @return 結果 [true:正常/false:異常]
    081         */
    082        public abstract boolean execute();
    083
    084        /**
    085         * 帳票起動された要求番号をセットします。
    086         *
    087         * @param   no 要求NO
    088         */
    089        public void setYkno( final String no ) {
    090                ykno = no;
    091        }
    092
    093        /**
    094         * システムIDをセットします。
    095         *
    096         * @param   id システムID
    097         */
    098        public void setSystemId( final String id ) {
    099                systemId = id;
    100        }
    101
    102        /**
    103         * 実行方法をセットします。
    104         *
    105         * @param   flag 実行方法
    106         */
    107        public void setFgrun( final String flag ) {
    108                fgrun = flag;
    109        }
    110
    111        /**
    112         * 帳票デーモンが実行されているホスト名をセットします。
    113         *
    114         * @og.rev 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    115         *
    116         * @param   host ホスト名
    117         */
    118        public void setHostName( final String host ) {
    119//              hostName = host;
    120        }
    121
    122        /**
    123         * プリンター名をセットします。
    124         *
    125         * @og.rev 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    126         *
    127         * @param   printerName プリンタ名
    128         */
    129        public void setPrinterName( final String printerName ) {
    130//              prtName = printerName;
    131        }
    132
    133        /**
    134         * DBTableModel をセットします。
    135         *
    136         * @param   tbl DBTableModelオブジェクト
    137         */
    138        public void setTable( final DBTableModel tbl ) {
    139                table = tbl;
    140        }
    141
    142        /**
    143         * DBTableModel をセットします。
    144         *
    145         * @param   tbl DBTableModelオブジェクト
    146         */
    147        public void setTableH( final DBTableModel tbl ) {
    148                tableH = tbl;
    149        }
    150
    151        /**
    152         * DBTableModel をセットします。
    153         *
    154         * @param   tbl DBTableModelオブジェクト
    155         */
    156        public void setTableF( final DBTableModel tbl ) {
    157                tableF = tbl;
    158        }
    159
    160        /**
    161         * 起動するバッチ等のプログラム（ディレクトリ）をセットします。
    162         *
    163         * @og.rev 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    164         *
    165         * @param dir バッチプログラムディレクトリ
    166         */
    167        public void setPrgDir( final String dir ){
    168//              prgdir = dir;
    169        }
    170
    171        /**
    172         * 起動するバッチ等のプログラムをセットします。
    173         * 空の場合は起動しません。
    174         *
    175         * @og.rev 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    176         *
    177         * @param file バッチプログラム名
    178         */
    179        public void setPrgFile( final String file ){
    180//              prgfile = file;
    181        }
    182
    183        /**
    184         * ファイル出力時のディレクトリを指定します。
    185         *
    186         * @param dir ファイル出力ディレクトリ
    187         */
    188        public void setOutDir( final String dir ){
    189                outdir = dir;
    190        }
    191
    192        /**
    193         * プリンタIDを指定します。
    194         *
    195         * @param id プリンタID
    196         */
    197        public void setPrtId( final String id ){
    198                prtid = id;
    199        }
    200
    201        /**
    202         * プリンタのポート名。
    203         *
    204         * @og.rev 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    205         *
    206         * @param port ポート名
    207         */
    208        public void setPortnm( final String port ){
    209//              portnm = port;
    210        }
    211
    212        /**
    213         * 帳票IDをセットします。
    214         *
    215         * @param   id 帳票ID
    216         */
    217        public void setListId( final String id ) {
    218                listid = id;
    219        }
    220
    221        /**
    222         * 雛形ファイル名をセットします。
    223         *
    224         * @param   name 雛形ファイル名
    225         */
    226        public void setModelname( final String name ) {
    227                modelname = name;
    228        }
    229
    230        /**
    231         * グループIDをセットします。
    232         *
    233         * @param   id グループID
    234         */
    235        public void setGrpId( final String id ) {
    236                grpid = id;
    237        }
    238
    239        /**
    240         * デーモングループをセットします。
    241         *
    242         * @param   name デーモングループ
    243         */
    244        public void setDmnGrp( final String name ) {
    245                dmngrp = name;
    246        }
    247
    248        /**
    249         * オプション文字列をセットします。
    250         *
    251         * @og.rev 5.9.3.0 (2015/12/04)
    252         *
    253         * @param   opt オプション文字列
    254         */
    255        public void setOption( final String opt ) {
    256                option = opt;
    257        }
    258
    259        /**
    260         * ページエンドカットフラグをセットします。
    261         *
    262         * @og.rev 5.9.3.0 (2015/12/04)
    263         * @og.rev 7.3.0.0 (2021/01/06) SpotBugs:読み出されないフィールド
    264         *
    265         * @param   flg エンドカットフラグ
    266         */
    267        public void setFgcut( final String flg ) {
    268//              fgcut = flg;
    269        }
    270
    271        /**
    272         * 完成フラグを返します。
    273         *
    274         * @return 完成フラグ String
    275         */
    276        public String getFgkan(){
    277                return fgkan;
    278        }
    279
    280        /**
    281         * エラーメッセージを返します。
    282         *
    283         * @return エラーメッセージ String
    284         */
    285        public String getErrMsg(){
    286                return errMsg.toString();
    287        }
    288
    289//      /**
    290//       * シェルの実行を行います。
    291//       *
    292//       * @og.rev 5.4.3.0 (2011/12/26)
    293//       * @og.rev 7.3.0.0 (2021/01/06) SpotBugs:書き込まてれいない public または protected フィールド
    294//       *
    295//       * @return 結果 [true:正常/false:異常]
    296//       */
    297//      protected boolean programRun(){
    298//              final Shell shell = new Shell();
    299//              shell.setCommand( shellCmd,true );              // BATCHプロセスで実行する
    300//              shell.setWait( true );                                  // プロセスの終了を待つ
    301//              shell.setTimeout( TIMEOUT );
    302//
    303//              if( shell.exec() != 0 ) {
    304//                      errMsg.append( "Shell Command exequte Error." ).append( CR )
    305//                              .append( "==============================" ).append( CR )
    306//                              .append( shellCmd ).append( CR )
    307//                              .append( shell.getStdoutData() ).append( CR )
    308//                              .append( shell.getStderrData() ).append( CR )
    309//                              .append( CR );
    310//                      return false;
    311//              }
    312//
    313//              return true;
    314//      }
    315
    316}