<!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_15) on Thu Jul 17 13:34:36 CDT 2008 -->
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>
Lit (OpenJPA 1.0.3 API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.openjpa.jdbc.kernel.exps.Lit class">

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

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Lit (OpenJPA 1.0.3 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/Lit.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/openjpa/jdbc/kernel/exps/JDBCWildcardMatch.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?org/apache/openjpa/jdbc/kernel/exps/Lit.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Lit.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;<A HREF="#nested_class_summary">NESTED</A>&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.openjpa.jdbc.kernel.exps</FONT>
<BR>
Class Lit</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/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.openjpa.jdbc.kernel.exps.Lit</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Constant.html" title="interface in org.apache.openjpa.kernel.exps">Constant</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>Lit</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A></DL>
</PRE>

<P>
A literal value in a filter.
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Abe White</DD>
</DL>
<HR>

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->

<A NAME="nested_class_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>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Const.ConstExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">Const.ConstExpState</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant expression state.</TD>
</TR>
</TABLE>
&nbsp;<!-- =========== 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 static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/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/openjpa/jdbc/kernel/exps/Lit.html#FALSE">FALSE</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>protected static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/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/openjpa/jdbc/kernel/exps/Lit.html#TRUE">TRUE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.kernel.exps.Literal"><!-- --></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.openjpa.kernel.exps.<A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#TYPE_BOOLEAN">TYPE_BOOLEAN</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#TYPE_NUMBER">TYPE_NUMBER</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#TYPE_SQ_STRING">TYPE_SQ_STRING</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#TYPE_STRING">TYPE_STRING</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#TYPE_UNKNOWN">TYPE_UNKNOWN</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.jdbc.kernel.exps.Val"><!-- --></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.openjpa.jdbc.kernel.exps.<A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#FORCE_OUTER">FORCE_OUTER</A>, <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#JOIN_REL">JOIN_REL</A>, <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#NULL_CMP">NULL_CMP</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/openjpa/jdbc/kernel/exps/Lit.html#Lit(java.lang.Object, int)">Lit</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;val,
    int&nbsp;ptype)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor.</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;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Lit.html#acceptVisit(org.apache.openjpa.kernel.exps.ExpressionVisitor)">acceptVisit</A></B>(<A HREF="../../../../../../org/apache/openjpa/kernel/exps/ExpressionVisitor.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionVisitor</A>&nbsp;visitor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Accept a visit from a tree visitor.</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/openjpa/jdbc/kernel/exps/Lit.html#appendIsEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendIsEmpty</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
              <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
              <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
              <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append the SQL testing whether this value is empty to the given buffer.</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/openjpa/jdbc/kernel/exps/Lit.html#appendIsNotEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendIsNotEmpty</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                 <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                 <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                 <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append the SQL testing whether this value is not empty to
 the given buffer.</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/openjpa/jdbc/kernel/exps/Lit.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendIsNotNull</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append the SQL testing whether this value is not null to the given
 buffer.</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/openjpa/jdbc/kernel/exps/Lit.html#appendIsNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendIsNull</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
             <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
             <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
             <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append the SQL testing whether this value is null to the given buffer.</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/openjpa/jdbc/kernel/exps/Lit.html#appendSize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendSize</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
           <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
           <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
           <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append the SQL checking the size of this value.</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/openjpa/jdbc/kernel/exps/Lit.html#appendTo(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer, int)">appendTo</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
         <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
         <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
         <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql,
         int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append the <code>index</code>th SQL element to the given buffer.</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/openjpa/jdbc/kernel/exps/Lit.html#calculateValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.kernel.exps.Val, org.apache.openjpa.jdbc.kernel.exps.ExpState)">calculateValue</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
               <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
               <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
               <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>&nbsp;other,
               <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;otherState)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculate and cache the SQL for this value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Lit.html#getMetaData()">getMetaData</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return any associated persistent type.</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/openjpa/jdbc/kernel/exps/Lit.html#getParseType()">getParseType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The type the literal was parsed as.</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.5.0/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/openjpa/jdbc/kernel/exps/Lit.html#getSQLValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)">getSQLValue</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
            <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
            <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the SQL value of this constant.</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.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Lit.html#getType()">getType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the expected type for this value, or <code>Object</code> if
 the type is unknown.</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.5.0/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/openjpa/jdbc/kernel/exps/Lit.html#getValue()">getValue</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The value of this literal.</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.5.0/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/openjpa/jdbc/kernel/exps/Lit.html#getValue(org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)">getValue</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
         <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the value of this constant.</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.5.0/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/openjpa/jdbc/kernel/exps/Lit.html#getValue(java.lang.Object[])">getValue</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the value for this constant given the specified parameters.</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/openjpa/jdbc/kernel/exps/Lit.html#groupBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)">groupBy</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
        <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
        <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group by this value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Lit.html#initialize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, int)">initialize</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
           <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
           int&nbsp;flags)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize the value.</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/openjpa/jdbc/kernel/exps/Lit.html#isAggregate()">isAggregate</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if this value is an aggregate.</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/openjpa/jdbc/kernel/exps/Lit.html#isSQLValueNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)">isSQLValueNull</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
               <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
               <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if this constant's SQL value is equivalent to NULL.</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/openjpa/jdbc/kernel/exps/Lit.html#isVariable()">isVariable</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if this value is a variable.</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/openjpa/jdbc/kernel/exps/Lit.html#isXPath()">isXPath</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if this value is an XML Path.</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/openjpa/jdbc/kernel/exps/Lit.html#length(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)">length</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
       <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
       <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the number of SQL elements in this value.</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.5.0/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/openjpa/jdbc/kernel/exps/Lit.html#load(org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.Result)">load</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
     <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
     <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>&nbsp;res)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the data for this value.</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/openjpa/jdbc/kernel/exps/Lit.html#orderBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)">orderBy</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
        <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
        <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
        boolean&nbsp;asc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Order by this value.</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/openjpa/jdbc/kernel/exps/Lit.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)">select</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
       <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
       <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
       boolean&nbsp;pks)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select the data for this value.</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/openjpa/jdbc/kernel/exps/Lit.html#selectColumns(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)">selectColumns</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
              <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
              <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
              boolean&nbsp;pks)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select just the columns for this value.</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/openjpa/jdbc/kernel/exps/Lit.html#setImplicitType(java.lang.Class)">setImplicitType</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;type)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the implicit type of the value, based on how it is used in the
 filter.</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/openjpa/jdbc/kernel/exps/Lit.html#setMetaData(org.apache.openjpa.meta.ClassMetaData)">setMetaData</A></B>(<A HREF="../../../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Associate a persistent type with this value.</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/openjpa/jdbc/kernel/exps/Lit.html#setValue(java.lang.Object)">setValue</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;val)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The value of this literal.</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.5.0/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/openjpa/jdbc/kernel/exps/Lit.html#toDataStoreValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, java.lang.Object)">toDataStoreValue</A></B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                 <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                 <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;val)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the datastore value of the given object in the context of this
 value.</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.5.0/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.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/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.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/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.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.openjpa.kernel.exps.Value"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface org.apache.openjpa.kernel.exps.<A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#acceptVisit(org.apache.openjpa.kernel.exps.ExpressionVisitor)">acceptVisit</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#getMetaData()">getMetaData</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#isAggregate()">isAggregate</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#isVariable()">isVariable</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#isXPath()">isXPath</A>, <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#setMetaData(org.apache.openjpa.meta.ClassMetaData)">setMetaData</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="TRUE"><!-- --></A><H3>
