<!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.5.0_09) on Tue Mar 06 19:35:15 CET 2007 -->
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>
Runtime (Apache Velocity 1.5 API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.velocity.runtime.Runtime class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Runtime (Apache Velocity 1.5 API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= 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/Runtime.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/ParserPoolImpl.html" title="class in org.apache.velocity.runtime"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html" title="interface in org.apache.velocity.runtime"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/velocity/runtime/Runtime.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Runtime.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;FIELD&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;FIELD&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.runtime</FONT>
<BR>
Class Runtime</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.velocity.runtime.Runtime</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html" title="interface in org.apache.velocity.runtime">RuntimeConstants</A></DD>
</DL>
<HR>
<B>Deprecated.</B>&nbsp;<I>Use RuntimeInstance or RuntimeSingleton instead.</I>
<P>
<DL>
<DT><PRE>public class <B>Runtime</B><DT>extends <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html" title="interface in org.apache.velocity.runtime">RuntimeConstants</A></DL>
</PRE>

<P>
This is the Runtime system for Velocity. It is the
 single access point for all functionality in Velocity.
 It adheres to the mediator pattern and is the only
 structure that developers need to be familiar with
 in order to get Velocity to perform.

 The Runtime will also cooperate with external
 systems like Turbine. Runtime properties can
 set and then the Runtime is initialized.

 Turbine for example knows where the templates
 are to be loaded from, and where the velocity
 log file should be placed.

 So in the case of Velocity cooperating with Turbine
 the code might look something like the following:

 <pre>
 Runtime.setProperty(Runtime.FILE_RESOURCE_LOADER_PATH, templatePath);
 Runtime.setProperty(Runtime.RUNTIME_LOG, pathToVelocityLog);
 Runtime.init();
 </pre>

 <pre>
 -----------------------------------------------------------------------
 N O T E S  O N  R U N T I M E  I N I T I A L I Z A T I O N
 -----------------------------------------------------------------------
 Runtime.init()

 If Runtime.init() is called by itself the Runtime will
 initialize with a set of default values.
 -----------------------------------------------------------------------
 Runtime.init(String/Properties)

 In this case the default velocity properties are layed down
 first to provide a solid base, then any properties provided
 in the given properties object will override the corresponding
 default property.
 -----------------------------------------------------------------------
 </pre>
<P>

<P>
<DL>
<DT><B>Version:</B></DT>
  <DD>$Id: Runtime.java 463298 2006-10-12 16:10:32Z henning $</DD>
<DT><B>Author:</B></DT>
  <DD><a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>, <a href="mailto:jlb@houseofdistraction.com">Jeff Bowden</a>, <a href="mailto:geirm@optonline.net">Geir Magusson Jr.</a></DD>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/velocity/runtime/RuntimeInstance.html" title="class in org.apache.velocity.runtime"><CODE>RuntimeInstance</CODE></A>, 
<A HREF="../../../../org/apache/velocity/runtime/RuntimeSingleton.html" title="class in org.apache.velocity.runtime"><CODE>RuntimeSingleton</CODE></A></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>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.velocity.runtime.RuntimeConstants"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface org.apache.velocity.runtime.<A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html" title="interface in org.apache.velocity.runtime">RuntimeConstants</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#COUNTER_INITIAL_VALUE">COUNTER_INITIAL_VALUE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#COUNTER_NAME">COUNTER_NAME</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#DEBUG_PREFIX">DEBUG_PREFIX</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#DEFAULT_RUNTIME_DIRECTIVES">DEFAULT_RUNTIME_DIRECTIVES</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#DEFAULT_RUNTIME_PROPERTIES">DEFAULT_RUNTIME_PROPERTIES</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#ENCODING_DEFAULT">ENCODING_DEFAULT</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#ERROR_PREFIX">ERROR_PREFIX</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#ERRORMSG_END">ERRORMSG_END</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#ERRORMSG_START">ERRORMSG_START</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#EVENTHANDLER_INCLUDE">EVENTHANDLER_INCLUDE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#EVENTHANDLER_INVALIDREFERENCES">EVENTHANDLER_INVALIDREFERENCES</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#EVENTHANDLER_METHODEXCEPTION">EVENTHANDLER_METHODEXCEPTION</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#EVENTHANDLER_NULLSET">EVENTHANDLER_NULLSET</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#EVENTHANDLER_REFERENCEINSERTION">EVENTHANDLER_REFERENCEINSERTION</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#FILE_RESOURCE_LOADER_CACHE">FILE_RESOURCE_LOADER_CACHE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#FILE_RESOURCE_LOADER_PATH">FILE_RESOURCE_LOADER_PATH</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#INFO_PREFIX">INFO_PREFIX</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#INPUT_ENCODING">INPUT_ENCODING</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#INTERPOLATE_STRINGLITERALS">INTERPOLATE_STRINGLITERALS</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#INTROSPECTOR_RESTRICT_CLASSES">INTROSPECTOR_RESTRICT_CLASSES</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#INTROSPECTOR_RESTRICT_PACKAGES">INTROSPECTOR_RESTRICT_PACKAGES</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#MAX_NUMBER_LOOPS">MAX_NUMBER_LOOPS</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#NUMBER_OF_PARSERS">NUMBER_OF_PARSERS</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#OUTPUT_ENCODING">OUTPUT_ENCODING</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#PARSE_DIRECTIVE_MAXDEPTH">PARSE_DIRECTIVE_MAXDEPTH</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#PARSER_POOL_CLASS">PARSER_POOL_CLASS</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#PARSER_POOL_SIZE">PARSER_POOL_SIZE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RESOURCE_LOADER">RESOURCE_LOADER</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RESOURCE_MANAGER_CACHE_CLASS">RESOURCE_MANAGER_CACHE_CLASS</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RESOURCE_MANAGER_CLASS">RESOURCE_MANAGER_CLASS</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RESOURCE_MANAGER_DEFAULTCACHE_SIZE">RESOURCE_MANAGER_DEFAULTCACHE_SIZE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RESOURCE_MANAGER_LOGWHENFOUND">RESOURCE_MANAGER_LOGWHENFOUND</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RUNTIME_LOG">RUNTIME_LOG</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RUNTIME_LOG_ERROR_STACKTRACE">RUNTIME_LOG_ERROR_STACKTRACE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RUNTIME_LOG_INFO_STACKTRACE">RUNTIME_LOG_INFO_STACKTRACE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RUNTIME_LOG_LOGSYSTEM">RUNTIME_LOG_LOGSYSTEM</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RUNTIME_LOG_LOGSYSTEM_CLASS">RUNTIME_LOG_LOGSYSTEM_CLASS</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RUNTIME_LOG_REFERENCE_LOG_INVALID">RUNTIME_LOG_REFERENCE_LOG_INVALID</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#RUNTIME_LOG_WARN_STACKTRACE">RUNTIME_LOG_WARN_STACKTRACE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#SET_NULL_ALLOWED">SET_NULL_ALLOWED</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#TRACE_PREFIX">TRACE_PREFIX</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#UBERSPECT_CLASSNAME">UBERSPECT_CLASSNAME</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#UNKNOWN_PREFIX">UNKNOWN_PREFIX</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#VM_ARGUMENTS_STRICT">VM_ARGUMENTS_STRICT</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#VM_CONTEXT_LOCALSCOPE">VM_CONTEXT_LOCALSCOPE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#VM_LIBRARY">VM_LIBRARY</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#VM_LIBRARY_AUTORELOAD">VM_LIBRARY_AUTORELOAD</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#VM_LIBRARY_DEFAULT">VM_LIBRARY_DEFAULT</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#VM_MESSAGES_ON">VM_MESSAGES_ON</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#VM_PERM_ALLOW_INLINE">VM_PERM_ALLOW_INLINE</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#VM_PERM_ALLOW_INLINE_REPLACE_GLOBAL">VM_PERM_ALLOW_INLINE_REPLACE_GLOBAL</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#VM_PERM_INLINE_LOCAL">VM_PERM_INLINE_LOCAL</A>, <A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html#WARN_PREFIX">WARN_PREFIX</A></CODE></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/runtime/Runtime.html#Runtime()">Runtime</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;&nbsp;</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>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#addProperty(java.lang.String, java.lang.Object)">addProperty</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" 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" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Add a property to the configuration.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#addVelocimacro(java.lang.String, java.lang.String, java.lang.String[], java.lang.String)">addVelocimacro</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
               <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;macro,
               <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;argArray,
               <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;sourceTemplate)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Adds a new Velocimacro.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#clearProperty(java.lang.String)">clearProperty</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Clear the values pertaining to a particular
 property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#debug(java.lang.Object)">debug</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Log a debug message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#dumpVMNamespace(java.lang.String)">dumpVMNamespace</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;namespace)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;tells the vmFactory to dump the specified namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#error(java.lang.Object)">error</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Log an error message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getBoolean(java.lang.String, boolean)">getBoolean</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key,
           boolean&nbsp;def)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Boolean property accessor method to hide the configuration implementation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://jakarta.apache.org/commons/collections/api-release/org/apache/commons/collections/ExtendedProperties.html" title="class or interface in org.apache.commons.collections">ExtendedProperties</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getConfiguration()">getConfiguration</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Return the velocity runtime configuration object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/velocity/runtime/resource/ContentResource.html" title="class in org.apache.velocity.runtime.resource">ContentResource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getContent(java.lang.String)">getContent</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Returns a static content resource from the
 resource manager.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/velocity/runtime/resource/ContentResource.html" title="class in org.apache.velocity.runtime.resource">ContentResource</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getContent(java.lang.String, java.lang.String)">getContent</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
           <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;encoding)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Returns a static content resource from the
 resource manager.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getInt(java.lang.String)">getInt</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Int property accessor method to hide the configuration implementation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getInt(java.lang.String, int)">getInt</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key,
       int&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Int property accessor method to hide the configuration implementation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getLoaderNameForResource(java.lang.String)">getLoaderNameForResource</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;resourceName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Determines is a template exists, and returns name of the loader that
  provides it.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getProperty(java.lang.String)">getProperty</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Allows an external caller to get a property.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getString(java.lang.String)">getString</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;String property accessor method to hide the configuration implementation</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getString(java.lang.String, java.lang.String)">getString</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" 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/String.html" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;String property accessor method with default to hide the
 configuration implementation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/velocity/Template.html" title="class in org.apache.velocity">Template</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getTemplate(java.lang.String)">getTemplate</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Returns a <code>Template</code> from the resource manager.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/velocity/Template.html" title="class in org.apache.velocity">Template</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getTemplate(java.lang.String, java.lang.String)">getTemplate</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;encoding)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Returns a <code>Template</code> from the resource manager</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/velocity/runtime/directive/Directive.html" title="class in org.apache.velocity.runtime.directive">Directive</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#getVelocimacro(java.lang.String, java.lang.String)">getVelocimacro</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;vmName,
               <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;templateName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Returns the appropriate VelocimacroProxy object if strVMname
 is a valid current Velocimacro.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#info(java.lang.Object)">info</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Log an info message.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#init()">init</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;This is the primary initialization method in the Velocity
 Runtime.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#init(java.util.Properties)">init</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html" title="class or interface in java.util">Properties</A>&nbsp;p)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Initialize the Velocity Runtime with a Properties
 object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#init(java.lang.String)">init</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;configurationFile)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Initialize the Velocity Runtime with the name of
 ExtendedProperties object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#isVelocimacro(java.lang.String, java.lang.String)">isVelocimacro</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;vmName,
              <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;templateName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Checks to see if a VM exists</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html" title="class in org.apache.velocity.runtime.parser.node">SimpleNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#parse(java.io.Reader, java.lang.String)">parse</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Reader.html" title="class or interface in java.io">Reader</A>&nbsp;reader,
      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;templateName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Parse the input and return the root of
 AST node structure.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html" title="class in org.apache.velocity.runtime.parser.node">SimpleNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#parse(java.io.Reader, java.lang.String, boolean)">parse</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Reader.html" title="class or interface in java.io">Reader</A>&nbsp;reader,
      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;templateName,
      boolean&nbsp;dumpNamespace)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Parse the input and return the root of the AST node structure.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#setConfiguration(org.apache.commons.collections.ExtendedProperties)">setConfiguration</A></B>(<A HREF="http://jakarta.apache.org/commons/collections/api-release/org/apache/commons/collections/ExtendedProperties.html" title="class or interface in org.apache.commons.collections">ExtendedProperties</A>&nbsp;configuration)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Allow an external system to set an ExtendedProperties
 object to use.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#setProperty(java.lang.String, java.lang.Object)">setProperty</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" 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" title="class or interface in java.lang">Object</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Allows an external system to set a property in
 the Velocity Runtime.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#warn(java.lang.Object)">warn</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;Log a warning message.</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" 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#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#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#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#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#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#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#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#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#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#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#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= 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="Runtime()"><!-- --></A><H3>
