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.resource;
017
018/**
019 * systemId , lang に対応したラベルデータを作成します。
020 *
021 * ラベルデータは、項目(CLM)に対して、各種ラベル情報を持っています。
022 * ラベルデータは、名前(短)と名前(長)を持っています。従来のラベルは、表示名称と
023 * して、一種類しか持っていませんでした。
024 * 名前(長)は、従来の表示名称にあたります。これは、一般的なラベルとして
025 * 使用されます。名前(短)は、テーブル一覧のヘッダーの様に、特殊なケースで、
026 * 簡略化された名称を使用するときに利用されます。この切り替えは、自動で判断されます。
027 * 名前(短)に、なにも設定されていない場合は、名前(長)が自動的に使用されますので
028 * 初期データ移行時には、そのまま、通常時もテーブルヘッダー時も同じ文字列が
029 * 使用されます。
030 *
031 * ラベルデータを作成する場合は、同一ラベルで、作成区分(KBSAKU)違いの場合は、
032 * 最も大きな作成区分を持つコードを使用します。
033 * 作成区分(KBSAKU)は、0:システム予約、1:アプリ設定、2:ユーザー設定 という具合に
034 * カスタマイズの度合いに応じて大きな数字を割り当てることで、キー情報を上書き修正
035 * することが可能になります。(削除することは出来ません。)
036 *
037 * @og.rev 4.0.0.0 (2004/12/31) 新規作成
038 * @og.group リソース管理
039 *
040 * @version  4.0
041 * @author   Kazuhiko Hasegawa
042 * @since    JDK5.0,
043 */
044public interface LabelInterface {
045
046        /**
047         * ラベルインターフェースのキーを返します。
048         *
049         * @return      ラベルインターフェースのキー
050         */
051        String getKey() ;
052
053        /**
054         * ラベルインターフェースの名前を返します。
055         * これは、DB上の LNAME(名前(長))に該当します。
056         *
057         * @return      ラベルインターフェースの名前(短)
058         */
059        String getLabel() ;
060
061        /**
062         * ラベルインターフェースの引数付きメッセージを返します。
063         * メッセージの引数部分に、文字列配列を適用して、MessageFormat
064         * で変換した結果を返します。(MessageData でのみ有効です。)
065         *
066         * @param       vals    メッセージ引数の文字列配列(可変長引数)
067         *
068         * @return      ラベルインターフェースの引数付きメッセージ
069         */
070        String getMessage( String... vals ) ;
071
072        /**
073         * ラベルインターフェースの名前(短)を返します。
074         * 概要説明がない場合でかつDB上のSNAMEが未設定の場合は、
075         * LNAME が返されます。SNAMEが設定されている場合は、
076         * ツールチップにLNAME が表示されます。
077         * 概要説明が存在する場合は、ツールチップに概要説明が
078         * 表示されます。
079         *
080         * @return ラベルインターフェースの名前(短)
081         */
082        String getShortLabel() ;
083
084        /**
085         * ラベルオブジェクトの名称(未変換短)を返します。
086         * このメソッドでは{0},{1}...をパラメータで置換します。
087         *
088         * @og.rev 7.1.0.1 (2020/02/07) ショートラベルに引数を渡します。
089         *
090         * @param       vals    メッセージ引数の文字列配列(可変長引数)
091         *
092         * @return ラベルインターフェースの名前(短)
093         */
094        String getShortMessage( String... vals );
095
096        /**
097         * ラベルインターフェースの名前(長)を返します。
098         * 概要説明が存在する場合は、ツールチップに概要説明が
099         * 表示されます。
100         *
101         * @return ラベルインターフェースの名前(長)
102         * @see #getLongLabel( String )
103         */
104        String getLongLabel() ;
105
106        /**
107         * ラベルインターフェースの名前(長)を返します。
108         * ツールチップに表示するタイトル属性(概要説明)を置き換えます。
109         * null の場合は、既存のgetLongLabel()を返します。
110         *
111         * @param       title   ツールチップに表示するタイトル属性
112         *
113         * @return      ラベルインターフェースの名前(長)
114         * @see #getLongLabel()
115         */
116        String getLongLabel( String title ) ;
117
118        /**
119         * ラベルインターフェースの概要説明を返します。
120         * 概要説明が存在する場合は、ラベルのツールチップに
121         * 概要説明が表示されます。
122         *
123         * @return      ラベルインターフェースの概要説明
124         */
125        String getDescription() ;
126
127        /**
128         * ラベルインターフェースの引数付きメッセージを返します。
129         * 概要(対応方法)の引数部分に、文字列配列を適用して、MessageFormat
130         * で変換した結果を返します。(MessageData でのみ有効です。)
131         *
132         * @og.rev 4.3.7.6 (2009/07/15) 新規作成
133         *
134         * @param       vals パラメータ配列(可変長引数)
135         *
136         * @return      ラベルインターフェースの引数付き概要
137         */
138        String getDescription( String... vals ) ;
139
140        /**
141         * リソースDBから作成されたかどうかを返します。
142         * 正式な場合は、true / リソースになく、独自に作成された場合は、false になります。
143         *
144         * @return      リソースDBから作成されたかどうか
145         */
146        boolean isOfficial() ;
147}