TRUE</H3>
<PRE>
protected static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>TRUE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../constant-values.html#org.apache.openjpa.jdbc.kernel.exps.Lit.TRUE">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="FALSE"><!-- --></A><H3>
FALSE</H3>
<PRE>
protected static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>FALSE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../../constant-values.html#org.apache.openjpa.jdbc.kernel.exps.Lit.FALSE">Constant Field Values</A></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="Lit(java.lang.Object, int)"><!-- --></A><H3>
Lit</H3>
<PRE>
public <B>Lit</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;val,
           int&nbsp;ptype)</PRE>
<DL>
<DD>Constructor. Supply literal value.
<P>
</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="getType()"><!-- --></A><H3>
getType</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A> <B>getType</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#getType()">Value</A></CODE></B></DD>
<DD>Return the expected type for this value, or <code>Object</code> if
 the type is unknown.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#getType()">getType</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setImplicitType(java.lang.Class)"><!-- --></A><H3>
setImplicitType</H3>
<PRE>
public void <B>setImplicitType</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;type)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#setImplicitType(java.lang.Class)">Value</A></CODE></B></DD>
<DD>Set the implicit type of the value, based on how it is used in the
 filter. This method is only called on values who return
 <code>Object</code> from <A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#getType()"><CODE>Value.getType()</CODE></A>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#setImplicitType(java.lang.Class)">setImplicitType</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getParseType()"><!-- --></A><H3>
