<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_04) on Mon Dec 15 08:38:53 PST 2008 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
ChainedInternalContextAdapter (Apache Velocity 1.6.1 API)
</TITLE>

<META NAME="date" CONTENT="2008-12-15">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="ChainedInternalContextAdapter (Apache Velocity 1.6.1 API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <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/ChainedInternalContextAdapter.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/context/AbstractContext.html" title="class in org.apache.velocity.context"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/velocity/context/Context.html" title="interface in org.apache.velocity.context"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/velocity/context/ChainedInternalContextAdapter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ChainedInternalContextAdapter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&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>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.velocity.context</FONT>
<BR>
Class ChainedInternalContextAdapter</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.velocity.context.ChainedInternalContextAdapter</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../org/apache/velocity/context/Context.html" title="interface in org.apache.velocity.context">Context</A>, <A HREF="../../../../org/apache/velocity/context/InternalContextAdapter.html" title="interface in org.apache.velocity.context">InternalContextAdapter</A>, <A HREF="../../../../org/apache/velocity/context/InternalEventContext.html" title="interface in org.apache.velocity.context">InternalEventContext</A>, <A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html" title="interface in org.apache.velocity.context">InternalWrapperContext</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../org/apache/velocity/context/EvaluateContext.html" title="class in org.apache.velocity.context">EvaluateContext</A>, <A HREF="../../../../org/apache/velocity/runtime/directive/Foreach.NullHolderContext.html" title="class in org.apache.velocity.runtime.directive">Foreach.NullHolderContext</A>, <A HREF="../../../../org/apache/velocity/context/ProxyVMContext.html" title="class in org.apache.velocity.context">ProxyVMContext</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>ChainedInternalContextAdapter</B><DT>extends <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../org/apache/velocity/context/InternalContextAdapter.html" title="interface in org.apache.velocity.context">InternalContextAdapter</A></DL>
</PRE>

<P>
This is an abstract internal-use-only context implementation to be
 used as a subclass for other internal-use-only contexts that wrap
 other internal-use-only contexts.

 We use this context to make it easier to chain an existing context
 as part of a new context implementation.  It just delegates everything
 to the inner/parent context. Subclasses then only need to override
 the methods relevant to them.
<P>

<P>
<DL>
<DT><B>Since:</B></DT>
  <DD>1.6</DD>
<DT><B>Version:</B></DT>
  <DD>$Id: ChainedInternalContextAdapter.java 685724 2008-08-13 23:12:12Z nbubna $</DD>
<DT><B>Author:</B></DT>
  <DD>Nathan Bubna</DD>
</DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../org/apache/velocity/context/InternalContextAdapter.html" title="interface in org.apache.velocity.context">InternalContextAdapter</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#innerContext">innerContext</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the parent context</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#ChainedInternalContextAdapter(org.apache.velocity.context.InternalContextAdapter)">ChainedInternalContextAdapter</A></B>(<A HREF="../../../../org/apache/velocity/context/InternalContextAdapter.html" title="interface in org.apache.velocity.context">InternalContextAdapter</A>&nbsp;inner)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CTOR, wraps an ICA</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/velocity/app/event/EventCartridge.html" title="class in org.apache.velocity.app.event">EventCartridge</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#attachEventCartridge(org.apache.velocity.app.event.EventCartridge)">attachEventCartridge</A></B>(<A HREF="../../../../org/apache/velocity/app/event/EventCartridge.html" title="class in org.apache.velocity.app.event">EventCartridge</A>&nbsp;ec)</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/context/ChainedInternalContextAdapter.html#containsKey(java.lang.Object)">containsKey</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates whether the specified key is in the context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#get(java.lang.String)">get</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves from parent context.</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/context/ChainedInternalContextAdapter.html#getAllowRendering()">getAllowRendering</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks to see if rendering should be allowed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/velocity/context/InternalContextAdapter.html" title="interface in org.apache.velocity.context">InternalContextAdapter</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getBaseContext()">getBaseContext</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the base full context impl.</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/context/ChainedInternalContextAdapter.html#getCurrentMacroCallDepth()">getCurrentMacroCallDepth</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the current macro call depth</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getCurrentMacroName()">getCurrentMacroName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the current macro name</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/resource/Resource.html" title="class in org.apache.velocity.runtime.resource">Resource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getCurrentResource()">getCurrentResource</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temporary fix to enable #include() to figure out
  current encoding.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getCurrentTemplateName()">getCurrentTemplateName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get the current template name</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/velocity/app/event/EventCartridge.html" title="class in org.apache.velocity.app.event">EventCartridge</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getEventCartridge()">getEventCartridge</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/context/Context.html" title="interface in org.apache.velocity.context">Context</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getInternalUserContext()">getInternalUserContext</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the inner / user context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getKeys()">getKeys</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get all the keys for the values in the context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getMacroLibraries()">getMacroLibraries</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the macro library list for the current template.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getMacroNameStack()">getMacroNameStack</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the macro name stack in form of an array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#getTemplateNameStack()">getTemplateNameStack</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the template name stack in form of an array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/velocity/util/introspection/IntrospectionCacheData.html" title="class in org.apache.velocity.util.introspection">IntrospectionCacheData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#icacheGet(java.lang.Object)">icacheGet</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns an IntrospectionCache Data (@see IntrospectionCacheData)
  object if exists for the key</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#icachePut(java.lang.Object, org.apache.velocity.util.introspection.IntrospectionCacheData)">icachePut</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key,
          <A HREF="../../../../org/apache/velocity/util/introspection/IntrospectionCacheData.html" title="class in org.apache.velocity.util.introspection">IntrospectionCacheData</A>&nbsp;o)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;places an IntrospectionCache Data (@see IntrospectionCacheData)
  element in the cache for specified key</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#localPut(java.lang.String, java.lang.Object)">localPut</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows callers to explicitly put objects in the local context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#popCurrentMacroName()">popCurrentMacroName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove the current macro name from stack</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#popCurrentTemplateName()">popCurrentTemplateName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove the current template name from stack</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#pushCurrentMacroName(java.lang.String)">pushCurrentMacroName</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the current macro name on top of stack</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#pushCurrentTemplateName(java.lang.String)">pushCurrentTemplateName</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set the current template name on top of stack</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#put(java.lang.String, java.lang.Object)">put</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
    <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Put method also stores values in parent context</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#remove(java.lang.Object)">remove</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the value associated with the specified key from the context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#setAllowRendering(boolean)">setAllowRendering</A></B>(boolean&nbsp;v)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether rendering is allowed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#setCurrentResource(org.apache.velocity.runtime.resource.Resource)">setCurrentResource</A></B>(<A HREF="../../../../org/apache/velocity/runtime/resource/Resource.html" title="class in org.apache.velocity.runtime.resource">Resource</A>&nbsp;r)</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;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/context/ChainedInternalContextAdapter.html#setMacroLibraries(java.util.List)">setMacroLibraries</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&nbsp;macroLibraries)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the macro library list for the current template.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="innerContext"><!-- --></A><H3>
innerContext</H3>
<PRE>
protected <A HREF="../../../../org/apache/velocity/context/InternalContextAdapter.html" title="interface in org.apache.velocity.context">InternalContextAdapter</A> <B>innerContext</B></PRE>
<DL>
<DD>the parent context
<P>
<DL>
</DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="ChainedInternalContextAdapter(org.apache.velocity.context.InternalContextAdapter)"><!-- --></A><H3>
ChainedInternalContextAdapter</H3>
<PRE>
public <B>ChainedInternalContextAdapter</B>(<A HREF="../../../../org/apache/velocity/context/InternalContextAdapter.html" title="interface in org.apache.velocity.context">InternalContextAdapter</A>&nbsp;inner)</PRE>
<DL>
<DD>CTOR, wraps an ICA
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>inner</CODE> - context</DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getInternalUserContext()"><!-- --></A><H3>
getInternalUserContext</H3>
<PRE>
public <A HREF="../../../../org/apache/velocity/context/Context.html" title="interface in org.apache.velocity.context">Context</A> <B>getInternalUserContext</B>()</PRE>
<DL>
<DD>Return the inner / user context.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html#getInternalUserContext()">getInternalUserContext</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html" title="interface in org.apache.velocity.context">InternalWrapperContext</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The inner / user context.</DL>
</DD>
</DL>
<HR>