Runtime</H3>
<PRE>
public <B>Runtime</B>()</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;</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="init()"><!-- --></A><H3>
init</H3>
<PRE>
public static void <B>init</B>()
                 throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>This is the primary initialization method in the Velocity
 Runtime. The systems that are setup/initialized here are
 as follows:

 <ul>
   <li>Logging System</li>
   <li>ResourceManager</li>
   <li>Parser Pool</li>
   <li>Global Cache</li>
   <li>Static Content Include System</li>
   <li>Velocimacro System</li>
 </ul>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE> - When init fails for any reason.</DL>
</DD>
</DL>
<HR>

<A NAME="setProperty(java.lang.String, java.lang.Object)"><!-- --></A><H3>
setProperty</H3>
<PRE>
public static void <B>setProperty</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" 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" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Allows an external system to set a property in
 the Velocity Runtime.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - The property key.<DD><CODE>value</CODE> - The property value.</DL>
</DD>
</DL>
<HR>

<A NAME="setConfiguration(org.apache.commons.collections.ExtendedProperties)"><!-- --></A><H3>
setConfiguration</H3>
<PRE>
public static void <B>setConfiguration</B>(<A HREF="http://jakarta.apache.org/commons/collections/api-release/org/apache/commons/collections/ExtendedProperties.html" title="class or interface in org.apache.commons.collections">ExtendedProperties</A>&nbsp;configuration)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Allow an external system to set an ExtendedProperties
 object to use. This is useful where the external
 system also uses the ExtendedProperties class and
 the velocity configuration is a subset of
 parent application's configuration. This is
 the case with Turbine.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>configuration</CODE> - A configuration object.</DL>
