blob: 777c14d135d4428e50971ddc5e90d7fb64cc8c2a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Wed Apr 14 08:26:33 EDT 2004 -->
<TITLE>
Velocity 1.4 API: Class VMProxyArg
</TITLE>
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
</HEAD>
<BODY BGCOLOR="white">
<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_top"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/VMProxyArg.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/velocity/runtime/directive/VelocimacroProxy.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="VMProxyArg.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY: &nbsp;INNER&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.velocity.runtime.directive</FONT>
<BR>
Class VMProxyArg</H2>
<PRE>
java.lang.Object
|
+--<B>org.apache.velocity.runtime.directive.VMProxyArg</B>
</PRE>
<HR>
<DL>
<DT>public class <B>VMProxyArg</B><DT>extends java.lang.Object</DL>
<P>
The function of this class is to proxy for the calling parameter to the VM.
This class is designed to be used in conjunction with the VMContext class
which knows how to get and set values via it, rather than a simple get()
or put() from a hashtable-like object.
There is probably a lot of undocumented subtlty here, so step lightly.
We rely on the observation that an instance of this object has a constant
state throughout its lifetime as it's bound to the use-instance of a VM.
In other words, it's created by the VelocimacroProxy class, to represent
one of the arguments to a VM in a specific template. Since the template
is fixed (it's a file...), we don't have to worry that the args to the VM
will change. Yes, the VM will be called in other templates, or in other
places on the same template, bit those are different use-instances.
These arguments can be, in the lingo of
the parser, one of :
<ul>
<li> Reference() : anything that starts with '$'
<li> StringLiteral() : something like "$foo" or "hello geir"
<li> NumberLiteral() : 1, 2 etc
<li> IntegerRange() : [ 1..2] or [$foo .. $bar]
<li> ObjectArray() : [ "a", "b", "c"]
<li> True() : true
<li> False() : false
<li>Word() : not likely - this is simply allowed by the parser so we can have
syntactical sugar like #foreach($a in $b) where 'in' is the Word
</ul>
Now, Reference(), StringLit, NumberLit, IntRange, ObjArr are all dynamic things, so
their value is gotten with the use of a context. The others are constants. The trick
we rely on is that the context rather than this class really represents the
state of the argument. We are simply proxying for the thing, returning the proper value
when asked, and storing the proper value in the appropriate context when asked.
So, the hope here, so an instance of this can be shared across threads, is to
keep any dynamic stuff out of it, relying on trick of having the appropriate
context handed to us, and when a constant argument, letting VMContext punch that
into a local context.
<P>
<DL>
<DT><B>Version: </B><DD>$Id: VMProxyArg.java,v 1.13.4.1 2004/03/03 23:22:56 geirm Exp $</DD>
<DT><B>Author: </B><DD><a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a></DD>
</DL>
<HR>
<P>
<!-- ======== INNER CLASS SUMMARY ======== -->
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Field Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#callerReference">callerReference</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the reference we are proxying for</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#constant">constant</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by default, we are dynamic.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#contextReference">contextReference</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;our identity in the current context</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#GENERALSTATIC">GENERALSTATIC</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in the event our type is switched - we don't care really what it is</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html">SimpleNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#nodeTree">nodeTree</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the AST if the type is such that it's dynamic (ex.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#numTreeChildren">numTreeChildren</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number of children in our tree if a reference</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../../org/apache/velocity/runtime/RuntimeServices.html">RuntimeServices</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#rsvc">rsvc</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#singleLevelRef">singleLevelRef</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the 'de-dollared' reference if we are a ref but don't have a method attached</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#staticObject">staticObject</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reference for the object if we proxy for a static arg like an NumberLiteral</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#type">type</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type of arg I will have</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#usercontext">usercontext</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not used in this impl : carries the appropriate user context</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#VMProxyArg(org.apache.velocity.runtime.RuntimeServices, java.lang.String, java.lang.String, int)">VMProxyArg</A></B>(<A HREF="../../../../../org/apache/velocity/runtime/RuntimeServices.html">RuntimeServices</A>&nbsp;rs,
java.lang.String&nbsp;contextRef,
java.lang.String&nbsp;callerRef,
int&nbsp;t)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctor for current impl
takes the reference literal we are proxying for, the literal
the VM we are for is called with...</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#VMProxyArg(org.apache.velocity.runtime.directive.VMProxyArg, org.apache.velocity.context.InternalContextAdapter)">VMProxyArg</A></B>(<A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html">VMProxyArg</A>&nbsp;model,
<A HREF="../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</A>&nbsp;c)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not used in current impl
Constructor for alternate impl where VelProxy class would make new
VMProxyArg objects, and use this contructor to avoid reparsing the
reference args
that impl also had the VMProxyArg carry it's context</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#getCallerReference()">getCallerReference</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#getContextReference()">getContextReference</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html">SimpleNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#getNodeTree()">getNodeTree</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#getObject(org.apache.velocity.context.InternalContextAdapter)">getObject</A></B>(<A HREF="../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</A>&nbsp;context)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns the value of the reference.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#getStaticObject()">getStaticObject</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#getType()">getType</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#isConstant()">isConstant</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tells if arg we are poxying for is
dynamic or constant.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#setObject(org.apache.velocity.context.InternalContextAdapter, java.lang.Object)">setObject</A></B>(<A HREF="../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</A>&nbsp;context,
java.lang.Object&nbsp;o)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked by VMContext when Context.put() is called for a proxied reference.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html#setup()">setup</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;does the housekeeping upon creationg.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from class java.lang.Object</B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><clinit>, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Field Detail</B></FONT></TD>
</TR>
</TABLE>
<A NAME="type"><!-- --></A><H3>
type</H3>
<PRE>
private int <B>type</B></PRE>
<DL>
<DD>type of arg I will have</DL>
<HR>
<A NAME="nodeTree"><!-- --></A><H3>
nodeTree</H3>
<PRE>
private <A HREF="../../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html">SimpleNode</A> <B>nodeTree</B></PRE>
<DL>
<DD>the AST if the type is such that it's dynamic (ex. JJTREFERENCE )</DL>
<HR>
<A NAME="staticObject"><!-- --></A><H3>
staticObject</H3>
<PRE>
private java.lang.Object <B>staticObject</B></PRE>
<DL>
<DD>reference for the object if we proxy for a static arg like an NumberLiteral</DL>
<HR>
<A NAME="usercontext"><!-- --></A><H3>
usercontext</H3>
<PRE>
private <A HREF="../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</A> <B>usercontext</B></PRE>
<DL>
<DD>not used in this impl : carries the appropriate user context</DL>
<HR>
<A NAME="numTreeChildren"><!-- --></A><H3>
numTreeChildren</H3>
<PRE>
private int <B>numTreeChildren</B></PRE>
<DL>
<DD>number of children in our tree if a reference</DL>
<HR>
<A NAME="contextReference"><!-- --></A><H3>
contextReference</H3>
<PRE>
private java.lang.String <B>contextReference</B></PRE>
<DL>
<DD>our identity in the current context</DL>
<HR>
<A NAME="callerReference"><!-- --></A><H3>
callerReference</H3>
<PRE>
private java.lang.String <B>callerReference</B></PRE>
<DL>
<DD>the reference we are proxying for</DL>
<HR>
<A NAME="singleLevelRef"><!-- --></A><H3>
singleLevelRef</H3>
<PRE>
private java.lang.String <B>singleLevelRef</B></PRE>
<DL>
<DD>the 'de-dollared' reference if we are a ref but don't have a method attached</DL>
<HR>
<A NAME="constant"><!-- --></A><H3>
constant</H3>
<PRE>
private boolean <B>constant</B></PRE>
<DL>
<DD>by default, we are dynamic. safest</DL>
<HR>
<A NAME="GENERALSTATIC"><!-- --></A><H3>
GENERALSTATIC</H3>
<PRE>
private final int <B>GENERALSTATIC</B></PRE>
<DL>
<DD>in the event our type is switched - we don't care really what it is</DL>
<HR>
<A NAME="rsvc"><!-- --></A><H3>
rsvc</H3>
<PRE>
private <A HREF="../../../../../org/apache/velocity/runtime/RuntimeServices.html">RuntimeServices</A> <B>rsvc</B></PRE>
<DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TD>
</TR>
</TABLE>
<A NAME="VMProxyArg(org.apache.velocity.runtime.RuntimeServices, java.lang.String, java.lang.String, int)"><!-- --></A><H3>
VMProxyArg</H3>
<PRE>
public <B>VMProxyArg</B>(<A HREF="../../../../../org/apache/velocity/runtime/RuntimeServices.html">RuntimeServices</A>&nbsp;rs,
java.lang.String&nbsp;contextRef,
java.lang.String&nbsp;callerRef,
int&nbsp;t)</PRE>
<DL>
<DD>ctor for current impl
takes the reference literal we are proxying for, the literal
the VM we are for is called with...<DD><DL>
<DT><B>Parameters:</B><DD><CODE>contextRef</CODE> - reference arg in the definition of the VM, used in the VM<DD><CODE>callerRef</CODE> - reference used by the caller as an arg to the VM<DD><CODE>t</CODE> - type of arg : JJTREFERENCE, JJTTRUE, etc</DL>
</DD>
</DL>
<HR>
<A NAME="VMProxyArg(org.apache.velocity.runtime.directive.VMProxyArg, org.apache.velocity.context.InternalContextAdapter)"><!-- --></A><H3>
VMProxyArg</H3>
<PRE>
public <B>VMProxyArg</B>(<A HREF="../../../../../org/apache/velocity/runtime/directive/VMProxyArg.html">VMProxyArg</A>&nbsp;model,
<A HREF="../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</A>&nbsp;c)</PRE>
<DL>
<DD>not used in current impl
Constructor for alternate impl where VelProxy class would make new
VMProxyArg objects, and use this contructor to avoid reparsing the
reference args
that impl also had the VMProxyArg carry it's context</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>
<A NAME="isConstant()"><!-- --></A><H3>
isConstant</H3>
<PRE>
public boolean <B>isConstant</B>()</PRE>
<DL>
<DD>tells if arg we are poxying for is
dynamic or constant.<DD><DL>
<DT><B>Returns:</B><DD>true of constant, false otherwise</DL>
</DD>
</DL>
<HR>
<A NAME="setObject(org.apache.velocity.context.InternalContextAdapter, java.lang.Object)"><!-- --></A><H3>
setObject</H3>
<PRE>
public java.lang.Object <B>setObject</B>(<A HREF="../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</A>&nbsp;context,
java.lang.Object&nbsp;o)</PRE>
<DL>
<DD>Invoked by VMContext when Context.put() is called for a proxied reference.<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - context to modify via direct placement, or AST.setValue()<DD><CODE>o</CODE> - new value of reference<DT><B>Returns:</B><DD>Object currently null</DL>
</DD>
</DL>
<HR>
<A NAME="getObject(org.apache.velocity.context.InternalContextAdapter)"><!-- --></A><H3>
getObject</H3>
<PRE>
public java.lang.Object <B>getObject</B>(<A HREF="../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</A>&nbsp;context)</PRE>
<DL>
<DD>returns the value of the reference. Generally, this is only
called for dynamic proxies, as the static ones should have
been stored in the VMContext's localcontext store<DD><DL>
<DT><B>Parameters:</B><DD><CODE>context</CODE> - Context to use for getting current value<DT><B>Returns:</B><DD>Object value</DL>
</DD>
</DL>
<HR>
<A NAME="setup()"><!-- --></A><H3>
setup</H3>
<PRE>
private void <B>setup</B>()</PRE>
<DL>
<DD>does the housekeeping upon creationg. If a dynamic type
it needs to make an AST for further get()/set() operations
Anything else is constant.</DL>
<HR>
<A NAME="getCallerReference()"><!-- --></A><H3>
getCallerReference</H3>
<PRE>
public java.lang.String <B>getCallerReference</B>()</PRE>
<DL>
</DL>
<HR>
<A NAME="getContextReference()"><!-- --></A><H3>
getContextReference</H3>
<PRE>
public java.lang.String <B>getContextReference</B>()</PRE>
<DL>
</DL>
<HR>
<A NAME="getNodeTree()"><!-- --></A><H3>
getNodeTree</H3>
<PRE>
public <A HREF="../../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html">SimpleNode</A> <B>getNodeTree</B>()</PRE>
<DL>
</DL>
<HR>
<A NAME="getStaticObject()"><!-- --></A><H3>
getStaticObject</H3>
<PRE>
public java.lang.Object <B>getStaticObject</B>()</PRE>
<DL>
</DL>
<HR>
<A NAME="getType()"><!-- --></A><H3>
getType</H3>
<PRE>
public int <B>getType</B>()</PRE>
<DL>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/VMProxyArg.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/velocity/runtime/directive/VelocimacroProxy.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html" TARGET="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="VMProxyArg.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY: &nbsp;INNER&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL: &nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->
<HR>
Copyright © 2002 Apache Software Foundation. All Rights Reserved.
</BODY>
</HTML>