<A NAME="getBaseContext()"><!-- --></A><H3>
getBaseContext</H3>
<PRE>
public <A HREF="../../../../org/apache/velocity/context/InternalContextAdapter.html" title="interface in org.apache.velocity.context">InternalContextAdapter</A> <B>getBaseContext</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html#getBaseContext()">InternalWrapperContext</A></CODE></B></DD>
<DD>Returns the base full context impl.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html#getBaseContext()">getBaseContext</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html" title="interface in org.apache.velocity.context">InternalWrapperContext</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The base full context impl.<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html#getBaseContext()"><CODE>InternalWrapperContext.getBaseContext()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="get(java.lang.String)"><!-- --></A><H3>
get</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>get</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
<DL>
<DD>Retrieves from parent context.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/Context.html#get(java.lang.String)">get</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/Context.html" title="interface in org.apache.velocity.context">Context</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - name of item to get
<DT><B>Returns:</B><DD>stored object or null</DL>
</DD>
</DL>
<HR>

<A NAME="put(java.lang.String, java.lang.Object)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>put</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
                  <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
<DL>
<DD>Put method also stores values in parent context
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/Context.html#put(java.lang.String, java.lang.Object)">put</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/Context.html" title="interface in org.apache.velocity.context">Context</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - name of item to set<DD><CODE>value</CODE> - object to set to key
<DT><B>Returns:</B><DD>old stored object</DL>
</DD>
</DL>
<HR>

<A NAME="containsKey(java.lang.Object)"><!-- --></A><H3>
containsKey</H3>
<PRE>
public boolean <B>containsKey</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/velocity/context/Context.html#containsKey(java.lang.Object)">Context</A></CODE></B></DD>
<DD>Indicates whether the specified key is in the context.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/Context.html#containsKey(java.lang.Object)">containsKey</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/Context.html" title="interface in org.apache.velocity.context">Context</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - The key to look for.
<DT><B>Returns:</B><DD>Whether the key is in the context.<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/velocity/context/Context.html#containsKey(java.lang.Object)"><CODE>Context.containsKey(java.lang.Object)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getKeys()"><!-- --></A><H3>
getKeys</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getKeys</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/velocity/context/Context.html#getKeys()">Context</A></CODE></B></DD>
<DD>Get all the keys for the values in the context.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/Context.html#getKeys()">getKeys</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/Context.html" title="interface in org.apache.velocity.context">Context</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>All the keys for the values in the context.<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/velocity/context/Context.html#getKeys()"><CODE>Context.getKeys()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="remove(java.lang.Object)"><!-- --></A><H3>
remove</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>remove</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/velocity/context/Context.html#remove(java.lang.Object)">Context</A></CODE></B></DD>
<DD>Removes the value associated with the specified key from the context.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/Context.html#remove(java.lang.Object)">remove</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/Context.html" title="interface in org.apache.velocity.context">Context</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - The name of the value to remove.
<DT><B>Returns:</B><DD>The value that the key was mapped to, or <code>null</code>
            if unmapped.<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/velocity/context/Context.html#remove(java.lang.Object)"><CODE>Context.remove(java.lang.Object)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="pushCurrentTemplateName(java.lang.String)"><!-- --></A><H3>