</DD>
</DL>
<HR>

<A NAME="addProperty(java.lang.String, java.lang.Object)"><!-- --></A><H3>
addProperty</H3>
<PRE>
public static void <B>addProperty</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" 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" title="class or interface in java.lang">Object</A>&nbsp;value)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Add a property to the configuration. If it already
 exists then the value stated here will be added
 to the configuration entry. For example, if

 resource.loader = file

 is already present in the configuration and you

 addProperty("resource.loader", "classpath")

 Then you will end up with a Vector like the
 following:

 ["file", "classpath"]
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - A property key.<DD><CODE>value</CODE> - The property value.</DL>
</DD>
</DL>
<HR>

<A NAME="clearProperty(java.lang.String)"><!-- --></A><H3>
clearProperty</H3>
<PRE>
public static void <B>clearProperty</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Clear the values pertaining to a particular
 property.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - Name of the property to clear.</DL>
</DD>
</DL>
<HR>

<A NAME="getProperty(java.lang.String)"><!-- --></A><H3>
getProperty</H3>
<PRE>
public static <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>getProperty</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Allows an external caller to get a property.  The calling
  routine is required to know the type, as this routine
  will return an Object, as that is what properties can be.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - property to return
<DT><B>Returns:</B><DD>The property value or null.</DL>
</DD>
</DL>
<HR>