getParseType</H3>
<PRE>
public int <B>getParseType</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#getParseType()">Literal</A></CODE></B></DD>
<DD>The type the literal was parsed as.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#getParseType()">getParseType</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getValue()"><!-- --></A><H3>
getValue</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>getValue</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#getValue()">Literal</A></CODE></B></DD>
<DD>The value of this literal.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#getValue()">getValue</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setValue(java.lang.Object)"><!-- --></A><H3>
setValue</H3>
<PRE>
public void <B>setValue</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;val)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#setValue(java.lang.Object)">Literal</A></CODE></B></DD>
<DD>The value of this literal.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html#setValue(java.lang.Object)">setValue</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Literal.html" title="interface in org.apache.openjpa.kernel.exps">Literal</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getValue(java.lang.Object[])"><!-- --></A><H3>
getValue</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>getValue</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Constant.html#getValue(java.lang.Object[])">Constant</A></CODE></B></DD>
<DD>Return the value for this constant given the specified parameters.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Constant.html#getValue(java.lang.Object[])">getValue</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Constant.html" title="interface in org.apache.openjpa.kernel.exps">Constant</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="initialize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, int)"><!-- --></A><H3>
initialize</H3>
<PRE>
public <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A> <B>initialize</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                           <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                           int&nbsp;flags)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#initialize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, int)">Val</A></CODE></B></DD>
<DD>Initialize the value. This method should recursively initialize any
 sub-values.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#initialize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, int)">initialize</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="calculateValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.kernel.exps.Val, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><!-- --></A><H3>
calculateValue</H3>
<PRE>
public void <B>calculateValue</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                           <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                           <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                           <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A>&nbsp;other,
                           <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;otherState)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#calculateValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.kernel.exps.Val, org.apache.openjpa.jdbc.kernel.exps.ExpState)">Val</A></CODE></B></DD>
<DD>Calculate and cache the SQL for this value. This method is called
 before <code>length</code> or any <code>append</code> methods.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#calculateValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.kernel.exps.Val, org.apache.openjpa.jdbc.kernel.exps.ExpState)">calculateValue</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
<DD><CODE>other</CODE> - the value being compared to, or null if not a comparison</DL>
</DD>
</DL>
<HR>

<A NAME="appendTo(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer, int)"><!-- --></A><H3>
appendTo</H3>
<PRE>
public void <B>appendTo</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                     <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                     <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                     <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql,
                     int&nbsp;index)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendTo(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer, int)">Val</A></CODE></B></DD>
