Search in sources :

Example 46 with Property

use of jp.ossc.nimbus.beans.Property in project nimbus by nimbus-org.

the class PropertyWritableRecordFactoryService method getElementValue.

protected Object getElementValue(String key, Object elements, Map propMapping) {
    if (propMapping != null && propMapping.containsKey(key)) {
        final Logger logger = getLogger();
        final Property prop = (Property) propMapping.get(key);
        try {
            return prop.getProperty(elements);
        } catch (NoSuchPropertyException e) {
            return null;
        } catch (InvocationTargetException e) {
            logger.write(PWRF_00001, key, e);
            return null;
        }
    } else {
        return super.getElementValue(key, elements);
    }
}
Also used : NoSuchPropertyException(jp.ossc.nimbus.beans.NoSuchPropertyException) SimpleProperty(jp.ossc.nimbus.beans.SimpleProperty) Property(jp.ossc.nimbus.beans.Property)

Example 47 with Property

use of jp.ossc.nimbus.beans.Property in project nimbus by nimbus-org.

the class PropertyGetActionService method execute.

/**
 * リソースの内容を読み込んで、オブジェクトのプロパティ値を取得する。<p>
 * リソースのフォーマットは、以下。<br>
 * <pre>
 * property
 * targetObjectId
 * </pre>
 * propertyは、取得するプロパティ文字列を指定する。プロパティ文字列は、{@link PropertyFactory#createProperty(String)}で解釈される。<br>
 * targetObjectIdは、プロパティの取得対象となるオブジェクトを指定するもので、同一テストケース中に、このTestActionより前に、プロパティの取得対象となるオブジェクトを戻すテストアクションが存在する場合は、そのアクションIDを指定する。また、同一シナリオ中に、このTestActionより前に、プロパティの取得対象となるオブジェクトを戻すテストアクションが存在する場合は、テストケースIDとアクションIDをカンマ区切りで指定する。preResultを使用する場合は、空行を指定する。<br>
 *
 * @param context コンテキスト
 * @param actionId アクションID
 * @param preResult プロパティの取得対象となるオブジェクト
 * @param resource リソース
 * @return 取得したプロパティ値
 */
public Object execute(TestContext context, String actionId, Object preResult, Reader resource) throws Exception {
    BufferedReader br = new BufferedReader(resource);
    Object targetObject = preResult;
    Property property = null;
    try {
        final String propStr = br.readLine();
        if (propStr == null || propStr.length() == 0) {
            throw new Exception("Unexpected EOF on property");
        }
        property = PropertyFactory.createProperty(propStr);
        property.setIgnoreNullProperty(true);
        final String targetObjectId = br.readLine();
        if (targetObjectId != null && targetObjectId.length() != 0) {
            Object actionResult = null;
            if (targetObjectId.indexOf(",") == -1) {
                actionResult = context.getTestActionResult(targetObjectId);
            } else {
                String[] ids = targetObjectId.split(",");
                if (ids.length != 2) {
                    throw new Exception("Illegal targetObjectId format. id=" + targetObjectId);
                }
                actionResult = context.getTestActionResult(ids[0], ids[1]);
            }
            if (actionResult == null) {
                throw new Exception("TestActionResult not found. id=" + targetObjectId);
            }
            targetObject = actionResult;
        }
    } finally {
        br.close();
        br = null;
    }
    return property.getProperty(targetObject);
}
Also used : BufferedReader(java.io.BufferedReader) Property(jp.ossc.nimbus.beans.Property)

Example 48 with Property

use of jp.ossc.nimbus.beans.Property in project nimbus by nimbus-org.

the class PropertySetActionService method execute.

