1 29 30 package com.caucho.quercus.function; 31 32 import com.caucho.quercus.env.BooleanValue; 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 BooleanObjectMarshal extends Marshal 39 { 40 public static final Marshal MARSHAL = new BooleanObjectMarshal(); 41 42 public boolean isReadOnly() 43 { 44 return true; 45 } 46 47 public Object marshal(Env env, Expr expr, Class expectedClass) 48 { 49 return expr.evalBoolean(env) ? Boolean.TRUE : Boolean.FALSE; 50 } 51 52 @Override 53 public Object marshal(Env env, Value value, Class expectedClass) 54 { 55 if (value.isNull()) 56 return null; 57 else 58 return value.toBoolean() ? Boolean.TRUE : Boolean.FALSE; 59 } 60 61 public Value unmarshal(Env env, Object value) 62 { 63 if (value == null) 64 return NullValue.NULL; 65 else 66 return Boolean.TRUE.equals(value) 67 ? BooleanValue.TRUE 68 : BooleanValue.FALSE; 69 } 70 } 71 | Popular Tags |