pushCurrentTemplateName</H3>
<PRE>
public void <B>pushCurrentTemplateName</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</PRE>
<DL>
<DD>set the current template name on top of stack
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>s</CODE> - current template name<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.pushCurrentTemplateName(java.lang.String)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="popCurrentTemplateName()"><!-- --></A><H3>
popCurrentTemplateName</H3>
<PRE>
public void <B>popCurrentTemplateName</B>()</PRE>
<DL>
<DD>remove the current template name from stack
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.popCurrentTemplateName()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getCurrentTemplateName()"><!-- --></A><H3>
getCurrentTemplateName</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getCurrentTemplateName</B>()</PRE>
<DL>
<DD>get the current template name
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>String current template name<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.getCurrentTemplateName()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getTemplateNameStack()"><!-- --></A><H3>
getTemplateNameStack</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getTemplateNameStack</B>()</PRE>
<DL>
<DD>Returns the template name stack in form of an array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>Object[] with the template name stack contents.<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.getTemplateNameStack()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="pushCurrentMacroName(java.lang.String)"><!-- --></A><H3>
pushCurrentMacroName</H3>
<PRE>
public void <B>pushCurrentMacroName</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;s)</PRE>
<DL>
<DD>set the current macro name on top of stack
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>s</CODE> - current macro name<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.pushCurrentMacroName(java.lang.String)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="popCurrentMacroName()"><!-- --></A><H3>
popCurrentMacroName</H3>
<PRE>
public void <B>popCurrentMacroName</B>()</PRE>
<DL>
<DD>remove the current macro name from stack
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.popCurrentMacroName()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getCurrentMacroName()"><!-- --></A><H3>
getCurrentMacroName</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getCurrentMacroName</B>()</PRE>
<DL>
<DD>get the current macro name
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>String current macro name<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.getCurrentMacroName()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getCurrentMacroCallDepth()"><!-- --></A><H3>
getCurrentMacroCallDepth</H3>
<PRE>
public int <B>getCurrentMacroCallDepth</B>()</PRE>
<DL>
<DD>get the current macro call depth
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>int current macro call depth<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.getCurrentMacroCallDepth()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getMacroNameStack()"><!-- --></A><H3>
getMacroNameStack</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>[] <B>getMacroNameStack</B>()</PRE>
<DL>
<DD>Returns the macro name stack in form of an array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>Object[] with the macro name stack contents.<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.getMacroNameStack()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="icacheGet(java.lang.Object)"><!-- --></A><H3>
icacheGet</H3>
<PRE>
public <A HREF="../../../../org/apache/velocity/util/introspection/IntrospectionCacheData.html" title="class in org.apache.velocity.util.introspection">IntrospectionCacheData</A> <B>icacheGet</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key)</PRE>
<DL>
<DD>returns an IntrospectionCache Data (@see IntrospectionCacheData)
  object if exists for the key
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - key to find in cache
<DT><B>Returns:</B><DD>cache object<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.icacheGet(java.lang.Object)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="localPut(java.lang.String, java.lang.Object)"><!-- --></A><H3>
localPut</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>localPut</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
                       <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html#localPut(java.lang.String, java.lang.Object)">InternalWrapperContext</A></CODE></B></DD>
<DD>Allows callers to explicitly put objects in the local context.
 Objects added to the context through this method always end up
 in the top-level context of possible wrapped contexts.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html#localPut(java.lang.String, java.lang.Object)">localPut</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html" title="interface in org.apache.velocity.context">InternalWrapperContext</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - name of item to set.<DD><CODE>value</CODE> - object to set to key.
<DT><B>Returns:</B><DD>old stored object<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/velocity/context/InternalWrapperContext.html#localPut(java.lang.String, java.lang.Object)"><CODE>InternalWrapperContext.localPut(java.lang.String,java.lang.Object)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="icachePut(java.lang.Object, org.apache.velocity.util.introspection.IntrospectionCacheData)"><!-- --></A><H3>
icachePut</H3>
<PRE>
public void <B>icachePut</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;key,
                      <A HREF="../../../../org/apache/velocity/util/introspection/IntrospectionCacheData.html" title="class in org.apache.velocity.util.introspection">IntrospectionCacheData</A>&nbsp;o)</PRE>
<DL>
<DD>places an IntrospectionCache Data (@see IntrospectionCacheData)
  element in the cache for specified key
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - key<DD><CODE>o</CODE> - IntrospectionCacheData object to place in cache<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.icachePut(java.lang.Object, org.apache.velocity.util.introspection.IntrospectionCacheData)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getAllowRendering()"><!-- --></A><H3>
getAllowRendering</H3>
<PRE>
public boolean <B>getAllowRendering</B>()</PRE>
<DL>
<DD>Checks to see if rendering should be allowed.  Defaults to true but will
 return false after a #stop directive.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if rendering is allowed, false if no rendering should occur<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.getAllowRendering()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="setAllowRendering(boolean)"><!-- --></A><H3>
