1 29 30 package com.caucho.quercus.function; 31 32 import com.caucho.quercus.env.Env; 33 import com.caucho.quercus.env.Value; 34 import com.caucho.quercus.program.JavaClassDef; 35 import com.caucho.util.L10N; 36 37 40 public class JavaListMarshal extends JavaMarshal { 41 private static final L10N L = new L10N(JavaMarshal.class); 42 43 public JavaListMarshal(JavaClassDef def, 44 boolean isNotNull) 45 { 46 this(def, isNotNull, false); 47 } 48 49 public JavaListMarshal(JavaClassDef def, 50 boolean isNotNull, 51 boolean isUnmarshalNullAsFalse) 52 { 53 super(def, isNotNull, isUnmarshalNullAsFalse); 54 } 55 56 public Object marshal(Env env, Value value, Class argClass) 57 { 58 if (! value.isset()) { 59 if (_isNotNull) { 60 env.warning(L.l("null is an unexpected argument, expected {0}", 61 shortName(argClass))); 62 } 63 64 return null; 65 } 66 67 Object obj = value.toJavaList(env, argClass); 68 69 if (obj == null) { 70 if (_isNotNull) { 71 env.warning(L.l("null is an unexpected argument, expected {0}", 72 shortName(argClass))); 73 } 74 75 return null; 76 } 77 else if (! argClass.isAssignableFrom(obj.getClass())) { 78 env.warning(L.l("'{0}' of type '{1}' is an unexpected argument, expected {2}", value, shortName(value.getClass()), shortName(argClass))); 79 return null; 80 } 81 82 return obj; 83 } 84 } 85 86 | Popular Tags |