<A NAME="init(java.util.Properties)"><!-- --></A><H3>
init</H3>
<PRE>
public static void <B>init</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html" title="class or interface in java.util">Properties</A>&nbsp;p)
                 throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Initialize the Velocity Runtime with a Properties
 object.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>p</CODE> - The properties used for initializiation.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE> - When a problem occurs during init.</DL>
</DD>
</DL>
<HR>

<A NAME="init(java.lang.String)"><!-- --></A><H3>
init</H3>
<PRE>
public static void <B>init</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;configurationFile)
                 throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Initialize the Velocity Runtime with the name of
 ExtendedProperties object.
 *
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>configurationFile</CODE> - The name of a properties file.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE> - When a problem occurs during init.</DL>
</DD>
</DL>
<HR>

<A NAME="parse(java.io.Reader, java.lang.String)"><!-- --></A><H3>
parse</H3>
<PRE>
public static <A HREF="../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html" title="class in org.apache.velocity.runtime.parser.node">SimpleNode</A> <B>parse</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Reader.html" title="class or interface in java.io">Reader</A>&nbsp;reader,
                               <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;templateName)
                        throws <A HREF="../../../../org/apache/velocity/runtime/parser/ParseException.html" title="class in org.apache.velocity.runtime.parser">ParseException</A></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Parse the input and return the root of
 AST node structure.
 <br><br>
  In the event that it runs out of parsers in the
  pool, it will create and let them be GC'd
  dynamically, logging that it has to do that.  This
  is considered an exceptional condition.  It is
  expected that the user will set the
  PARSER_POOL_SIZE property appropriately for their
  application.  We will revisit this.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>reader</CODE> - A reader returning the template input stream.<DD><CODE>templateName</CODE> - name of the template being parsed
