Source Code Cross Referenced for RefVar.java in  » EJB-Server-resin-3.1.5 » quercus » com » caucho » quercus » env » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » EJB Server resin 3.1.5 » quercus » com.caucho.quercus.env 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


001:        /*
002:         * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
003:         *
004:         * This file is part of Resin(R) Open Source
005:         *
006:         * Each copy or derived work must preserve the copyright notice and this
007:         * notice unmodified.
008:         *
009:         * Resin Open Source is free software; you can redistribute it and/or modify
010:         * it under the terms of the GNU General Public License as published by
011:         * the Free Software Foundation; either version 2 of the License, or
012:         * (at your option) any later version.
013:         *
014:         * Resin Open Source is distributed in the hope that it will be useful,
015:         * but WITHOUT ANY WARRANTY; without even the implied warranty of
016:         * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
017:         * of NON-INFRINGEMENT.  See the GNU General Public License for more
018:         * details.
019:         *
020:         * You should have received a copy of the GNU General Public License
021:         * along with Resin Open Source; if not, write to the
022:         *
023:         *   Free Software Foundation, Inc.
024:         *   59 Temple Place, Suite 330
025:         *   Boston, MA 02111-1307  USA
026:         *
027:         * @author Scott Ferguson
028:         */
029:
030:        package com.caucho.quercus.env;
031:
032:        import com.caucho.quercus.expr.Expr;
033:        import com.caucho.quercus.program.AbstractFunction;
034:        import com.caucho.vfs.WriteStream;
035:
036:        import java.io.IOException;
037:        import java.io.Serializable;
038:        import java.util.IdentityHashMap;
039:        import java.util.Iterator;
040:        import java.util.Map;
041:
042:        /**
043:         * Represents a reference to a PHP variable in a function call.
044:         */
045:        public class RefVar extends Value implements  Serializable {
046:            private Var _var;
047:
048:            public RefVar(Var var) {
049:                _var = var;
050:            }
051:
052:            /**
053:             * Returns true for an implementation of a class
054:             */
055:            @Override
056:            public boolean isA(String name) {
057:                return _var.isA(name);
058:            }
059:
060:            /**
061:             * True for a long
062:             */
063:            @Override
064:            public boolean isLongConvertible() {
065:                return _var.isLongConvertible();
066:            }
067:
068:            /**
069:             * True to a double.
070:             */
071:            @Override
072:            public boolean isDoubleConvertible() {
073:                return _var.isDoubleConvertible();
074:            }
075:
076:            /**
077:             * True for a number
078:             */
079:            @Override
080:            public boolean isNumberConvertible() {
081:                return _var.isNumberConvertible();
082:            }
083:
084:            /**
085:             * Converts to a boolean.
086:             */
087:            @Override
088:            public boolean toBoolean() {
089:                return _var.toBoolean();
090:            }
091:
092:            /**
093:             * Converts to a long.
094:             */
095:            @Override
096:            public long toLong() {
097:                return _var.toLong();
098:            }
099:
100:            /**
101:             * Converts to a double.
102:             */
103:            @Override
104:            public double toDouble() {
105:                return _var.toDouble();
106:            }
107:
108:            /**
109:             * Converts to a string.
110:             * @param env
111:             */
112:            @Override
113:            public StringValue toString(Env env) {
114:                return _var.toString(env);
115:            }
116:
117:            /**
118:             * Converts to an object.
119:             */
120:            @Override
121:            public Value toObject(Env env) {
122:                return _var.toObject(env);
123:            }
124:
125:            /**
126:             * Converts to an object.
127:             */
128:            @Override
129:            public Object toJavaObject() {
130:                return _var.toJavaObject();
131:            }
132:
133:            /**
134:             * Converts to a raw value.
135:             */
136:            @Override
137:            public Value toValue() {
138:                return _var.toValue();
139:            }
140:
141:            /**
142:             * Returns true for an object.
143:             */
144:            @Override
145:            public boolean isObject() {
146:                return _var.isObject();
147:            }
148:
149:            /**
150:             * Returns true for an array.
151:             */
152:            @Override
153:            public boolean isArray() {
154:                return _var.isArray();
155:            }
156:
157:            /**
158:             * Copy the value.
159:             */
160:            @Override
161:            public Value copy() {
162:                // quercus/0d05
163:                return this ;
164:            }
165:
166:            /**
167:             * Converts to an argument value.
168:             */
169:            @Override
170:            public Value toArgValueReadOnly() {
171:                return _var;
172:            }
173:
174:            /**
175:             * Converts to an argument value.
176:             */
177:            @Override
178:            public Value toArgValue() {
179:                // php/343k
180:                return _var;
181:            }
182:
183:            /**
184:             * Converts to an argument value.
185:             */
186:            @Override
187:            public Value toRefValue() {
188:                return _var;
189:            }
190:
191:            /**
192:             * Converts to a variable
193:             */
194:            @Override
195:            public Var toVar() {
196:                return _var;
197:            }
198:
199:            /**
200:             * Converts to a reference variable
201:             */
202:            @Override
203:            public Var toRefVar() {
204:                return _var;
205:            }
206:
207:            /**
208:             * Negates the value.
209:             */
210:            @Override
211:            public Value neg() {
212:                return _var.neg();
213:            }
214:
215:            /**
216:             * Adds to the following value.
217:             */
218:            @Override
219:            public Value add(Value rValue) {
220:                return _var.add(rValue);
221:            }
222:
223:            /**
224:             * Adds to the following value.
225:             */
226:            @Override
227:            public Value add(long rValue) {
228:                return _var.add(rValue);
229:            }
230:
231:            /**
232:             * Pre-increment the following value.
233:             */
234:            @Override
235:            public Value preincr(int incr) {
236:                return _var.preincr(incr);
237:            }
238:
239:            /**
240:             * Post-increment the following value.
241:             */
242:            @Override
243:            public Value postincr(int incr) {
244:                return _var.postincr(incr);
245:            }
246:
247:            /**
248:             * Subtracts to the following value.
249:             */
250:            @Override
251:            public Value sub(Value rValue) {
252:                return _var.sub(rValue);
253:            }
254:
255:            /**
256:             * Subtracts to the following value.
257:             */
258:            @Override
259:            public Value sub(long rValue) {
260:                return _var.sub(rValue);
261:            }
262:
263:            /**
264:             * Multiplies to the following value.
265:             */
266:            @Override
267:            public Value mul(Value rValue) {
268:                return _var.mul(rValue);
269:            }
270:
271:            /**
272:             * Multiplies to the following value.
273:             */
274:            @Override
275:            public Value mul(long lValue) {
276:                return _var.mul(lValue);
277:            }
278:
279:            /**
280:             * Divides the following value.
281:             */
282:            @Override
283:            public Value div(Value rValue) {
284:                return _var.div(rValue);
285:            }
286:
287:            /**
288:             * Shifts left by the value.
289:             */
290:            @Override
291:            public Value lshift(Value rValue) {
292:                return _var.lshift(rValue);
293:            }
294:
295:            /**
296:             * Shifts right by the value.
297:             */
298:            @Override
299:            public Value rshift(Value rValue) {
300:                return _var.rshift(rValue);
301:            }
302:
303:            /**
304:             * Returns true for equality
305:             */
306:            @Override
307:            public boolean eql(Value rValue) {
308:                return _var.eql(rValue);
309:            }
310:
311:            /**
312:             * Returns the array/object size
313:             */
314:            @Override
315:            public int getSize() {
316:                return _var.getSize();
317:            }
318:
319:            @Override
320:            public Iterator<Map.Entry<Value, Value>> getIterator(Env env) {
321:                return _var.getIterator(env);
322:            }
323:
324:            @Override
325:            public Iterator<Value> getKeyIterator(Env env) {
326:                return _var.getKeyIterator(env);
327:            }
328:
329:            @Override
330:            public Iterator<Value> getValueIterator(Env env) {
331:                return _var.getValueIterator(env);
332:            }
333:
334:            /**
335:             * Returns the array ref.
336:             */
337:            @Override
338:            public Value get(Value index) {
339:                return _var.get(index);
340:            }
341:
342:            /**
343:             * Returns the array ref.
344:             */
345:            @Override
346:            public Value getRef(Value index) {
347:                return _var.getRef(index);
348:            }
349:
350:            /**
351:             * Returns the array ref.
352:             */
353:            @Override
354:            public Value put(Value index, Value value) {
355:                return _var.put(index, value);
356:            }
357:
358:            /**
359:             * Returns the array ref.
360:             */
361:            @Override
362:            public Value put(Value value) {
363:                return _var.put(value);
364:            }
365:
366:            /**
367:             * Returns the character at an index
368:             */
369:            /* XXX: need test first
370:            public Value charAt(long index)
371:            {
372:              return _ref.charAt(index);
373:            }
374:             */
375:
376:            /**
377:             * Evaluates a method.
378:             */
379:            @Override
380:            public Value callMethod(Env env, int hash, char[] name,
381:                    int nameLen, Expr[] args) {
382:                return _var.callMethod(env, hash, name, nameLen, args);
383:            }
384:
385:            /**
386:             * Evaluates a method.
387:             */
388:            @Override
389:            public Value callMethod(Env env, int hash, char[] name,
390:                    int nameLen, Value[] args) {
391:                return _var.callMethod(env, hash, name, nameLen, args);
392:            }
393:
394:            /**
395:             * Evaluates a method.
396:             */
397:            @Override
398:            public Value callMethod(Env env, int hash, char[] name, int nameLen) {
399:                return _var.callMethod(env, hash, name, nameLen);
400:            }
401:
402:            /**
403:             * Evaluates a method.
404:             */
405:            @Override
406:            public Value callMethod(Env env, int hash, char[] name,
407:                    int nameLen, Value a0) {
408:                return _var.callMethod(env, hash, name, nameLen, a0);
409:            }
410:
411:            /**
412:             * Evaluates a method.
413:             */
414:            @Override
415:            public Value callMethod(Env env, int hash, char[] name,
416:                    int nameLen, Value a0, Value a1) {
417:                return _var.callMethod(env, hash, name, nameLen, a0, a1);
418:            }
419:
420:            /**
421:             * Evaluates a method with 3 args.
422:             */
423:            @Override
424:            public Value callMethod(Env env, int hash, char[] name,
425:                    int nameLen, Value a0, Value a1, Value a2) {
426:                return _var.callMethod(env, hash, name, nameLen, a0, a1, a2);
427:            }
428:
429:            /**
430:             * Evaluates a method with 4 args.
431:             */
432:            @Override
433:            public Value callMethod(Env env, int hash, char[] name,
434:                    int nameLen, Value a0, Value a1, Value a2, Value a3) {
435:                return _var
436:                        .callMethod(env, hash, name, nameLen, a0, a1, a2, a3);
437:            }
438:
439:            /**
440:             * Evaluates a method with 5 args.
441:             */
442:            @Override
443:            public Value callMethod(Env env, int hash, char[] name,
444:                    int nameLen, Value a0, Value a1, Value a2, Value a3,
445:                    Value a4) {
446:                return _var.callMethod(env, hash, name, nameLen, a0, a1, a2,
447:                        a3, a4);
448:            }
449:
450:            /**
451:             * Evaluates a method.
452:             */
453:            @Override
454:            public Value callMethodRef(Env env, int hash, char[] name,
455:                    int nameLen, Expr[] args) {
456:                return _var.callMethodRef(env, hash, name, nameLen, args);
457:            }
458:
459:            /**
460:             * Evaluates a method.
461:             */
462:            @Override
463:            public Value callMethodRef(Env env, int hash, char[] name,
464:                    int nameLen, Value[] args) {
465:                return _var.callMethodRef(env, hash, name, nameLen, args);
466:            }
467:
468:            /**
469:             * Evaluates a method.
470:             */
471:            @Override
472:            public Value callMethodRef(Env env, int hash, char[] name,
473:                    int nameLen) {
474:                return _var.callMethodRef(env, hash, name, nameLen);
475:            }
476:
477:            /**
478:             * Evaluates a method.
479:             */
480:            @Override
481:            public Value callMethodRef(Env env, int hash, char[] name,
482:                    int nameLen, Value a0) {
483:                return _var.callMethodRef(env, hash, name, nameLen, a0);
484:            }
485:
486:            /**
487:             * Evaluates a method.
488:             */
489:            @Override
490:            public Value callMethodRef(Env env, int hash, char[] name,
491:                    int nameLen, Value a0, Value a1) {
492:                return _var.callMethodRef(env, hash, name, nameLen, a0, a1);
493:            }
494:
495:            /**
496:             * Evaluates a method with 3 args.
497:             */
498:            @Override
499:            public Value callMethodRef(Env env, int hash, char[] name,
500:                    int nameLen, Value a0, Value a1, Value a2) {
501:                return _var.callMethodRef(env, hash, name, nameLen, a0, a1, a2);
502:            }
503:
504:            /**
505:             * Evaluates a method with 4 args.
506:             */
507:            @Override
508:            public Value callMethodRef(Env env, int hash, char[] name,
509:                    int nameLen, Value a0, Value a1, Value a2, Value a3) {
510:                return _var.callMethodRef(env, hash, name, nameLen, a0, a1, a2,
511:                        a3);
512:            }
513:
514:            /**
515:             * Evaluates a method with 5 args.
516:             */
517:            @Override
518:            public Value callMethodRef(Env env, int hash, char[] name,
519:                    int nameLen, Value a0, Value a1, Value a2, Value a3,
520:                    Value a4) {
521:                return _var.callMethodRef(env, hash, name, nameLen, a0, a1, a2,
522:                        a3, a4);
523:            }
524:
525:            /**
526:             * Evaluates a method.
527:             */
528:            @Override
529:            public Value callClassMethod(Env env, AbstractFunction fun,
530:                    Value[] args) {
531:                return _var.callClassMethod(env, fun, args);
532:            }
533:
534:            /**
535:             * Prints the value.
536:             * @param env
537:             */
538:            @Override
539:            public void print(Env env) {
540:                _var.print(env);
541:            }
542:
543:            @Override
544:            public void varDumpImpl(Env env, WriteStream out, int depth,
545:                    IdentityHashMap<Value, String> valueSet) throws IOException {
546:                out.print("&");
547:                toValue().varDumpImpl(env, out, depth, valueSet);
548:            }
549:
550:            @Override
551:            protected void printRImpl(Env env, WriteStream out, int depth,
552:                    IdentityHashMap<Value, String> valueSet) throws IOException {
553:                toValue().printRImpl(env, out, depth, valueSet);
554:            }
555:
556:            //
557:            // Java Serialization
558:            //
559:
560:            public Object writeReplace() {
561:                return _var;
562:            }
563:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.