    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.system;                                                            // 6.4.2.0 (2016/01/29) package変更 fukurou.util → fukurou.system
    017
    018import java.nio.charset.Charset;                // 5.5.2.6 (2012/05/25)
    019
    020/**
    021 * 共通的に使用される固定値を集約したクラスです。
    022 *
    023 * 全変数は、public static final 宣言されています。
    024 *
    025 * @og.rev 6.1.0.0 (2014/12/26) 固定値を集約したクラス対応
    026 * @og.rev 6.4.2.0 (2016/01/29) package変更 fukurou.util → fukurou.system
    027 *
    028 * @og.group その他
    029 *
    030 * @version  6.0
    031 * @author       Kazuhiko Hasegawa
    032 * @since    JDK8.0,
    033 */
    034public final class HybsConst {
    035
    036        /** バッファの初期容量を設定する固定値(通常より若干多い目)。  {@value}  */
    037        public static final int BUFFER_SMALL  = 100;
    038
    039        /** バッファの初期容量を設定する固定値(通常より多い目)。  {@value}  */
    040        public static final int BUFFER_MIDDLE = 200;
    041
    042        /** バッファの初期容量を設定する固定値(通常より大幅に多い目)。  {@value} */
    043        public static final int BUFFER_LARGE  = 500;
    044
    045        /** システム依存の改行記号(String)。        */
    046        public static final String CR = System.getProperty("line.separator");
    047
    048        /** HTMLでの改行記号( &lt;br /&gt; )。 */
    049        // 7.0.1.0 (2018/10/15) XHTML → HTML5 対応(空要素の、"／＞" 止めを、"＞" に変更します)。
    050//      public static final String BR = "<br />" + CR ;
    051        public static final String BR = "<br>" + CR ;
    052
    053        /** システム依存のファイルセパレーター文字(char)。  */
    054        public static final char FS = System.getProperty("file.separator").charAt(0);
    055
    056        /** タブ文字(char)。 */
    057        public static final char TAB = '\t';
    058
    059        /**
    060         * プラットフォーム依存のデフォルトの Charset です。
    061         * プラットフォーム依存性を考慮する場合、エンコード指定で作成しておく事をお勧めします。
    062         *
    063         * @og.rev 5.5.2.6 (2012/05/25) findbugs対応
    064         * @og.rev 6.4.2.0 (2016/01/29) fukurou.util.StringUtil → fukurou.system.HybsConst に変更
    065         */
    066        public static final Charset DEFAULT_CHARSET = Charset.defaultCharset() ;
    067
    068        /**
    069         * ファイル等を読み取る場合のデフォルトエンコードを指定します。
    070         * 通常は、UTF-8 にしておきます。
    071         *
    072         * @og.rev 6.4.5.1 (2016/04/28) ファイル等を読み取る場合のデフォルトエンコードを指定します。
    073         */
    074        public static final String UTF_8 = "UTF-8" ;
    075
    076        /**
    077         * データ検索時のフェッチサイズ  {@value}
    078         *
    079         * ORACLEのデフォルトは、10です。
    080         * 最適なフェッチ・サイズは、予想される結果サイズの半分または4分の1です。結果セットのサイズかどうかわからず、
    081         * フェッチ・サイズの設定を大きくしすぎたり小さくしすぎたりすると、パフォーマンスが低下することに注意してください。
    082         * openGionでは、検索時の最大件数を、1000にしていますが、オーバー判定のための＋１件、余分に取得しています。
    083         * よって、1/4の250件に、プラスして、251件を、初期値にしておきます。
    084         *
    085         * @og.rev 6.9.4.1 (2018/04/09) 共通の固定値として登録
    086         */
    087        public static final int DB_FETCH_SIZE = 251 ;
    088
    089        /**
    090         * データ登録時のバッチサイズ  {@value}
    091         *
    092         * JDBC 2.0仕様では、これをバッチ更新(batch updates)と呼びます。
    093         * 標準のバッチ更新は、手動の明示的なモデルです。バッチ値は設定されていません。
    094         * 手動で操作をバッチに追加し、明示的にバッチ処理のタイミングを選択します。
    095         * openGionでは、検索時のページ表示件数を、100にしていますので、初期値を、 100件にしておきます。
    096         *
    097         * @og.rev 6.9.4.1 (2018/04/09) 共通の固定値として登録
    098         */
    099        public static final int DB_BATCH_SIZE = 100 ;
    100
    101        /**
    102         * プロパティ―をみて、なければ環境変数から値を取得します。
    103         *
    104         * 名称は、getenv ですが、処理としては、
    105         * return System.getProperty( key , System.getenv( key ) );
    106         * です。
    107         *
    108         * System.getProperty は、java起動時に、-Dxxx=yyy と渡す変数で、key=xxx , 値=yyy を受け取ります。
    109         * 変数が未定義の場合は、System.getenv で、環境変数の値を取得します。
    110         *
    111         * @og.rev 7.2.3.1 (2020/04/17) プロパティ―をみて、なければ環境変数から取る(サービス化対応)
    112         *
    113         * @param key パラメータキー
    114         * @return プロパティ―をみて、なければ環境変数から値を取得
    115         */
    116        public static String getenv( final String key ) {
    117                return System.getProperty( key , System.getenv( key ) );
    118        }
    119
    120        /**
    121         * プロパティ―をみて、なければ環境変数から値を取得します。
    122         *
    123         * 名称は、getenv ですが、処理としては、
    124         * System.getProperty( key , System.getenv( key ) ); で受け取った値が、
    125         * null か、ゼロ文字列の場合は、defval で指定した文字列を返します。
    126         *
    127         * System.getProperty は、java起動時に、-Dxxx=yyy と渡す変数で、key=xxx , 値=yyy を受け取ります。
    128         * 変数が未定義の場合は、System.getenv で、環境変数の値を取得します。
    129         *
    130         * @og.rev 7.2.3.1 (2020/04/17) プロパティ―をみて、なければ環境変数から取る(サービス化対応)
    131         *
    132         * @param key パラメータキー
    133         * @param defval        null か、ゼロ文字列の場合の初期値
    134         * @return プロパティ―をみて、なければ環境変数から値を取得
    135         */
    136        public static String getenv( final String key , final String defval ) {
    137                final String rtn = System.getProperty( key , System.getenv( key ) );
    138
    139                return rtn == null || rtn.isEmpty() ? defval : rtn ;
    140        }
    141
    142        /**
    143         * デフォルトコンストラクターをprivateにして、
    144         * オブジェクトの生成をさせないようにする。
    145         */
    146        private HybsConst() {}
    147}