<DT><B>Returns:</B><DD>The root node of an AST structure for the template input stream.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/velocity/runtime/parser/ParseException.html" title="class in org.apache.velocity.runtime.parser">ParseException</A></CODE> - When the input stream is not parsable.</DL>
</DD>
</DL>
<HR>

<A NAME="parse(java.io.Reader, java.lang.String, boolean)"><!-- --></A><H3>
parse</H3>
<PRE>
public static <A HREF="../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html" title="class in org.apache.velocity.runtime.parser.node">SimpleNode</A> <B>parse</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Reader.html" title="class or interface in java.io">Reader</A>&nbsp;reader,
                               <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;templateName,
                               boolean&nbsp;dumpNamespace)
                        throws <A HREF="../../../../org/apache/velocity/runtime/parser/ParseException.html" title="class in org.apache.velocity.runtime.parser">ParseException</A></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Parse the input and return the root of the AST node structure.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>reader</CODE> - A reader returning the template input stream.<DD><CODE>templateName</CODE> - name of the template being parsed<DD><CODE>dumpNamespace</CODE> - flag to dump the Velocimacro namespace for this template.
<DT><B>Returns:</B><DD>The root node of an AST structure for the template input stream.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/velocity/runtime/parser/ParseException.html" title="class in org.apache.velocity.runtime.parser">ParseException</A></CODE> - When the input stream is not parsable.<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/velocity/runtime/Runtime.html#parse(java.io.Reader, java.lang.String)"><CODE>parse(Reader, String)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getTemplate(java.lang.String)"><!-- --></A><H3>
getTemplate</H3>
<PRE>
public static <A HREF="../../../../org/apache/velocity/Template.html" title="class in org.apache.velocity">Template</A> <B>getTemplate</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)
                            throws <A HREF="../../../../org/apache/velocity/exception/ResourceNotFoundException.html" title="class in org.apache.velocity.exception">ResourceNotFoundException</A>,
                                   <A HREF="../../../../org/apache/velocity/exception/ParseErrorException.html" title="class in org.apache.velocity.exception">ParseErrorException</A>,
                                   <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Returns a <code>Template</code> from the resource manager.
 This method assumes that the character encoding of the
 template is set by the <code>input.encoding</code>
 property.  The default is "ISO-8859-1"
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The file name of the desired template.
<DT><B>Returns:</B><DD>The template.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/velocity/exception/ResourceNotFoundException.html" title="class in org.apache.velocity.exception">ResourceNotFoundException</A></CODE> - if template not found
          from any available source.
