チェンジセット 230

差分発生行の前後
無視リスト:
コミット日時:
2008/04/15 13:55:32 (14 年前)
コミッタ:
shinomiya
ログメッセージ:

executeFunction()実行時に「JS→Bean」または「Bean→JS」の変換に失敗した場合にIllegalConversionException?をスロー。

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • trunk/im-jssp/src/main/java/org/intra_mart/jssp/util/JavaScriptUtility.java

    r227 r230  
    1717 
    1818import org.intra_mart.common.platform.log.Logger; 
     19import org.intra_mart.jssp.exception.IllegalConversionException; 
    1920import org.intra_mart.jssp.script.ScriptScope; 
    2021import org.intra_mart.jssp.script.provider.ScriptScopeBuilder; 
     
    3940        } 
    4041         
     42        /** 
     43         * @param pagePath 
     44         * @param functionName 
     45         * @param args 
     46         * @throws IllegalConversionException 
     47         */ 
    4148        public static void executeVoidFunction(final String pagePath,  
    4249                                                                                   final String functionName,  
    43                                                                                    final Object... args) { 
     50                                                                                   final Object... args) 
     51                                                                        throws IllegalConversionException { 
    4452                executeFunction(pagePath, functionName, void.class, args); 
    4553        } 
    4654 
    4755         
     56        /** 
     57         * @param pagePath 
     58         * @param functionName 
     59         * @param returnType 
     60         * @param args 
     61         * @return 
     62         * @throws IllegalConversionException 
     63         */ 
    4864        public static Object executeFunction(final String pagePath,  
    4965                                                                                 final String functionName,  
    5066                                                                                 final Class<?> returnType, 
    51                                                                                  final Object... args) { 
    52  
     67                                                                                 final Object... args) 
     68                                                                        throws IllegalConversionException { 
     69 
     70                // ===================== 
    5371                // JavaからJSへ変換 
     72                // ===================== 
    5473                Object[] args4JS = null; 
    5574                try { 
     
    6079                } 
    6180                catch (Exception e) { 
    62                         // TODO 例外整理(JSから呼ばれることが主目的のクラスではないのにContext.throwAsScriptRuntimeEx(e)は間違え) 
    63                        throw Context.throwAsScriptRuntimeEx(e); 
    64                 } 
    65                  
     81                        throw new IllegalConversionException(e); 
     82                } 
     83                 
     84                // ===================== 
    6685                // JS実行 
     86                // ===================== 
    6787                Object jsResult = null; 
    6888                try{ 
     
    7797                } 
    7898                catch (Exception e) { 
    79                         // TODO 例外整理(JSから呼ばれることが主目的のクラスではないのにContext.throwAsScriptRuntimeEx(e)は間違え) 
    80                         throw Context.throwAsScriptRuntimeEx(e); 
     99                        throw new IllegalStateException(e); 
    81100                } 
    82101                finally{ 
     
    84103                } 
    85104 
     105                // ===================== 
    86106                // JSからJavaへ変換 
     107                // ===================== 
    87108                try { 
    88109                        if(returnType == null || returnType.equals(void.class)){ 
     
    95116                } 
    96117                catch (Exception e) { 
    97                         // TODO 例外整理(JSから呼ばれることが主目的のクラスではないのにContext.throwAsScriptRuntimeEx(e)は間違え) 
    98                         throw Context.throwAsScriptRuntimeEx(e); 
     118                        throw new IllegalConversionException(e); 
    99119                } 
    100120        } 
     
    104124        // PLAN List対応 
    105125         
    106         // TODO メソッド名変更 
    107  
    108126        /** 
    109127         * @param bean