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         * 概要説明が存在する場合は、ツールチップに概要説明が
087         * 表示されます。
088         *
089         * @return ラベルインターフェースの名前(長)
090         * @see #getLongLabel( String )
091         */
092        String getLongLabel() ;
093
094        /**
095         * ラベルインターフェースの名前(長)を返します。
096         * ツールチップに表示するタイトル属性(概要説明)を置き換えます。
097         * null の場合は、既存のgetLongLabel()を返します。
098         *
099         * @param       title   ツールチップに表示するタイトル属性
100         *
101         * @return      ラベルインターフェースの名前(長)
102         * @see #getLongLabel()
103         */
104        String getLongLabel( String title ) ;
105
106        /**
107         * ラベルインターフェースの概要説明を返します。
108         * 概要説明が存在する場合は、ラベルのツールチップに
109         * 概要説明が表示されます。
110         *
111         * @return      ラベルインターフェースの概要説明
112         */
113        String getDescription() ;
114
115        /**
116         * ラベルインターフェースの引数付きメッセージを返します。
117         * 概要(対応方法)の引数部分に、文字列配列を適用して、MessageFormat
118         * で変換した結果を返します。(MessageData でのみ有効です。)
119         *
120         * @og.rev 4.3.7.6 (2009/07/15) 新規作成
121         *
122         * @param       vals パラメータ
123         *
124         * @return      ラベルインターフェースの引数付き概要
125         */
126        String getDescription( String[] vals ) ;
127
128        /**
129         * リソースDBから作成されたかどうかを返します。
130         * 正式な場合は、true / リソースになく、独自に作成された場合は、false になります。
131         *
132         * @return      リソースDBから作成されたかどうか
133         */
134        boolean isOfficial() ;
135}