<DD><CODE><A HREF="../../../../org/apache/velocity/exception/ParseErrorException.html" title="class in org.apache.velocity.exception">ParseErrorException</A></CODE> - if template cannot be parsed due
          to syntax (or other) error.
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE> - if an error occurs in template initialization.</DL>
</DD>
</DL>
<HR>

<A NAME="getTemplate(java.lang.String, java.lang.String)"><!-- --></A><H3>
getTemplate</H3>
<PRE>
public static <A HREF="../../../../org/apache/velocity/Template.html" title="class in org.apache.velocity">Template</A> <B>getTemplate</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
                                   <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;encoding)
                            throws <A HREF="../../../../org/apache/velocity/exception/ResourceNotFoundException.html" title="class in org.apache.velocity.exception">ResourceNotFoundException</A>,
                                   <A HREF="../../../../org/apache/velocity/exception/ParseErrorException.html" title="class in org.apache.velocity.exception">ParseErrorException</A>,
                                   <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Returns a <code>Template</code> from the resource manager
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The  name of the desired template.<DD><CODE>encoding</CODE> - Character encoding of the template
<DT><B>Returns:</B><DD>The template.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/velocity/exception/ResourceNotFoundException.html" title="class in org.apache.velocity.exception">ResourceNotFoundException</A></CODE> - if template not found
          from any available source.
<DD><CODE><A HREF="../../../../org/apache/velocity/exception/ParseErrorException.html" title="class in org.apache.velocity.exception">ParseErrorException</A></CODE> - if template cannot be parsed due
          to syntax (or other) error.
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE> - if an error occurs in template initialization</DL>
</DD>
</DL>
<HR>

<A NAME="getContent(java.lang.String)"><!-- --></A><H3>
getContent</H3>
<PRE>
public static <A HREF="../../../../org/apache/velocity/runtime/resource/ContentResource.html" title="class in org.apache.velocity.runtime.resource">ContentResource</A> <B>getContent</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name)
                                  throws <A HREF="../../../../org/apache/velocity/exception/ResourceNotFoundException.html" title="class in org.apache.velocity.exception">ResourceNotFoundException</A>,
                                         <A HREF="../../../../org/apache/velocity/exception/ParseErrorException.html" title="class in org.apache.velocity.exception">ParseErrorException</A>,
                                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Returns a static content resource from the
 resource manager.  Uses the current value
 if INPUT_ENCODING as the character encoding.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name of content resource to get
<DT><B>Returns:</B><DD>parsed ContentResource object ready for use
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/velocity/exception/ResourceNotFoundException.html" title="class in org.apache.velocity.exception">ResourceNotFoundException</A></CODE> - if template not found
          from any available source.
<DD><CODE><A HREF="../../../../org/apache/velocity/exception/ParseErrorException.html" title="class in org.apache.velocity.exception">ParseErrorException</A></CODE> - if template cannot be parsed due
          to syntax (or other) error.
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE> - if an error occurs in template initialization</DL>
</DD>
</DL>
<HR>

