1 29 30 package com.caucho.quercus.env; 31 32 import com.caucho.vfs.WriteStream; 33 34 import java.io.IOException ; 35 import java.io.PrintWriter ; 36 import java.io.Serializable ; 37 import java.net.URL ; 38 import java.util.IdentityHashMap ; 39 import java.util.Calendar ; 40 import java.util.Date ; 41 import java.util.Map ; 42 43 46 public class NullValue extends Value 47 implements Serializable  48 { 49 public static final NullValue NULL = new NullValue(); 50 51 protected NullValue() 52 { 53 } 54 55 58 public static NullValue create() 59 { 60 return NULL; 61 } 62 63 66 public String getType() 67 { 68 return "NULL"; 69 } 70 71 74 public boolean isset() 75 { 76 return false; 77 } 78 79 82 public boolean toBoolean() 83 { 84 return false; 85 } 86 87 90 public boolean isNull() 91 { 92 return true; 93 } 94 95 98 public long toLong() 99 { 100 return 0; 101 } 102 103 106 public double toDouble() 107 { 108 return 0; 109 } 110 111 115 public String toString() 116 { 117 return ""; 118 } 119 120 123 public Object toJavaObject() 124 { 125 return null; 126 } 127 128 131 @Override  132 public Object toJavaObject(Env env, Class type) 133 { 134 return null; 135 } 136 137 140 public Object toJavaObjectNotNull(Env env, Class type) 141 { 142 env.warning(L.l("null is an unexpected argument; expected '{0}'", 143 type.getName())); 144 145 return null; 146 } 147 148 151 @Override  152 public Boolean toJavaBoolean() 153 { 154 return null; 155 } 156 157 160 @Override  161 public Byte toJavaByte() 162 { 163 return null; 164 } 165 166 169 @Override  170 public Short toJavaShort() 171 { 172 return null; 173 } 174 175 178 @Override  179 public Integer toJavaInteger() 180 { 181 return null; 182 } 183 184 187 @Override  188 public Long toJavaLong() 189 { 190 return null; 191 } 192 193 196 @Override  197 public Float toJavaFloat() 198 { 199 return null; 200 } 201 202 205 @Override  206 public Double toJavaDouble() 207 { 208 return null; 209 } 210 211 214 @Override  215 public Character toJavaCharacter() 216 { 217 return null; 218 } 219 220 223 @Override  224 public String toJavaString() 225 { 226 return null; 227 } 228 229 232 public Map toJavaMap(Env env, Class type) 233 { 234 return null; 235 } 236 237 240 @Override  241 public Calendar toJavaCalendar() 242 { 243 return null; 244 } 245 246 249 @Override  250 public Date toJavaDate() 251 { 252 return null; 253 } 254 255 258 @Override  259 public URL toJavaURL(Env env) 260 { 261 return null; 262 } 263 264 268 public Object valuesToArray(Env env, Class elementType) 269 { 270 return null; 271 } 272 273 276 public Value toObject(Env env) 277 { 278 return NullValue.NULL; 279 } 280 281 284 public Value toArray() 285 { 286 return new ArrayValueImpl(); 287 } 288 289 292 public Value toAutoArray() 293 { 294 return new ArrayValueImpl(); 295 } 296 297 300 @Override  301 public ArrayValue toArrayValue(Env env) 302 { 303 return null; 304 } 305 306 309 public int getSize() 310 { 311 return 0; 312 } 313 314 317 public Value toAutoObject(Env env) 318 { 319 return env.createObject(); 320 } 321 322 325 public Value toKey() 326 { 327 return StringValue.EMPTY; 328 } 329 330 333 public boolean eql(Value rValue) 334 { 335 return rValue.isNull(); 336 } 337 338 341 @Override  342 public Value add(long lLong) 343 { 344 return LongValue.create(lLong); 345 } 346 347 350 public Value sub(long rLong) 351 { 352 return LongValue.create( - rLong); 353 } 354 355 358 @Override  359 public int cmp(Value rValue) 360 { 361 rValue = rValue.toValue(); 362 363 if (! (rValue instanceof StringValue)) { 364 int l = 0; 365 int r = rValue.toBoolean() ? 1 : 0; 366 367 return l - r; 368 } 369 else if (rValue.isNumberConvertible()) { 370 double l = 0; 371 double r = rValue.toDouble(); 372 373 if (l == r) 374 return 0; 375 else if (l < r) 376 return -1; 377 else 378 return 1; 379 } 380 else 381 return "".compareTo(rValue.toString()); 382 } 383 384 388 public void print(Env env) 389 { 390 } 391 392 395 public void serialize(StringBuilder sb) 396 { 397 sb.append("N;"); 398 } 399 400 403 public void varExport(StringBuilder sb) 404 { 405 sb.append("null"); 406 } 407 408 411 public Value getArray() 412 { 413 return new ArrayValueImpl(); 414 } 415 416 419 public void appendTo(BinaryBuilderValue sb) 420 { 421 } 422 423 427 432 public void generate(PrintWriter out) 433 throws IOException  434 { 435 out.print("NullValue.NULL"); 436 } 437 438 441 public Value getObject(Env env) 442 { 443 return env.createObject(); 444 } 445 446 public String toDebugString() 447 { 448 return "null"; 449 } 450 451 public void varDumpImpl(Env env, 452 WriteStream out, 453 int depth, 454 IdentityHashMap <Value, String > valueSet) 455 throws IOException  456 { 457 out.print("NULL"); 458 } 459 460 464 private Object readResolve() 465 { 466 return NULL; 467 } 468 } 469 470 | Popular Tags |