    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 * SelectionCellEditor インターフェースは、データ編集用のインターフェースの特殊系です。
    020 * これは、Selectionオブジェクトを使用していることを示すマーカーインターフェースであり、
    021 * デフォルトの メソッドを定義しています。(よって、JDK1.8以降でしか、使用できません)
    022 * デフォルトメソッドでは、KEY:VAL 形式かどうか判定して、KEY 部分だけ取り出す処理を
    023 * 行います。つまり、Selection では、KEY文字列に、":" は指定できません。
    024 *
    025 * @og.rev 6.2.2.0 (2015/03/27) 新規追加
    026 * @og.group データ編集
    027 *
    028 * @version  6.2
    029 * @author   Kazuhiko Hasegawa
    030 * @since    JDK1.8
    031 */
    032public interface SelectionCellEditor {
    033
    034        /**
    035         * KEY:VAL 形式かどうか判定して、KEY 部分だけ取り出します。
    036         *
    037         * 引数のvalue に、":" が含まれていれば、それ以前の箇所を
    038         * 切り出して返します。
    039         * そうでなければ、引数のまま、返します。
    040         *
    041         * @og.rev 6.2.2.0 (2015/03/27) 新規追加
    042         *
    043         * @param       value   (一般に編集データとして登録されたデータ)
    044         *
    045         * @return  KEY:VAL 形式の KEY部分のみ
    046         */
    047        default String getReaderValue( final String value ) {
    048                if( value == null || value.isEmpty() ) { return value; }
    049
    050                String rtnVal = value ;
    051                final int ad = rtnVal.indexOf( ':' );                   // KEY:VAL の区切り文字を探す
    052                if( ad >= 0 ) {
    053                        rtnVal = rtnVal.substring( 0,ad );
    054                }
    055
    056                return rtnVal;
    057        }
    058}