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.db; 017 018/** 019 * DBColumn インターフェースで使用される データ表示用のインターフェースです。 020 * 適切な実装(サブクラス)を DBColumn に与えることで、データ表示方法を適宜 021 * 切り替えることが出来ます。 022 * 023 * @og.rev 4.0.0.0 (2006/10/30) 新規追加 024 * @og.group データ編集 025 * 026 * @version 4.0 027 * @author Kazuhiko Hasegawa 028 * @since JDK5.0, 029 */ 030public interface CellRenderer { 031 032 /** 033 * データの表示/編集用文字列を返します。 034 * 035 * @param value 値 036 * 037 * @return データの表示/編集用文字列 038 */ 039 String getValue( String value ) ; 040 041 /** 042 * name属性を変えた、データ表示/編集用のHTML文字列を作成します。 043 * テーブル上の name に 行番号を付加して、名前_行番号 で登録するキーを作成し、 044 * リクエスト情報を1つ毎のフィールドで処理できます。 045 * 046 * @param row 行番号 047 * @param value 値 048 * 049 * @return データ表示/編集用の文字列 050 */ 051 String getValue( int row,String value ) ; 052 053 /** 054 * name属性を変えた、データ表示用のHTML文字列を作成します。 055 * レンデラーのため、row(行番号)は使いません。 056 * 第3引数に、パラメータを渡すことが出来ます。これは、viewMarker で 057 * [$XXXX param] 形式を渡すことで、行単位に表示形式を変更できます。 058 * AbstractRenderer では、#getValue( String ) を呼び出しています。 059 * 060 * @og.rev 6.8.3.1 (2017/12/01) パラメータを渡せるようにします。 061 * 062 * @param row 行番号 063 * @param value 値 064 * @param param パラメータ 065 * 066 * @return データ表示/編集用の文字列 067 */ 068 String getValue( int row,String value,String param ) ; 069 070 /** 071 * データ出力用の文字列を作成します。 072 * ファイル等に出力する形式を想定しますので、HTMLタグを含まない 073 * データを返します。 074 * 基本は、#getValue( String ) をそのまま返します。 075 * 076 * @og.rev 6.0.4.0 (2014/11/28) データ出力用のレンデラー 077 * 078 * @param value 入力値 079 * 080 * @return データ出力用の文字列 081 * @see #getValue( String ) 082 */ 083 String getWriteValue( final String value ) ; 084 085 /** 086 * 各オブジェクトから自分のインスタンスを返します。 087 * 自分自身をキャッシュするのか、新たに作成するのかは、各サブクラスの実装に 088 * まかされます。 089 * 090 * @og.rev 3.1.1.1 (2003/04/03) 各オブジェクトから自分のインスタンスを返すファクトリメソッドを追加。 091 * 092 * @param clm DBColumnオブジェクト 093 * 094 * @return DBCellオブジェクト 095 */ 096 CellRenderer newInstance( DBColumn clm ); 097}