<A NAME="getContent(java.lang.String, java.lang.String)"><!-- --></A><H3>
getContent</H3>
<PRE>
public static <A HREF="../../../../org/apache/velocity/runtime/resource/ContentResource.html" title="class in org.apache.velocity.runtime.resource">ContentResource</A> <B>getContent</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
                                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;encoding)
                                  throws <A HREF="../../../../org/apache/velocity/exception/ResourceNotFoundException.html" title="class in org.apache.velocity.exception">ResourceNotFoundException</A>,
                                         <A HREF="../../../../org/apache/velocity/exception/ParseErrorException.html" title="class in org.apache.velocity.exception">ParseErrorException</A>,
                                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Returns a static content resource from the
 resource manager.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name of content resource to get<DD><CODE>encoding</CODE> - Character encoding to use
<DT><B>Returns:</B><DD>parsed ContentResource object ready for use
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/velocity/exception/ResourceNotFoundException.html" title="class in org.apache.velocity.exception">ResourceNotFoundException</A></CODE> - if template not found
          from any available source.
<DD><CODE><A HREF="../../../../org/apache/velocity/exception/ParseErrorException.html" title="class in org.apache.velocity.exception">ParseErrorException</A></CODE> - if template cannot be parsed due
          to syntax (or other) error.
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE> - if an error occurs in template initialization</DL>
</DD>
</DL>
<HR>

<A NAME="getLoaderNameForResource(java.lang.String)"><!-- --></A><H3>
getLoaderNameForResource</H3>
<PRE>
public static <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getLoaderNameForResource</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;resourceName)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Determines is a template exists, and returns name of the loader that
  provides it.  This is a slightly less hokey way to support
  the Velocity.templateExists() utility method, which was broken
  when per-template encoding was introduced.  We can revisit this.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>resourceName</CODE> - Name of template or content resource
<DT><B>Returns:</B><DD>class name of loader than can provide it</DL>
</DD>
</DL>
<HR>

<A NAME="warn(java.lang.Object)"><!-- --></A><H3>
warn</H3>
<PRE>
public static void <B>warn</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Log a warning message.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>message</CODE> - message to log</DL>
</DD>
</DL>
<HR>

<A NAME="info(java.lang.Object)"><!-- --></A><H3>
info</H3>
<PRE>
public static void <B>info</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Log an info message.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>message</CODE> - message to log</DL>
</DD>
</DL>
<HR>

<A NAME="error(java.lang.Object)"><!-- --></A><H3>
error</H3>
<PRE>
public static void <B>error</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Log an error message.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>message</CODE> - message to log</DL>
</DD>
</DL>
<HR>

<A NAME="debug(java.lang.Object)"><!-- --></A><H3>
debug</H3>
<PRE>
public static void <B>debug</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Log a debug message.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>message</CODE> - message to log</DL>
</DD>
</DL>
<HR>

<A NAME="getString(java.lang.String, java.lang.String)"><!-- --></A><H3>
getString</H3>
<PRE>
public static <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getString</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" 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/String.html" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>String property accessor method with default to hide the
 configuration implementation.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - A property key.<DD><CODE>defaultValue</CODE> - default value to return if key not
               found in resource manager.
<DT><B>Returns:</B><DD>The property value of of key or default.</DL>
</DD>
</DL>
<HR>

<A NAME="getVelocimacro(java.lang.String, java.lang.String)"><!-- --></A><H3>
getVelocimacro</H3>
<PRE>
public static <A HREF="../../../../org/apache/velocity/runtime/directive/Directive.html" title="class in org.apache.velocity.runtime.directive">Directive</A> <B>getVelocimacro</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;vmName,
                                       <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;templateName)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Returns the appropriate VelocimacroProxy object if strVMname
 is a valid current Velocimacro.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>vmName</CODE> - Name of velocimacro requested<DD><CODE>templateName</CODE> - The template from which the macro is requested.
<DT><B>Returns:</B><DD>A VelocimacroProxy object for the macro.</DL>
</DD>
</DL>
<HR>

