1 29 30 package com.caucho.quercus.function; 31 32 import com.caucho.quercus.env.ArrayValue; 33 import com.caucho.quercus.env.Env; 34 import com.caucho.quercus.env.NullValue; 35 import com.caucho.quercus.env.Value; 36 import com.caucho.quercus.expr.Expr; 37 38 public class ArrayValueMarshal extends Marshal 39 { 40 public static final Marshal MARSHAL = new ArrayValueMarshal(); 41 42 public boolean isReference() 43 { 44 return true; 45 } 46 47 public boolean isReadOnly() 48 { 49 return false; 50 } 51 52 public Object marshal(Env env, Expr expr, Class expectedClass) 53 { 54 return expr.eval(env).toArrayValue(env); 55 } 56 57 public Object marshal(Env env, Value value, Class expectedClass) 58 { 59 return value.toArrayValue(env); 60 } 61 62 public Value unmarshal(Env env, Object value) 63 { 64 if (value instanceof ArrayValue) 65 return (ArrayValue) value; 66 else if (value instanceof Value) 67 return ((Value) value).toArrayValue(env); 68 else 69 return NullValue.NULL; 70 } 71 } 72 | Popular Tags |