/* * Copyright (c) 2007 NTT DATA Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package jp.terasoluna.fw.beans; import java.util.Map; /** * JavaBeanの配列・コレクション型属性へのアクセサを持つインタフェース。 * * <p>{@link #getIndexedPropertyValues(String)}メソッドで、 * 配列型属性にアクセスする。 * String型の引数にアクセスするプロパティ名を指定すると、 * プロパティ名に一致する属性を全て取得する。 * 戻り値はMap(キーがプロパティ名、値が属性値)が返される。 * {@link #getIndexedPropertyValues(String)}メソッドは、配列型以外でも * 使用が可能である。</p> * * <h5>配列型属性にアクセスする例</h5> * <p> * <pre> * public class TestBean { * private String[] stringArray; * * ・・・(以下、getter/setterは略) * </pre> * <pre> * IndexedBeanWrapperImpl bw = new JXPathIndexedBeanWrapperImpl(bean); * Map map = bw.getIndexedPropertyValues("stringArray"); * </pre> * </p> * * <p>{@link #getIndexedPropertyValues(String)}メソッドでstringArray属性に * アクセスすると、stringArray[0]、stringArray[1]・・・stringArray[n]までの * プロパティ名と属性値をMap型にして返す。 * 引数には”stringArray[0]”のように、直接要素を指定する必要はない。</p> * * */ public interface IndexedBeanWrapper { /** * 指定したプロパティ名に一致する属性値を返す。 * 取得したプロパティ名はインデックスをキーに昇順にソートされている。 * @param propertyName プロパティ名 * @return プロパティ名に一致する属性値を格納するMap * (プロパティ名、属性値) */ Map<String, Object> getIndexedPropertyValues(String propertyName); }