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.table; 017 018import org.opengion.fukurou.system.OgBuilder ; 019import org.opengion.fukurou.util.FixLengthData; 020 021/** 022 * MakeHeadLine は、DB関連ソース作成時のヘッダーの作成をサポートするための簡易クラスです。 023 * 024 * org.opengion.fukurou.util.FixLengthData を利用して、ヘッダー部分の桁そろえを行います。 025 * 026 * @og.rev 8.5.6.1 (2024/03/29) 新規作成 027 * 028 * @version 8.5 029 * @author Kazuhiko Hasegawa 030 * @since JDK21.0, 031 */ 032public class MakeHeadLine { 033 /** このプログラムのVERSION文字列を設定します。 {@value} */ 034 private static final String VERSION = "8.5.6.1 (2024/03/29)"; 035 036 private static final String CMNT = "************************************************************************" ; 037 038 private static final int X1 = FixLengthData.X1 ; 039 private static final int K1 = FixLengthData.K1 ; 040 041 private static final int[] ADD_LEN = { 0 ,0 ,0 }; // 各データ間のスペース 042 private static final int[] D_TYPE = { X1,K1,X1 }; // 各データの種別 X:半角 S:空白前埋め K:全角混在 043 044 private final FixLengthData fixData = new FixLengthData( ADD_LEN,D_TYPE ); 045 046 /** 047 * コンストラクター 048 * 049 * @param lines ヘッダーに登録する文字列 050 */ 051 public MakeHeadLine( final String... lines ) { 052 fixData.addListData( "/**", CMNT, "**/" ); // 最初の区切り文字 053 for( final String line : lines ) { 054 fixData.addListData( "/* ", line , " */" ); // コメント行 055 } 056 fixData.addListData( "/**", CMNT, "**/" ); // 最後の区切り文字 057 } 058 059 /** 060 * ヘッダー部分の処理を実行します。 061 * 062 * ここでは、行の前後に 区切り文字を入れたり、列の前後にコメントを入れたりします。 063 * 通常の処理を簡略化して使えるようにしています。 064 * 065 * @og.rev 8.5.6.1 (2024/03/29) 新規作成 066 * 067 * @return ヘッダー部分を登録した OgBuilderオブジェクト 068 * @og.rtnNotNull 069 */ 070 public OgBuilder makeBuilder() { 071 final StringBuilder buf = fixData.getAllFixData(); // fixData データが書き込まれた StringBuilder を取得。 072 073 return new OgBuilder( buf ); // それを内部変数に設定した OgBuilder オブジェクト を返す。 074 } 075 076 /** 077 * ヘッダー部分の処理が実行された文字列を返します。 078 * 079 * これは、makeBuilder() の結果の OgBuilder を toString() しています。 080 * 081 * @og.rev 8.5.6.1 (2024/03/29) 新規作成 082 * 083 * @return ヘッダー部分の処理が実行された文字列 084 * @see #makeBuilder() 085 * @og.rtnNotNull 086 */ 087 @Override // Object 088 public String toString() { 089 return makeBuilder().toString(); 090 } 091}