<A NAME="addVelocimacro(java.lang.String, java.lang.String, java.lang.String[], java.lang.String)"><!-- --></A><H3>
addVelocimacro</H3>
<PRE>
public static boolean <B>addVelocimacro</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
                                     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;macro,
                                     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;argArray,
                                     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;sourceTemplate)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Adds a new Velocimacro. Usually called by Macro only while parsing.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - Name of a new velocimacro.<DD><CODE>macro</CODE> - String form of the macro body.<DD><CODE>argArray</CODE> - Array of strings, containing the
                         #macro() arguments.  the 0th argument is the name.<DD><CODE>sourceTemplate</CODE> - The template from which the macro is requested.
<DT><B>Returns:</B><DD>boolean  True if added, false if rejected for some
                  reason (either parameters or permission settings)</DL>
</DD>
</DL>
<HR>

<A NAME="isVelocimacro(java.lang.String, java.lang.String)"><!-- --></A><H3>
isVelocimacro</H3>
<PRE>
public static boolean <B>isVelocimacro</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;vmName,
                                    <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;templateName)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Checks to see if a VM exists
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>vmName</CODE> - The name of velocimacro.<DD><CODE>templateName</CODE> - The template from which the macro is requested.
<DT><B>Returns:</B><DD>boolean  True if VM by that name exists, false if not</DL>
</DD>
</DL>
<HR>

<A NAME="dumpVMNamespace(java.lang.String)"><!-- --></A><H3>
dumpVMNamespace</H3>
<PRE>
public static boolean <B>dumpVMNamespace</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;namespace)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>tells the vmFactory to dump the specified namespace.  This is to support
  clearing the VM list when in inline-VM-local-scope mode
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespace</CODE> - The namespace to dump.
<DT><B>Returns:</B><DD>True if the namespace has been dumped.</DL>
</DD>
</DL>
<HR>

<A NAME="getString(java.lang.String)"><!-- --></A><H3>
getString</H3>
<PRE>
public static <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getString</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>String property accessor method to hide the configuration implementation
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - property key
<DT><B>Returns:</B><DD>value of key or null</DL>
</DD>
</DL>
<HR>

<A NAME="getInt(java.lang.String)"><!-- --></A><H3>
getInt</H3>
<PRE>
public static int <B>getInt</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Int property accessor method to hide the configuration implementation.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - A property key.
<DT><B>Returns:</B><DD>Integer value for this key.</DL>
</DD>
</DL>
<HR>

<A NAME="getInt(java.lang.String, int)"><!-- --></A><H3>
getInt</H3>
<PRE>
public static int <B>getInt</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key,
                         int&nbsp;defaultValue)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Int property accessor method to hide the configuration implementation.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - property key<DD><CODE>defaultValue</CODE> - default value
<DT><B>Returns:</B><DD>The integer value.</DL>
</DD>
</DL>
<HR>

<A NAME="getBoolean(java.lang.String, boolean)"><!-- --></A><H3>
getBoolean</H3>
<PRE>
public static boolean <B>getBoolean</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;key,
                                 boolean&nbsp;def)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Boolean property accessor method to hide the configuration implementation.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - property key<DD><CODE>def</CODE> - default default value if property not found
<DT><B>Returns:</B><DD>boolean  value of key or default value</DL>
</DD>
</DL>
<HR>

<A NAME="getConfiguration()"><!-- --></A><H3>
getConfiguration</H3>
<PRE>
public static <A HREF="http://jakarta.apache.org/commons/collections/api-release/org/apache/commons/collections/ExtendedProperties.html" title="class or interface in org.apache.commons.collections">ExtendedProperties</A> <B>getConfiguration</B>()</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<DD>Return the velocity runtime configuration object.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>ExtendedProperties configuration object which houses
                       the velocity runtime properties.</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/Runtime.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/ParserPoolImpl.html" title="class in org.apache.velocity.runtime"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/velocity/runtime/RuntimeConstants.html" title="interface in org.apache.velocity.runtime"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/velocity/runtime/Runtime.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Runtime.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;FIELD&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;FIELD&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 &copy; 2000-2007 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