<DD>Append the <code>index</code>th SQL element to the given buffer.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendTo(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer, int)">appendTo</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getMetaData()"><!-- --></A><H3>
getMetaData</H3>
<PRE>
public <A HREF="../../../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A> <B>getMetaData</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#getMetaData()">Value</A></CODE></B></DD>
<DD>Return any associated persistent type.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#getMetaData()">getMetaData</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setMetaData(org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
setMetaData</H3>
<PRE>
public void <B>setMetaData</B>(<A HREF="../../../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#setMetaData(org.apache.openjpa.meta.ClassMetaData)">Value</A></CODE></B></DD>
<DD>Associate a persistent type with this value.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#setMetaData(org.apache.openjpa.meta.ClassMetaData)">setMetaData</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getSQLValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><!-- --></A><H3>
getSQLValue</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>getSQLValue</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                          <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                          <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</PRE>
<DL>
<DD>Return the SQL value of this constant.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isSQLValueNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><!-- --></A><H3>
isSQLValueNull</H3>
<PRE>
public boolean <B>isSQLValueNull</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                              <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                              <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</PRE>
<DL>
<DD>Return true if this constant's SQL value is equivalent to NULL.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getValue(org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><!-- --></A><H3>
getValue</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>getValue</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                       <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</PRE>
<DL>
<DD>Return the value of this constant.  May be more robust than the
 parameters-only form.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)"><!-- --></A><H3>
select</H3>
<PRE>
public void <B>select</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                   <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                   <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                   boolean&nbsp;pks)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)">Val</A></CODE></B></DD>
<DD>Select the data for this value.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#select(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)">select</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="selectColumns(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)"><!-- --></A><H3>
selectColumns</H3>
<PRE>
public void <B>selectColumns</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                          <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                          <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                          boolean&nbsp;pks)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#selectColumns(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)">Val</A></CODE></B></DD>
<DD>Select just the columns for this value.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#selectColumns(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)">selectColumns</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="groupBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><!-- --></A><H3>
groupBy</H3>
<PRE>
public void <B>groupBy</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                    <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                    <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#groupBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)">Val</A></CODE></B></DD>
<DD>Group by this value.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#groupBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)">groupBy</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="orderBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)"><!-- --></A><H3>
orderBy</H3>
<PRE>
public void <B>orderBy</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                    <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                    <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                    boolean&nbsp;asc)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#orderBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)">Val</A></CODE></B></DD>
<DD>Order by this value.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#orderBy(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, boolean)">orderBy</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="load(org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.Result)"><!-- --></A><H3>
load</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>load</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                   <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                   <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Result.html" title="interface in org.apache.openjpa.jdbc.sql">Result</A>&nbsp;res)
            throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html" title="class or interface in java.sql">SQLException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#load(org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.Result)">Val</A></CODE></B></DD>