/**
 * リソースの内容を読み込んで、オブジェクトにプロパティ値を設定する。<p>
 * リソースのフォーマットは、以下。<br>
 * <pre>
 * property
 * targetObjectId
 * valueObjectId
 * </pre>
 * propertyは、設定するプロパティ文字列を指定する。プロパティ文字列は、{@link PropertyFactory#createProperty(String)}で解釈される。<br>
 * targetObjectIdは、プロパティの設定対象となるオブジェクトを指定するもので、同一テストケース中に、このTestActionより前に、プロパティの設定対象となるオブジェクトを戻すテストアクションが存在する場合は、そのアクションIDを指定する。また、同一シナリオ中に、このTestActionより前に、プロパティの設定対象となるオブジェクトを戻すテストアクションが存在する場合は、テストケースIDとアクションIDをカンマ区切りで指定する。<br>
 * valueObjectIdは、プロパティに設定する値となるオブジェクトを指定するもので、同一テストケース中に、このTestActionより前に、プロパティに設定する値となるオブジェクトを戻すテストアクションが存在する場合は、そのアクションIDを指定する。また、同一シナリオ中に、このTestActionより前に、プロパティに設定する値となるオブジェクトを戻すテストアクションが存在する場合は、テストケースIDとアクションIDをカンマ区切りで指定する。<br>
 *
 * @param context コンテキスト
 * @param actionId アクションID
 * @param resource リソース
 * @return 設定対象のオブジェクト
 */
public Object execute(TestContext context, String actionId, Reader resource) throws Exception {
    BufferedReader br = new BufferedReader(resource);
    Object targetObject = null;
    Object valueObject = null;
    Property property = null;
    try {
        final String propStr = br.readLine();
        if (propStr == null || propStr.length() == 0) {
            throw new Exception("Unexpected EOF on property");
        }
        property = PropertyFactory.createProperty(propStr);
        property.setIgnoreNullProperty(true);
        final String targetObjectId = br.readLine();
        if (targetObjectId != null && targetObjectId.length() != 0) {
            Object actionResult = null;
            if (targetObjectId.indexOf(",") == -1) {
                actionResult = context.getTestActionResult(targetObjectId);
            } else {
                String[] ids = targetObjectId.split(",");
                if (ids.length != 2) {
                    throw new Exception("Illegal targetObjectId format. id=" + targetObjectId);
                }
                actionResult = context.getTestActionResult(ids[0], ids[1]);
            }
            if (actionResult == null) {
                throw new Exception("TestActionResult not found. id=" + targetObjectId);
            }
            targetObject = actionResult;
        }
        final String valueObjectId = br.readLine();
        if (valueObjectId != null && valueObjectId.length() != 0) {
            Object actionResult = null;
            if (valueObjectId.indexOf(",") == -1) {
                actionResult = context.getTestActionResult(valueObjectId);
            } else {
                String[] ids = valueObjectId.split(",");
                if (ids.length != 2) {
                    throw new Exception("Illegal valueObjectId format. id=" + valueObjectId);
                }
                actionResult = context.getTestActionResult(ids[0], ids[1]);
            }
            valueObject = actionResult;
        }
    } finally {
        br.close();
        br = null;
    }
    property.setProperty(targetObject, valueObject);
    return targetObject;
}
Also used : BufferedReader(java.io.BufferedReader) Property(jp.ossc.nimbus.beans.Property)

Aggregations

Property (jp.ossc.nimbus.beans.Property)48 NoSuchPropertyException (jp.ossc.nimbus.beans.NoSuchPropertyException)8 InvocationTargetException (java.lang.reflect.InvocationTargetException)7 Iterator (java.util.Iterator)5 Map (java.util.Map)5 HashMap (java.util.HashMap)4 DataSet (jp.ossc.nimbus.beans.dataset.DataSet)4 RecordList (jp.ossc.nimbus.beans.dataset.RecordList)4 ArrayList (java.util.ArrayList)3 List (java.util.List)3 NestedProperty (jp.ossc.nimbus.beans.NestedProperty)3 SimpleProperty (jp.ossc.nimbus.beans.SimpleProperty)3 Record (jp.ossc.nimbus.beans.dataset.Record)3 PropertyEditor (java.beans.PropertyEditor)2 BufferedReader (java.io.BufferedReader)2 SQLException (java.sql.SQLException)2 LinkedHashMap (java.util.LinkedHashMap)2 HttpServletRequest (javax.servlet.http.HttpServletRequest)2 ParameterizedType (java.lang.reflect.ParameterizedType)1 Type (java.lang.reflect.Type)1