<!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 Thu Mar 19 08:48:29 PDT 2009 --> | |
<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
<TITLE> | |
CharStream (Apache Velocity 1.6.2 API) | |
</TITLE> | |
<META NAME="date" CONTENT="2009-03-19"> | |
<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="CharStream (Apache Velocity 1.6.2 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> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> | |
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CharStream.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> | |
</TR> | |
</TABLE> | |
</TD> | |
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> | |
</EM> | |
</TD> | |
</TR> | |
<TR> | |
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> | |
PREV CLASS | |
<A HREF="../../../../../org/apache/velocity/runtime/parser/JJTParserState.html" title="class in org.apache.velocity.runtime.parser"><B>NEXT CLASS</B></A></FONT></TD> | |
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> | |
<A HREF="../../../../../index.html?org/apache/velocity/runtime/parser/CharStream.html" target="_top"><B>FRAMES</B></A> | |
<A HREF="CharStream.html" target="_top"><B>NO FRAMES</B></A> | |
<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: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> | |
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> | |
DETAIL: FIELD | CONSTR | <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.parser</FONT> | |
<BR> | |
Interface CharStream</H2> | |
<DL> | |
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../../org/apache/velocity/runtime/parser/VelocityCharStream.html" title="class in org.apache.velocity.runtime.parser">VelocityCharStream</A></DD> | |
</DL> | |
<HR> | |
<DL> | |
<DT><PRE>public interface <B>CharStream</B></DL> | |
</PRE> | |
<P> | |
This interface describes a character stream that maintains line and | |
column number positions of the characters. It also has the capability | |
to backup the stream to some extent. An implementation of this | |
interface is used in the TokenManager implementation generated by | |
JavaCCParser. | |
All the methods except backup can be implemented in any fashion. backup | |
needs to be implemented correctly for the correct operation of the lexer. | |
Rest of the methods are all used to get information like line number, | |
column number and the String that constitutes a token and are not used | |
by the lexer. Hence their implementation won't affect the generated lexer's | |
operation. | |
<P> | |
<P> | |
<HR> | |
<P> | |
<!-- ========== 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> void</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#backup(int)">backup</A></B>(int amount)</CODE> | |
<BR> | |
Backs up the input stream by amount steps.</TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> char</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#BeginToken()">BeginToken</A></B>()</CODE> | |
<BR> | |
Returns the next character that marks the beginning of the next token.</TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> void</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#Done()">Done</A></B>()</CODE> | |
<BR> | |
The lexer calls this function to indicate that it is done with the stream | |
and hence implementations can free any resources held by this class.</TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> int</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#getBeginColumn()">getBeginColumn</A></B>()</CODE> | |
<BR> | |
Returns the column number of the first character for current token (being | |
matched after the last call to BeginTOken).</TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> int</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#getBeginLine()">getBeginLine</A></B>()</CODE> | |
<BR> | |
Returns the line number of the first character for current token (being | |
matched after the last call to BeginTOken).</TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> int</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#getColumn()">getColumn</A></B>()</CODE> | |
<BR> | |
<B>Deprecated.</B> <I></I> </TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> int</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#getEndColumn()">getEndColumn</A></B>()</CODE> | |
<BR> | |
Returns the column number of the last character for current token (being | |
matched after the last call to BeginTOken).</TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> int</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#getEndLine()">getEndLine</A></B>()</CODE> | |
<BR> | |
Returns the line number of the last character for current token (being | |
matched after the last call to BeginTOken).</TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> <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/runtime/parser/CharStream.html#GetImage()">GetImage</A></B>()</CODE> | |
<BR> | |
Returns a string made up of characters from the marked token beginning | |
to the current buffer position.</TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> int</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#getLine()">getLine</A></B>()</CODE> | |
<BR> | |
<B>Deprecated.</B> <I></I> </TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> char[]</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#GetSuffix(int)">GetSuffix</A></B>(int len)</CODE> | |
<BR> | |
Returns an array of characters that make up the suffix of length 'len' for | |
the currently matched token.</TD> | |
</TR> | |
<TR BGCOLOR="white" CLASS="TableRowColor"> | |
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> | |
<CODE> char</CODE></FONT></TD> | |
<TD><CODE><B><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#readChar()">readChar</A></B>()</CODE> | |
<BR> | |
Returns the next character from the selected input.</TD> | |
</TR> | |
</TABLE> | |
| |
<P> | |
<!-- ============ 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="readChar()"><!-- --></A><H3> | |
readChar</H3> | |
<PRE> | |
char <B>readChar</B>() | |
throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE> | |
<DL> | |
<DD>Returns the next character from the selected input. The method | |
of selecting the input is the responsibility of the class | |
implementing this interface. Can throw any java.io.IOException. | |
<P> | |
<DD><DL> | |
<DT><B>Throws:</B> | |
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="getColumn()"><!-- --></A><H3> | |
getColumn</H3> | |
<PRE> | |
int <B>getColumn</B>()</PRE> | |
<DL> | |
<DD><B>Deprecated.</B> <I></I> | |
<P> | |
<DD>Returns the column position of the character last read. | |
<P> | |
<DD><DL> | |
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#getEndColumn()"><CODE>getEndColumn()</CODE></A></DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="getLine()"><!-- --></A><H3> | |
getLine</H3> | |
<PRE> | |
int <B>getLine</B>()</PRE> | |
<DL> | |
<DD><B>Deprecated.</B> <I></I> | |
<P> | |
<DD>Returns the line number of the character last read. | |
<P> | |
<DD><DL> | |
<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/velocity/runtime/parser/CharStream.html#getEndLine()"><CODE>getEndLine()</CODE></A></DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="getEndColumn()"><!-- --></A><H3> | |
getEndColumn</H3> | |
<PRE> | |
int <B>getEndColumn</B>()</PRE> | |
<DL> | |
<DD>Returns the column number of the last character for current token (being | |
matched after the last call to BeginTOken). | |
<P> | |
<DD><DL> | |
</DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="getEndLine()"><!-- --></A><H3> | |
getEndLine</H3> | |
<PRE> | |
int <B>getEndLine</B>()</PRE> | |
<DL> | |
<DD>Returns the line number of the last character for current token (being | |
matched after the last call to BeginTOken). | |
<P> | |
<DD><DL> | |
</DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="getBeginColumn()"><!-- --></A><H3> | |
getBeginColumn</H3> | |
<PRE> | |
int <B>getBeginColumn</B>()</PRE> | |
<DL> | |
<DD>Returns the column number of the first character for current token (being | |
matched after the last call to BeginTOken). | |
<P> | |
<DD><DL> | |
</DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="getBeginLine()"><!-- --></A><H3> | |
getBeginLine</H3> | |
<PRE> | |
int <B>getBeginLine</B>()</PRE> | |
<DL> | |
<DD>Returns the line number of the first character for current token (being | |
matched after the last call to BeginTOken). | |
<P> | |
<DD><DL> | |
</DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="backup(int)"><!-- --></A><H3> | |
backup</H3> | |
<PRE> | |
void <B>backup</B>(int amount)</PRE> | |
<DL> | |
<DD>Backs up the input stream by amount steps. Lexer calls this method if it | |
had already read some characters, but could not use them to match a | |
(longer) token. So, they will be used again as the prefix of the next | |
token and it is the implemetation's responsibility to do this right. | |
<P> | |
<DD><DL> | |
</DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="BeginToken()"><!-- --></A><H3> | |
BeginToken</H3> | |
<PRE> | |
char <B>BeginToken</B>() | |
throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE> | |
<DL> | |
<DD>Returns the next character that marks the beginning of the next token. | |
All characters must remain in the buffer between two successive calls | |
to this method to implement backup correctly. | |
<P> | |
<DD><DL> | |
<DT><B>Throws:</B> | |
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="GetImage()"><!-- --></A><H3> | |
GetImage</H3> | |
<PRE> | |
<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>GetImage</B>()</PRE> | |
<DL> | |
<DD>Returns a string made up of characters from the marked token beginning | |
to the current buffer position. Implementations have the choice of returning | |
anything that they want to. For example, for efficiency, one might decide | |
to just return null, which is a valid implementation. | |
<P> | |
<DD><DL> | |
</DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="GetSuffix(int)"><!-- --></A><H3> | |
GetSuffix</H3> | |
<PRE> | |
char[] <B>GetSuffix</B>(int len)</PRE> | |
<DL> | |
<DD>Returns an array of characters that make up the suffix of length 'len' for | |
the currently matched token. This is used to build up the matched string | |
for use in actions in the case of MORE. A simple and inefficient | |
implementation of this is as follows : | |
{ | |
String t = GetImage(); | |
return t.substring(t.length() - len, t.length()).toCharArray(); | |
} | |
<P> | |
<DD><DL> | |
</DL> | |
</DD> | |
</DL> | |
<HR> | |
<A NAME="Done()"><!-- --></A><H3> | |
Done</H3> | |
<PRE> | |
void <B>Done</B>()</PRE> | |
<DL> | |
<DD>The lexer calls this function to indicate that it is done with the stream | |
and hence implementations can free any resources held by this class. | |
Again, the body of this function can be just empty and it will not | |
affect the lexer's operation. | |
<P> | |
<DD><DL> | |
</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> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> | |
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/CharStream.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> | |
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> | |
</TR> | |
</TABLE> | |
</TD> | |
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> | |
</EM> | |
</TD> | |
</TR> | |
<TR> | |
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> | |
PREV CLASS | |
<A HREF="../../../../../org/apache/velocity/runtime/parser/JJTParserState.html" title="class in org.apache.velocity.runtime.parser"><B>NEXT CLASS</B></A></FONT></TD> | |
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> | |
<A HREF="../../../../../index.html?org/apache/velocity/runtime/parser/CharStream.html" target="_top"><B>FRAMES</B></A> | |
<A HREF="CharStream.html" target="_top"><B>NO FRAMES</B></A> | |
<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: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> | |
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> | |
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD> | |
</TR> | |
</TABLE> | |
<A NAME="skip-navbar_bottom"></A> | |
<!-- ======== END OF BOTTOM NAVBAR ======= --> | |
<HR> | |
Copyright © 2000-2009 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved. | |
</BODY> | |
</HTML> |