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.plugin.io; 017 018// import java.io.PrintWriter; 019 020// import org.opengion.fukurou.util.StringUtil; // 8.5.2.0 (2023/07/14) Delete 021// import org.opengion.hayabusa.db.DBTableModel; 022 023/** 024 * 【廃止予定】加工なしCSV形式ダブルクォートファイル(CSV)形式書き込みクラスです。 025 * このクラスは、廃止予定です。代わりに、Data2 の セパレータをカンマに 026 * 設定して使用してください。 027 * 028 * DefaultTableWriter を継承していますので、ラベル、名前、データの出力部のみ 029 * オーバーライドして、可変長CSV形式ファイルの出力機能を実現しています。 030 * 031 * このクラスは、文字型のデータ出力時の、先頭が0の場合のシングルコーテーションを 032 * 出さないように変更したクラスです。(専用特殊クラス) 033 * 034 * [writeData] 035 * 区切り : CSV_SEPARATOR 固定 036 * 行番号 : quotation( 行番号 + 1 ) 037 * カラムデータ: quotation( val ) 038 * 039 * @og.formSample 040 * 041 * @og.rev 3.1.9.1 (2003/05/20) 新規作成 042 * @og.rev 8.5.6.1 (2024/03/29) TableWriter_CSV を継承します。 043 * @og.group ファイル出力 044 * 045 * @version 4.0 046 * @author Kazuhiko Hasegawa 047 * @since JDK5.0, 048 */ 049@Deprecated 050// public class TableWriter_CSV2 extends TableWriter_Default { 051public class TableWriter_CSV2 extends TableWriter_CSV { 052 /** このプログラムのVERSION文字列を設定します。 {@value} */ 053 private static final String VERSION = "8.5.6.1 (2024/03/29)" ; 054 055 /** 056 * デフォルトコンストラクター 057 * 058 * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. 059 */ 060 public TableWriter_CSV2() { super(); } 061 062// /** 063// * DBTableModel から データを作成して、PrintWriter に書き出します。 064// * 065// * @og.rev 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。 066// * @og.rev 3.5.4.3 (2004/01/05) 引数に PrintWriter を受け取るように変更します。 067// * @og.rev 8.5.6.1 (2024/03/29) TableWriter_CSV を継承します。 068// * 069// * @param writer PrintWriterオブジェクト 070// */ 071// @Override 072// public void writeDBTable( final PrintWriter writer ) { 073// setSeparator( CSV_SEPARATOR ); 074// super.writeDBTable( writer ); 075// } 076 077// /** 078// * PrintWriter に DBTableModelのテーブル情報を書き込みます。 079// * このクラスでは、データを ダブルコーテーション(")で囲みます。 080// * PrintWriter に DBTableModelのテーブル情報を書き込みます。 081// * 082// * @og.rev 2.0.0.1 (2002/09/20) 先頭が0 でかつ数字タイプ(S9)でない場合に ' を出力するように修正 083// * @og.rev 2.0.0.5 (2002/09/30) 先頭が0 でかつ数字タイプ(S9 or R)でない場合に ' を出力するように修正。 084// * @og.rev 2.3.1.2 (2003/01/28) データ出力時に、改行が余分に出される箇所を修正。 085// * @og.rev 3.1.0.0 (2003/03/20) DBColumn から、getDbType() キーを直接取り出す 086// * @og.rev 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。 087// * @og.rev 3.7.0.2 (2005/02/14) 行番号情報を、出力する(true)/しない(false)を指定 088// * @og.rev 3.8.0.1 (2005/06/17) DBTypeが NVAR の場合は、元のUnicodeに戻します。 089// * @og.rev 5.1.6.0 (2010/05/01) DbType の初期値(dbType)を利用する。 090// * @og.rev 5.2.1.0 (2010/10/01) useRenderer 対応 091// * @og.rev 6.0.1.2 (2014/08/08) カラム飛ばしできる機能を追加 092// * @og.rev 6.0.4.0 (2014/11/28) データ出力用のレンデラー 093// * @og.rev 8.5.2.0 (2023/07/14) 一部の機能廃止による修正(問合・トラブル 0200010980) 094// * @og.rev 8.5.6.1 (2024/03/29) TableWriter_CSV を継承します。 095// * 096// * @param table DBTableModelオブジェクト 097// * @param writer PrintWriterオブジェクト 098// */ 099// @Override 100// protected void writeData( final DBTableModel table,final PrintWriter writer ) { 101// final int numberOfRows = table.getRowCount(); 102// final boolean useNumber = isUseNumber(); 103// final boolean useRenderer = isUseRenderer(); // 5.2.1.0 (2010/10/01) 104// 105// for( int row=0; row<numberOfRows; row++ ) { 106// if( useNumber ) { 107// writer.print( quotation( String.valueOf( row+1 ) ) ); 108// writer.print( CSV_SEPARATOR ); 109// } 110// 111// for( int i=0; i<numberOfColumns; i++ ) { 112// if( i != 0 ) { writer.print( CSV_SEPARATOR ); } 113// final int clm = clmNo[i]; 114// if( clm < 0 ) { continue; } // 6.0.1.2 (2014/08/08) カラム飛ばし 115// 116// String val = table.getValue(row,clm); 117//// if( dbType[i] == NVAR ) { // 8.5.2.0 (2023/07/14) Delete 118//// val = StringUtil.getReplaceEscape( val ); // 8.5.2.0 (2023/07/14) Delete 119//// } // 8.5.2.0 (2023/07/14) Delete 120// // 5.2.1.0 (2010/10/01) useRenderer 対応 121//// else if( useRenderer ) { // 8.5.2.0 (2023/07/14) Modify 122// if( useRenderer ) { 123// // 6.0.4.0 (2014/11/28) データ出力用のレンデラー 124// val = dbColumn[clm].getWriteValue( val ); 125// } 126// 127// // 開始日などの 00000000 を文字列タイプで渡す 128// writer.print( quotation( val ) ); 129// } 130// writer.println(); 131// } 132// } 133 134 /** 135 * データを書き込む場合の区切り文字をセットします。 136 * このクラスでは、CSV 固定の為、区切り文字のセットは無効になります。 137 * 138 * @og.rev 8.5.6.1 (2024/03/29) 継承で使えるように、一部修正します。 139 * 140 * @param val 入力文字列 141 * @param dtype DBタイプ(STRING/NUMBER) 142 * 143 * @return 変換後の文字列 144 */ 145 @Override 146 protected String dataQuotation( final String val, final int dtype ) { 147 return quotation( val ); 148 } 149 150// /** 151// * データを書き込む場合の区切り文字をセットします。 152// * このクラスでは、CSV 固定の為、区切り文字のセットは無効になります。 153// * 154// * @og.rev 3.1.1.0 (2003/03/28) 同期メソッド(synchronized付き)を非同期に変更する。 155// * @og.rev 8.5.6.1 (2024/03/29) setSeparator をcsvInit()で行います。 156// * 157// * @param sprt 区切り文字 158// */ 159// @Override 160// public void setSeparator( final String sprt ) { 161// super.setSeparator( CSV_SEPARATOR ) ; // 3.5.6.0 (2004/06/18) 162// } 163}