setAllowRendering</H3>
<PRE>
public void <B>setAllowRendering</B>(boolean&nbsp;v)</PRE>
<DL>
<DD>Set whether rendering is allowed.  Defaults to true but is set to
 false after a #stop directive.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.setAllowRendering(boolean)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="setMacroLibraries(java.util.List)"><!-- --></A><H3>
setMacroLibraries</H3>
<PRE>
public void <B>setMacroLibraries</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&nbsp;macroLibraries)</PRE>
<DL>
<DD>Set the macro library list for the current template.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>macroLibraries</CODE> - list of macro libraries to set<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.setMacroLibraries(List)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getMacroLibraries()"><!-- --></A><H3>
getMacroLibraries</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A> <B>getMacroLibraries</B>()</PRE>
<DL>
<DD>Get the macro library list for the current template.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>List of macro library names<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.getMacroLibraries()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="attachEventCartridge(org.apache.velocity.app.event.EventCartridge)"><!-- --></A><H3>
attachEventCartridge</H3>
<PRE>
public <A HREF="../../../../org/apache/velocity/app/event/EventCartridge.html" title="class in org.apache.velocity.app.event">EventCartridge</A> <B>attachEventCartridge</B>(<A HREF="../../../../org/apache/velocity/app/event/EventCartridge.html" title="class in org.apache.velocity.app.event">EventCartridge</A>&nbsp;ec)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/InternalEventContext.html#attachEventCartridge(org.apache.velocity.app.event.EventCartridge)">attachEventCartridge</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/InternalEventContext.html" title="interface in org.apache.velocity.context">InternalEventContext</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The old EventCartridge.<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/velocity/context/InternalEventContext.html#attachEventCartridge(org.apache.velocity.app.event.EventCartridge)"><CODE>InternalEventContext.attachEventCartridge(org.apache.velocity.app.event.EventCartridge)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getEventCartridge()"><!-- --></A><H3>
getEventCartridge</H3>
<PRE>
public <A HREF="../../../../org/apache/velocity/app/event/EventCartridge.html" title="class in org.apache.velocity.app.event">EventCartridge</A> <B>getEventCartridge</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/velocity/context/InternalEventContext.html#getEventCartridge()">getEventCartridge</A></CODE> in interface <CODE><A HREF="../../../../org/apache/velocity/context/InternalEventContext.html" title="interface in org.apache.velocity.context">InternalEventContext</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The current EventCartridge.<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/velocity/context/InternalEventContext.html#getEventCartridge()"><CODE>InternalEventContext.getEventCartridge()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setCurrentResource(org.apache.velocity.runtime.resource.Resource)"><!-- --></A><H3>
setCurrentResource</H3>
<PRE>
public void <B>setCurrentResource</B>(<A HREF="../../../../org/apache/velocity/runtime/resource/Resource.html" title="class in org.apache.velocity.runtime.resource">Resource</A>&nbsp;r)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.setCurrentResource(org.apache.velocity.runtime.resource.Resource)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getCurrentResource()"><!-- --></A><H3>
getCurrentResource</H3>
<PRE>
public <A HREF="../../../../org/apache/velocity/runtime/resource/Resource.html" title="class in org.apache.velocity.runtime.resource">Resource</A> <B>getCurrentResource</B>()</PRE>
<DL>
<DD>temporary fix to enable #include() to figure out
  current encoding.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The current resource.<DT><B>See Also:</B><DD><CODE>InternalHousekeepingContext.getCurrentResource()</CODE></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <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/ChainedInternalContextAdapter.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/context/AbstractContext.html" title="class in org.apache.velocity.context"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/velocity/context/Context.html" title="interface in org.apache.velocity.context"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/velocity/context/ChainedInternalContextAdapter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ChainedInternalContextAdapter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&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>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2000-2008 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
