    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.model;
    017
    018/**
    019 * [PN],[OYA] などの [] で指定されたカラムで表されたフォーマットデータに対して、
    020 * DBTableModelオブジェクトを適用して 各カラムに実データを割り当てるオブジェクトです。
    021 *
    022 * @og.group 画面表示
    023 *
    024 * @version  4.0
    025 * @author   Kazuhiko Hasegawa
    026 * @since    JDK5.0,
    027 */
    028public interface DataModel<T> {
    029
    030        /**
    031         * row にあるセルのオブジェクト値を置き換えます。
    032         *
    033         * @param   vals  新しい配列値。
    034         * @param   row   値が変更される行(無視されます)
    035         */
    036        void setValues( final T[] vals,final int row ) ;
    037
    038        /**
    039         * カラム名に対応する カラム番号を返します。
    040         *
    041         * 特殊なカラムが指定された場合は、負の値を返します。
    042         * 例えば、[KEY.カラム名]、[I]、[ROW.ID] など、特定の負の値を返します。
    043         * また、カラム名が元のデータモデルに存在しない場合も、負の値か、
    044         * Exception を返します。負の値なのか、Exception なのかは、
    045         * 実装に依存します。
    046         *
    047         * @param   columnName  値が参照されるカラム番号
    048         *
    049         * @return  指定されたセルのカラム番号
    050         */
    051        int getColumnNo( final String columnName ) ;
    052
    053        /**
    054         * カラム名配列を返します。
    055         * 配列オブジェクトは、clone されたコピーを返します。
    056         *
    057         * @return      カラム名配列
    058         */
    059        String[] getNames();
    060
    061        /**
    062         * row にあるセルの属性値を配列で返します。
    063         *
    064         * @param   row     値が参照される行
    065         *
    066         * @return  指定されたセルの属性値
    067         */
    068        T[] getValues( int row ) ;
    069
    070        /**
    071         * row および clm にあるセルの属性値を返します。
    072         *
    073         * @param   row     値が参照される行
    074         * @param   clm     値が参照される列
    075         *
    076         * @return  指定されたセルの値 T
    077         */
    078        T getValue(int row, int clm) ;
    079
    080        /**
    081         * clm のNativeタイプを返します。
    082         * Nativeタイプはorg.opengion.fukurou.model.NativeTypeで定義されています。
    083         *
    084         * @og.rev 4.1.1.2 (2008/02/28) 新規追加
    085         *
    086         * @param  clm      値が参照される列
    087         *
    088         * @return Nativeタイプ
    089         * @see org.opengion.fukurou.model.NativeType
    090         */
    091        NativeType getNativeType( int clm );
    092}