<DD>Load the data for this value.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#load(org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.Result)">load</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/SQLException.html" title="class or interface in java.sql">SQLException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="length(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)"><!-- --></A><H3>
length</H3>
<PRE>
public int <B>length</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                  <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                  <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#length(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)">Val</A></CODE></B></DD>
<DD>Return the number of SQL elements in this value.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#length(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState)">length</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="appendIsEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><!-- --></A><H3>
appendIsEmpty</H3>
<PRE>
public void <B>appendIsEmpty</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                          <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                          <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                          <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">Val</A></CODE></B></DD>
<DD>Append the SQL testing whether this value is empty to the given buffer.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendIsEmpty</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="appendIsNotEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><!-- --></A><H3>
appendIsNotEmpty</H3>
<PRE>
public void <B>appendIsNotEmpty</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                             <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                             <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                             <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsNotEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">Val</A></CODE></B></DD>
<DD>Append the SQL testing whether this value is not empty to
 the given buffer.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsNotEmpty(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendIsNotEmpty</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="appendSize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><!-- --></A><H3>
appendSize</H3>
<PRE>
public void <B>appendSize</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                       <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                       <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                       <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendSize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">Val</A></CODE></B></DD>
<DD>Append the SQL checking the size of this value.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendSize(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendSize</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="appendIsNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><!-- --></A><H3>
appendIsNull</H3>
<PRE>
public void <B>appendIsNull</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                         <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                         <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                         <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">Val</A></CODE></B></DD>
<DD>Append the SQL testing whether this value is null to the given buffer.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendIsNull</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="appendIsNotNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)"><!-- --></A><H3>
appendIsNotNull</H3>
<PRE>
public void <B>appendIsNotNull</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                            <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                            <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                            <A HREF="../../../../../../org/apache/openjpa/jdbc/sql/SQLBuffer.html" title="class in org.apache.openjpa.jdbc.sql">SQLBuffer</A>&nbsp;sql)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">Val</A></CODE></B></DD>
<DD>Append the SQL testing whether this value is not null to the given
 buffer.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#appendIsNotNull(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, org.apache.openjpa.jdbc.sql.SQLBuffer)">appendIsNotNull</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isVariable()"><!-- --></A><H3>
isVariable</H3>
<PRE>
public boolean <B>isVariable</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#isVariable()">Value</A></CODE></B></DD>
<DD>Return true if this value is a variable.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#isVariable()">isVariable</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isAggregate()"><!-- --></A><H3>
isAggregate</H3>
<PRE>
public boolean <B>isAggregate</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#isAggregate()">Value</A></CODE></B></DD>
<DD>Return true if this value is an aggregate.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#isAggregate()">isAggregate</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isXPath()"><!-- --></A><H3>
isXPath</H3>
<PRE>
public boolean <B>isXPath</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#isXPath()">Value</A></CODE></B></DD>
<DD>Return true if this value is an XML Path.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#isXPath()">isXPath</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="toDataStoreValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, java.lang.Object)"><!-- --></A><H3>
toDataStoreValue</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>toDataStoreValue</B>(<A HREF="../../../../../../org/apache/openjpa/jdbc/sql/Select.html" title="interface in org.apache.openjpa.jdbc.sql">Select</A>&nbsp;sel,
                               <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpContext.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpContext</A>&nbsp;ctx,
                               <A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/ExpState.html" title="class in org.apache.openjpa.jdbc.kernel.exps">ExpState</A>&nbsp;state,
                               <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;val)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#toDataStoreValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, java.lang.Object)">Val</A></CODE></B></DD>
<DD>Return the datastore value of the given object in the context of this
 value.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html#toDataStoreValue(org.apache.openjpa.jdbc.sql.Select, org.apache.openjpa.jdbc.kernel.exps.ExpContext, org.apache.openjpa.jdbc.kernel.exps.ExpState, java.lang.Object)">toDataStoreValue</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Val.html" title="interface in org.apache.openjpa.jdbc.kernel.exps">Val</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="acceptVisit(org.apache.openjpa.kernel.exps.ExpressionVisitor)"><!-- --></A><H3>
acceptVisit</H3>
<PRE>
public void <B>acceptVisit</B>(<A HREF="../../../../../../org/apache/openjpa/kernel/exps/ExpressionVisitor.html" title="interface in org.apache.openjpa.kernel.exps">ExpressionVisitor</A>&nbsp;visitor)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#acceptVisit(org.apache.openjpa.kernel.exps.ExpressionVisitor)">Value</A></CODE></B></DD>
<DD>Accept a visit from a tree visitor.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html#acceptVisit(org.apache.openjpa.kernel.exps.ExpressionVisitor)">acceptVisit</A></CODE> in interface <CODE><A HREF="../../../../../../org/apache/openjpa/kernel/exps/Value.html" title="interface in org.apache.openjpa.kernel.exps">Value</A></CODE></DL>
</DD>
<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>&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/Lit.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/openjpa/jdbc/kernel/exps/JDBCWildcardMatch.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../org/apache/openjpa/jdbc/kernel/exps/Param.html" title="class in org.apache.openjpa.jdbc.kernel.exps"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../index.html?org/apache/openjpa/jdbc/kernel/exps/Lit.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Lit.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;<A HREF="#nested_class_summary">NESTED</A>&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; 2006-2008 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
