チェンジセット 209

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

WebサービスオペレーションのパラメータクラスのプロパティがPrimitive型でも動作するように修正。
∵JSの変数として保持すると、RhinoがWrapperクラスに変換するため、パラメータ型の相違で該当のsetterが呼び出せない

ファイル:

凡例:

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

    r208 r209  
    744744                                                source.append(                          "(jsArg_" + propName + ", beanType_" + propName + ", classLoader);")    .append(LINE_SEP); 
    745745                                         
    746                                         if(setterParamTypeName.equals("boolean")){ 
    747746                                                source.append("    operationParam." + setter.getName() + "("); 
     747 
     748                                        // Primitive型(∵JSの変数として保持すると、RhinoがWrapperクラスに変換するため、パラメータ型の相違で該当のsetterが呼び出せない) 
     749                                        if(setterParamTypeName.equals("char")) { 
     750                                                source.append(                  "( new Packages.java.lang.Character(javaArg_" + propName + ") ).charValue()"); 
     751                                        } 
     752                                        else if(setterParamTypeName.equals("double")) { 
     753                                                source.append(                  "( new Packages.java.lang.Double(javaArg_" + propName + ") ).doubleValue()"); 
     754                                        } 
     755                                        else if(setterParamTypeName.equals("float")) { 
     756                                                source.append(                  "( new Packages.java.lang.Float(javaArg_" + propName + ") ).floatValue()"); 
     757                                        } 
     758                                        else if(setterParamTypeName.equals("long")) { 
     759                                                source.append(                  "( new Packages.java.lang.Long(javaArg_" + propName + ") ).longValue()"); 
     760                                        } 
     761                                        else if(setterParamTypeName.equals("int")) { 
     762                                                source.append(                  "( new Packages.java.lang.Integer(javaArg_" + propName + ") ).intValue()"); 
     763                                        } 
     764                                        else if(setterParamTypeName.equals("short")) { 
     765                                                source.append(                  "( new Packages.java.lang.Short(javaArg_" + propName + ") ).shortValue()"); 
     766                                        } 
     767                                        else if(setterParamTypeName.equals("byte")) { 
     768                                                source.append(                  "( new Packages.java.lang.Byte(javaArg_" + propName + ") ).byteValue()"); 
     769                                        } 
     770                                        else if(setterParamTypeName.equals("boolean")) { 
    748771                                                source.append(                  "( new Packages.java.lang.Boolean(javaArg_" + propName + ") ).booleanValue()"); 
    749                                                 source.append(     ");")                                                                                                                                                        .append(LINE_SEP); 
    750                                         } 
    751                                         // TODO その他のPrimitive型対応 
     772                                        } 
     773                                        // Primitive型以外 
    752774                                        else{ 
    753                                                 source.append("    operationParam." + setter.getName() + "(javaArg_" + propName + ");")                         .append(LINE_SEP); 
    754                                         } 
     775                                                source.append(                  "javaArg_" + propName); 
     776                                        } 
     777                                        source.append(     ");")                                                                                                                                                                .append(LINE_SEP); 
    755778                                         
    756779                                        // ---------------- 
     
    846869                                        source.append("    catch(e){")                                                                                                                                                  .append(LINE_SEP); 
    847870                                        source.append("        if(e.javaException == undefined ")                                                                                               .append(LINE_SEP); 
    848                                         source.append("           ||").append(LINE_SEP); 
     871                                        source.append("           ||")                                                                                                                                                 .append(LINE_SEP); 
    849872                                        source.append("           e.javaException.getClass().getName() != '" + AxisFault.class.getName()+ "'){").append(LINE_SEP); 
    850873                                        source.append("            throw e;")                                                                                                                                   .append(LINE_SEP);