1 29 30 package com.caucho.quercus.env; 31 32 import java.io.IOException ; 33 import java.net.URL ; 34 35 import java.util.*; 36 37 import com.caucho.vfs.WriteStream; 38 39 import com.caucho.quercus.expr.Expr; 40 41 import com.caucho.quercus.program.AbstractFunction; 42 43 46 public class JavaAdapterVar extends Var 47 { 48 49 private JavaAdapter _adapter; 50 private Value _key; 51 52 public JavaAdapterVar(JavaAdapter adapter, Value key) 53 { 54 _adapter = adapter; 55 _key = key; 56 } 57 58 public Value getValue() 59 { 60 return _adapter.get(_key); 61 } 62 63 public void setValue(Value value) 64 { 65 _adapter.putImpl(_key, value); 66 } 67 68 71 public Value set(Value value) 72 { 73 setRaw(getValue()); 74 75 value = super.set(value); 76 77 setValue(getRawValue()); 78 79 return value; 80 } 81 82 85 public String getType() 86 { 87 return getValue().getType(); 88 } 89 90 93 public boolean isset() 94 { 95 return getValue().isset(); 96 } 97 98 101 public boolean isA(String name) 102 { 103 return getValue().isA(name); 104 } 105 106 109 public boolean isNull() 110 { 111 return getValue().isNull(); 112 } 113 114 117 public boolean isLongConvertible() 118 { 119 return getValue().isLongConvertible(); 120 } 121 122 125 public boolean isDoubleConvertible() 126 { 127 return getValue().isDoubleConvertible(); 128 } 129 130 133 public boolean isNumberConvertible() 134 { 135 return getValue().isNumberConvertible(); 136 } 137 138 141 @Override 142 public boolean isNumeric() 143 { 144 return getValue().isNumeric(); 145 } 146 147 150 156 157 160 public boolean isString() 161 { 162 return getValue().isString(); 163 } 164 165 168 public boolean isBinary() 169 { 170 return getValue().isBinary(); 171 } 172 173 176 public boolean isUnicode() 177 { 178 return getValue().isUnicode(); 179 } 180 181 185 public String toString() 186 { 187 return getValue().toString(); 188 } 189 190 193 public boolean toBoolean() 194 { 195 return getValue().toBoolean(); 196 } 197 198 201 public long toLong() 202 { 203 return getValue().toLong(); 204 } 205 206 209 public double toDouble() 210 { 211 return getValue().toDouble(); 212 } 213 214 218 public StringValue toString(Env env) 219 { 220 return getValue().toString(env); 221 } 222 223 226 public Object toJavaObject() 227 { 228 return getValue().toJavaObject(); 229 } 230 231 234 @Override 235 public Object toJavaObject(Env env, Class type) 236 { 237 return getValue().toJavaObject(env, type); 238 } 239 240 243 @Override 244 public Object toJavaObjectNotNull(Env env, Class type) 245 { 246 return getValue().toJavaObjectNotNull(env, type); 247 } 248 249 252 public Collection toJavaCollection(Env env, Class type) 253 { 254 return getValue().toJavaCollection(env, type); 255 } 256 257 260 public List toJavaList(Env env, Class type) 261 { 262 return getValue().toJavaList(env, type); 263 } 264 265 268 public Map toJavaMap(Env env, Class type) 269 { 270 return getValue().toJavaMap(env, type); 271 } 272 273 274 277 public Value toArray() 278 { 279 return getValue().toArray(); 280 } 281 282 285 @Override 286 public ArrayValue toArrayValue(Env env) 287 { 288 return getValue().toArrayValue(env); 289 } 290 291 294 public Value toAutoArray() 295 { 296 setRaw(getValue()); 297 298 Value value = super.toAutoArray(); 299 300 setValue(getRawValue()); 301 302 return value; 303 } 304 305 308 public Value toObject(Env env) 309 { 310 return getValue().toObject(env); 311 } 312 313 316 @Override 317 public Calendar toJavaCalendar() 318 { 319 return getValue().toJavaCalendar(); 320 } 321 322 325 @Override 326 public Date toJavaDate() 327 { 328 return getValue().toJavaDate(); 329 } 330 331 334 @Override 335 public URL toJavaURL(Env env) 336 { 337 return getValue().toJavaURL(env); 338 } 339 340 343 public void appendTo(StringBuilderValue sb) 344 { 345 getValue().appendTo(sb); 346 } 347 348 351 public void appendTo(BinaryBuilderValue sb) 352 { 353 getValue().appendTo(sb); 354 } 355 356 359 public Value toValue() 360 { 361 return getValue(); 362 } 363 364 367 @Override 368 public Value toArgValueReadOnly() 369 { 370 return getValue(); 371 } 372 373 376 @Override 377 public Value toArgValue() 378 { 379 return getValue().toArgValue(); 380 } 381 382 386 @Override 387 public Value toRefValue() 388 { 389 setRaw(getValue()); 390 391 Value value = super.toRefValue(); 392 393 setValue(getRawValue()); 394 395 return value; 396 } 397 398 401 @Override 402 public Var toVar() 403 { 404 setRaw(getValue()); 405 406 Var value = super.toVar(); 407 408 setValue(getRawValue()); 409 410 return value; 411 } 412 413 416 public Value toKey() 417 { 418 return getValue().toKey(); 419 } 420 421 @Override 422 public StringValue toStringValue() 423 { 424 return getValue().toStringValue(); 425 } 426 427 @Override 428 public BinaryValue toBinaryValue(Env env) 429 { 430 return getValue().toBinaryValue(env); 431 } 432 433 @Override 434 public UnicodeValue toUnicodeValue(Env env) 435 { 436 return getValue().toUnicodeValue(env); 437 } 438 439 @Override 440 public StringValue toStringBuilder() 441 { 442 return getValue().toStringBuilder(); 443 } 444 445 449 452 public Value copy() 453 { 454 setRaw(getValue()); 455 456 Value value = super.copy(); 457 458 setValue(getRawValue()); 459 460 return value; 461 } 462 463 466 public Value copyReturn() 467 { 468 setRaw(getValue()); 469 470 Value value = super.copyReturn(); 471 472 setValue(getRawValue()); 473 474 return value; 475 } 476 477 480 public Value toRef() 481 { 482 setRaw(getValue()); 483 484 Value value = super.toRef(); 485 486 setValue(getRawValue()); 487 488 return value; 489 } 490 491 494 public boolean isArray() 495 { 496 return getValue().isArray(); 497 } 498 499 502 public Value neg() 503 { 504 return getValue().neg(); 505 } 506 507 510 public Value add(Value rValue) 511 { 512 return getValue().add(rValue); 513 } 514 515 518 @Override 519 public Value add(long rValue) 520 { 521 return getValue().add(rValue); 522 } 523 524 527 public Value preincr(int incr) 528 { 529 setRaw(getValue()); 530 531 Value value = super.preincr(incr); 532 533 setValue(getRawValue()); 534 535 return value; 536 } 537 538 541 public Value postincr(int incr) 542 { 543 setRaw(getValue()); 544 545 Value value = super.postincr(incr); 546 547 setValue(getRawValue()); 548 549 return value; 550 } 551 552 555 public Value sub(Value rValue) 556 { 557 return getValue().sub(rValue); 558 } 559 560 563 public Value mul(Value rValue) 564 { 565 return getValue().mul(rValue); 566 } 567 568 571 public Value mul(long lValue) 572 { 573 return getValue().mul(lValue); 574 } 575 576 579 public Value div(Value rValue) 580 { 581 return getValue().div(rValue); 582 } 583 584 587 public Value lshift(Value rValue) 588 { 589 return getValue().lshift(rValue); 590 } 591 592 595 public Value rshift(Value rValue) 596 { 597 return getValue().rshift(rValue); 598 } 599 600 603 public boolean eq(Value rValue) 604 { 605 return getValue().eq(rValue); 606 } 607 608 611 public boolean eql(Value rValue) 612 { 613 return getValue().eql(rValue); 614 } 615 616 619 public int cmp(Value rValue) 620 { 621 return getValue().cmp(rValue); 622 } 623 624 627 public int getSize() 628 { 629 return getValue().getSize(); 630 } 631 632 635 public Collection<Value> getIndices() 636 { 637 return getValue().getIndices(); 638 } 639 640 643 public Value []getKeyArray() 644 { 645 return getValue().getKeyArray(); 646 } 647 648 651 public Value []getValueArray(Env env) 652 { 653 return getValue().getValueArray(env); 654 } 655 656 659 public Value getArray() 660 { 661 setRaw(getValue()); 662 663 Value value = super.getArray(); 664 665 setValue(getRawValue()); 666 667 return value; 668 } 669 670 673 public Value getObject(Env env) 674 { 675 setRaw(getValue()); 676 677 Value value = super.getObject(env); 678 679 setValue(getRawValue()); 680 681 return value; 682 } 683 684 687 public Value get(Value index) 688 { 689 return getValue().get(index); 690 } 691 692 695 public Value getRef(Value index) 696 { 697 setRaw(getValue()); 698 699 Value value = super.getRef(index); 700 701 setValue(getRawValue()); 702 703 return value; 704 } 705 706 709 public Value getArg(Value index) 710 { 711 setRaw(getValue()); 712 713 Value value = super.getArg(index); 714 715 setValue(getRawValue()); 716 717 return value; 718 } 719 720 723 public Value getArgRef(Value index) 724 { 725 setRaw(getValue()); 726 727 Value value = super.getArgRef(index); 728 729 setValue(getRawValue()); 730 731 return value; 732 } 733 734 737 public Value getArray(Value index) 738 { 739 setRaw(getValue()); 740 741 Value value = super.getArray(index); 742 743 setValue(getRawValue()); 744 745 return value; 746 } 747 748 751 public Value getDirty(Value index) 752 { 753 return getValue().getDirty(index); 754 } 755 756 759 public Value getObject(Env env, Value index) 760 { 761 setRaw(getValue()); 762 763 Value value = super.getObject(env, index); 764 765 setValue(getRawValue()); 766 767 return value; 768 } 769 770 773 public Value put(Value index, Value value) 774 { 775 setRaw(getValue()); 776 777 Value retValue = super.put(index, value); 778 779 setValue(getRawValue()); 780 781 return retValue; 782 } 783 784 787 public Value put(Value value) 788 { 789 setRaw(getValue()); 790 791 Value retValue = super.put(value); 792 793 setValue(getRawValue()); 794 795 return retValue; 796 } 797 798 801 public Value putRef() 802 { 803 setRaw(getValue()); 804 805 Value retValue = super.putRef(); 806 807 setValue(getRawValue()); 808 809 return retValue; 810 } 811 812 815 public Value remove(Value index) 816 { 817 return getValue().remove(index); 818 } 819 820 823 @Override 824 public Value getField(Env env, String index) 825 { 826 return getValue().getField(env, index); 827 } 828 829 832 public Value getFieldRef(Env env, String index) 833 { 834 setRaw(getValue()); 835 836 Value retValue = super.getFieldRef(env, index); 837 838 setValue(getRawValue()); 839 840 return retValue; 841 } 842 843 846 public Value getFieldArg(Env env, String index) 847 { 848 setRaw(getValue()); 849 850 Value retValue = super.getFieldArg(env, index); 851 852 setValue(getRawValue()); 853 854 return retValue; 855 } 856 857 860 public Value getFieldArray(Env env, String index) 861 { 862 setRaw(getValue()); 863 864 Value retValue = super.getFieldArray(env, index); 865 866 setValue(getRawValue()); 867 868 return retValue; 869 } 870 871 874 public Value getFieldObject(Env env, String index) 875 { 876 setRaw(getValue()); 877 878 Value retValue = super.getFieldObject(env, index); 879 880 setValue(getRawValue()); 881 882 return retValue; 883 } 884 885 888 public Value putField(Env env, String index, Value value) 889 { 890 setRaw(getValue()); 891 892 Value retValue = super.putField(env, index, value); 893 894 setValue(getRawValue()); 895 896 return retValue; 897 } 898 899 902 public void removeField(String index) 903 { 904 getValue().removeField(index); 905 } 906 907 911 public Object valuesToArray(Env env, Class elementType) 912 { 913 return getValue().valuesToArray(env, elementType); 914 } 915 916 919 @Override 920 public Value charValueAt(long index) 921 { 922 return getValue().charValueAt(index); 923 } 924 925 928 @Override 929 public Value setCharValueAt(long index, String value) 930 { 931 return getValue().setCharValueAt(index, value); 932 } 933 934 937 public boolean hasCurrent() 938 { 939 return getValue().hasCurrent(); 940 } 941 942 945 public Value key() 946 { 947 return getValue().key(); 948 } 949 950 953 public Value current() 954 { 955 return getValue().current(); 956 } 957 958 961 public Value next() 962 { 963 return getValue().next(); 964 } 965 966 969 public Value callMethod(Env env, String methodName, Expr []args) 970 { 971 return getValue().callMethod(env, methodName, args); 972 } 973 974 977 public Value callMethod(Env env, String methodName, Value []args) 978 { 979 return getValue().callMethod(env, methodName, args); 980 } 981 982 985 public Value callMethod(Env env, String methodName) 986 { 987 return getValue().callMethod(env, methodName); 988 } 989 990 993 public Value callMethod(Env env, String methodName, Value a0) 994 { 995 return getValue().callMethod(env, methodName, a0); 996 } 997 998 1001 public Value callMethod(Env env, String methodName, Value a0, Value a1) 1002 { 1003 return getValue().callMethod(env, methodName, a0, a1); 1004 } 1005 1006 1009 public Value callMethod(Env env, String methodName, 1010 Value a0, Value a1, Value a2) 1011 { 1012 return getValue().callMethod(env, methodName, a0, a1, a2); 1013 } 1014 1015 1018 public Value callMethod(Env env, String methodName, 1019 Value a0, Value a1, Value a2, Value a3) 1020 { 1021 return getValue().callMethod(env, methodName, a0, a1, a2, a3); 1022 } 1023 1024 1027 public Value callMethod(Env env, String methodName, 1028 Value a0, Value a1, Value a2, Value a3, Value a4) 1029 { 1030 return getValue().callMethod(env, methodName, a0, a1, a2, a3, a4); 1031 } 1032 1033 1036 public Value callMethodRef(Env env, String methodName, Expr []args) 1037 { 1038 return getValue().callMethodRef(env, methodName, args); 1039 } 1040 1041 1044 public Value callMethodRef(Env env, String methodName, Value []args) 1045 { 1046 return getValue().callMethodRef(env, methodName, args); 1047 } 1048 1049 1052 public Value callMethodRef(Env env, String methodName) 1053 { 1054 return getValue().callMethodRef(env, methodName); 1055 } 1056 1057 1060 public Value callMethodRef(Env env, String methodName, Value a0) 1061 { 1062 return getValue().callMethodRef(env, methodName, a0); 1063 } 1064 1065 1068 public Value callMethodRef(Env env, String methodName, Value a0, Value a1) 1069 { 1070 return getValue().callMethodRef(env, methodName, a0, a1); 1071 } 1072 1073 1076 public Value callMethodRef(Env env, String methodName, 1077 Value a0, Value a1, Value a2) 1078 { 1079 return getValue().callMethodRef(env, methodName, a0, a1, a2); 1080 } 1081 1082 1085 public Value callMethodRef(Env env, String methodName, 1086 Value a0, Value a1, Value a2, Value a3) 1087 { 1088 return getValue().callMethodRef(env, methodName, a0, a1, a2, a3); 1089 } 1090 1091 1094 public Value callMethodRef(Env env, String methodName, 1095 Value a0, Value a1, Value a2, Value a3, Value a4) 1096 { 1097 return getValue().callMethodRef(env, methodName, a0, a1, a2, a3, a4); 1098 } 1099 1100 1103 public Value callClassMethod(Env env, AbstractFunction fun, Value []args) 1104 { 1105 return getValue().callClassMethod(env, fun, args); 1106 } 1107 1108 1112 public void print(Env env) 1113 { 1114 getValue().print(env); 1115 } 1116 1117 1120 public void serialize(StringBuilder sb) 1121 { 1122 getValue().serialize(sb); 1123 } 1124 1125 public void varDumpImpl(Env env, 1126 WriteStream out, 1127 int depth, 1128 IdentityHashMap<Value, String > valueSet) 1129 throws IOException 1130 { 1131 out.print("&"); 1132 getValue().varDump(env, out, depth, valueSet); 1133 } 1134 1135 1139 public Object writeReplace() 1140 { 1141 return getValue(); 1142 } 1143} 1144 1145 | Popular Tags |