blob: d20539f889ce38d16659f1727da4766fd60e8be8 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
<title>QueryMetadata (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-12-05">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="QueryMetadata (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":18,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/QueryMetadata.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><a href="http://cayenne.apache.org" target="top">Apache Cayenne</a></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.cayenne.query</a></div>
<h2 title="Interface QueryMetadata" class="title">Interface QueryMetadata</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="QueryMetadataProxy.html" title="class in org.apache.cayenne.query">QueryMetadataProxy</a></code>, <code><a href="SQLTemplateMetadata.html" title="class in org.apache.cayenne.query">SQLTemplateMetadata</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">QueryMetadata</span></pre>
<div class="block">Provides a common interface for accessing query metadata.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CACHE_GROUPS_PROPERTY">CACHE_GROUPS_PROPERTY</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CACHE_STRATEGY_PROPERTY">CACHE_STRATEGY_PROPERTY</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FETCH_LIMIT_DEFAULT">FETCH_LIMIT_DEFAULT</a></span></code></th>
<td class="colLast">
<div class="block">Defines default query fetch limit, which is zero, meaning that all matching rows
should be fetched.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FETCH_LIMIT_PROPERTY">FETCH_LIMIT_PROPERTY</a></span></code></th>
<td class="colLast">
<div class="block">Defines the name of the property for the query <a href="#getFetchLimit()"><code>fetch limit</code></a>
.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FETCH_OFFSET_DEFAULT">FETCH_OFFSET_DEFAULT</a></span></code></th>
<td class="colLast">
<div class="block">Defines default query fetch start index, which is 0, meaning that matching rows
selected starting from the first.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FETCH_OFFSET_PROPERTY">FETCH_OFFSET_PROPERTY</a></span></code></th>
<td class="colLast">
<div class="block">Defines the name of the property for the query <a href="#getFetchOffset()"><code>fetch
offset</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FETCHING_DATA_ROWS_DEFAULT">FETCHING_DATA_ROWS_DEFAULT</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FETCHING_DATA_ROWS_PROPERTY">FETCHING_DATA_ROWS_PROPERTY</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PAGE_SIZE_DEFAULT">PAGE_SIZE_DEFAULT</a></span></code></th>
<td class="colLast">
<div class="block">Defines default query page size, which is zero for no pagination.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PAGE_SIZE_PROPERTY">PAGE_SIZE_PROPERTY</a></span></code></th>
<td class="colLast">
<div class="block">Defines the name of the property for the query <a href="#getPageSize()"><code>page size</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#QUERY_TIMEOUT_DEFAULT">QUERY_TIMEOUT_DEFAULT</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATEMENT_FETCH_SIZE_DEFAULT">STATEMENT_FETCH_SIZE_DEFAULT</a></span></code></th>
<td class="colLast">
<div class="block">Defines default query fetch start index, which is 0, meaning that matching rows
selected starting from the first.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#STATEMENT_FETCH_SIZE_PROPERTY">STATEMENT_FETCH_SIZE_PROPERTY</a></span></code></th>
<td class="colLast">
<div class="block">Defines the name of the property for the query <a href="#getStatementFetchSize()"><code>fetch
size</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCacheGroup()">getCacheGroup</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an optional cache "group".</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCacheKey()">getCacheKey</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a String that uniquely identifies this query for the purposes of result
caching.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="QueryCacheStrategy.html" title="enum in org.apache.cayenne.query">QueryCacheStrategy</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCacheStrategy()">getCacheStrategy</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a caching strategy for this query.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../reflect/ClassDescriptor.html" title="interface in org.apache.cayenne.reflect">ClassDescriptor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClassDescriptor()">getClassDescriptor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../map/DataMap.html" title="class in org.apache.cayenne.map">DataMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDataMap()">getDataMap</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a DataMap associated with a query or null if no such DataMap exists.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../map/DbEntity.html" title="class in org.apache.cayenne.map">DbEntity</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDbEntity()">getDbEntity</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a DbEntity associated with a query or null if no such entity exists.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFetchLimit()">getFetchLimit</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the limit on the maximum number of records that can be returned by this
query.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFetchOffset()">getFetchOffset</a></span>()</code></th>
<td class="colLast">
<div class="block">Specifies a start of a range when fetching a subset of records.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../map/ObjEntity.html" title="class in org.apache.cayenne.map">ObjEntity</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getObjEntity()">getObjEntity</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an ObjEntity associated with a query or null if no such entity exists.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="Query.html" title="interface in org.apache.cayenne.query">Query</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOriginatingQuery()">getOriginatingQuery</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a query that originated this query.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPageSize()">getPageSize</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns query page size.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathSplitAliases()">getPathSplitAliases</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a map of aliases vs.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="PrefetchTreeNode.html" title="class in org.apache.cayenne.query">PrefetchTreeNode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPrefetchTree()">getPrefetchTree</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a root node of prefetch tree used by this query, or null of no prefetches
are configured.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../map/Procedure.html" title="class in org.apache.cayenne.map">Procedure</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProcedure()">getProcedure</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a Procedure associated with a query or null if no such procedure exists.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryTimeout()">getQueryTimeout</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>default <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Function</a>&lt;?,&#8203;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResultMapper()">getResultMapper</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResultSetMapping()">getResultSetMapping</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an optional list of result set mapping hints.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatementFetchSize()">getStatementFetchSize</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFetchingDataRows()">isFetchingDataRows</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if this query should produce a list of data rows as
opposed to DataObjects, <code>false</code> for DataObjects.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRefreshingObjects()">isRefreshingObjects</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if the query results should replace any currently cached
values, returns <code>false</code> otherwise.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSingleResultSetMapping()">isSingleResultSetMapping</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSuppressingDistinct()">isSuppressingDistinct</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setResultSetMapping(java.util.List)">setResultSetMapping</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;resultSetMapping)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="FETCH_LIMIT_PROPERTY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FETCH_LIMIT_PROPERTY</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> FETCH_LIMIT_PROPERTY</pre>
<div class="block">Defines the name of the property for the query <a href="#getFetchLimit()"><code>fetch limit</code></a>
.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.FETCH_LIMIT_PROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FETCH_LIMIT_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FETCH_LIMIT_DEFAULT</h4>
<pre>static final&nbsp;int FETCH_LIMIT_DEFAULT</pre>
<div class="block">Defines default query fetch limit, which is zero, meaning that all matching rows
should be fetched.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.FETCH_LIMIT_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FETCH_OFFSET_PROPERTY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FETCH_OFFSET_PROPERTY</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> FETCH_OFFSET_PROPERTY</pre>
<div class="block">Defines the name of the property for the query <a href="#getFetchOffset()"><code>fetch
offset</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.FETCH_OFFSET_PROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FETCH_OFFSET_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FETCH_OFFSET_DEFAULT</h4>
<pre>static final&nbsp;int FETCH_OFFSET_DEFAULT</pre>
<div class="block">Defines default query fetch start index, which is 0, meaning that matching rows
selected starting from the first.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.FETCH_OFFSET_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="QUERY_TIMEOUT_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>QUERY_TIMEOUT_DEFAULT</h4>
<pre>static final&nbsp;int QUERY_TIMEOUT_DEFAULT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.QUERY_TIMEOUT_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="PAGE_SIZE_PROPERTY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PAGE_SIZE_PROPERTY</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> PAGE_SIZE_PROPERTY</pre>
<div class="block">Defines the name of the property for the query <a href="#getPageSize()"><code>page size</code></a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.PAGE_SIZE_PROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="PAGE_SIZE_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PAGE_SIZE_DEFAULT</h4>
<pre>static final&nbsp;int PAGE_SIZE_DEFAULT</pre>
<div class="block">Defines default query page size, which is zero for no pagination.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.PAGE_SIZE_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FETCHING_DATA_ROWS_PROPERTY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FETCHING_DATA_ROWS_PROPERTY</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> FETCHING_DATA_ROWS_PROPERTY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.FETCHING_DATA_ROWS_PROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="FETCHING_DATA_ROWS_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FETCHING_DATA_ROWS_DEFAULT</h4>
<pre>static final&nbsp;boolean FETCHING_DATA_ROWS_DEFAULT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.FETCHING_DATA_ROWS_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="CACHE_STRATEGY_PROPERTY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CACHE_STRATEGY_PROPERTY</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CACHE_STRATEGY_PROPERTY</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.CACHE_STRATEGY_PROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="CACHE_GROUPS_PROPERTY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CACHE_GROUPS_PROPERTY</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CACHE_GROUPS_PROPERTY</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.CACHE_GROUPS_PROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="STATEMENT_FETCH_SIZE_PROPERTY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STATEMENT_FETCH_SIZE_PROPERTY</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> STATEMENT_FETCH_SIZE_PROPERTY</pre>
<div class="block">Defines the name of the property for the query <a href="#getStatementFetchSize()"><code>fetch
size</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.STATEMENT_FETCH_SIZE_PROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="STATEMENT_FETCH_SIZE_DEFAULT">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>STATEMENT_FETCH_SIZE_DEFAULT</h4>
<pre>static final&nbsp;int STATEMENT_FETCH_SIZE_DEFAULT</pre>
<div class="block">Defines default query fetch start index, which is 0, meaning that matching rows
selected starting from the first.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.cayenne.query.QueryMetadata.STATEMENT_FETCH_SIZE_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getClassDescriptor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClassDescriptor</h4>
<pre class="methodSignature"><a href="../reflect/ClassDescriptor.html" title="interface in org.apache.cayenne.reflect">ClassDescriptor</a>&nbsp;getClassDescriptor()</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="getObjEntity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getObjEntity</h4>
<pre class="methodSignature"><a href="../map/ObjEntity.html" title="class in org.apache.cayenne.map">ObjEntity</a>&nbsp;getObjEntity()</pre>
<div class="block">Returns an ObjEntity associated with a query or null if no such entity exists.</div>
</li>
</ul>
<a id="getDbEntity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDbEntity</h4>
<pre class="methodSignature"><a href="../map/DbEntity.html" title="class in org.apache.cayenne.map">DbEntity</a>&nbsp;getDbEntity()</pre>
<div class="block">Returns a DbEntity associated with a query or null if no such entity exists.</div>
</li>
</ul>
<a id="getProcedure()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcedure</h4>
<pre class="methodSignature"><a href="../map/Procedure.html" title="class in org.apache.cayenne.map">Procedure</a>&nbsp;getProcedure()</pre>
<div class="block">Returns a Procedure associated with a query or null if no such procedure exists.</div>
</li>
</ul>
<a id="getDataMap()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDataMap</h4>
<pre class="methodSignature"><a href="../map/DataMap.html" title="class in org.apache.cayenne.map">DataMap</a>&nbsp;getDataMap()</pre>
<div class="block">Returns a DataMap associated with a query or null if no such DataMap exists.</div>
</li>
</ul>
<a id="getCacheStrategy()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCacheStrategy</h4>
<pre class="methodSignature"><a href="QueryCacheStrategy.html" title="enum in org.apache.cayenne.query">QueryCacheStrategy</a>&nbsp;getCacheStrategy()</pre>
<div class="block">Returns a caching strategy for this query.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="getCacheKey()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCacheKey</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getCacheKey()</pre>
<div class="block">Returns a String that uniquely identifies this query for the purposes of result
caching. If null is returned, no caching is performed.</div>
</li>
</ul>
<a id="getCacheGroup()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCacheGroup</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getCacheGroup()</pre>
<div class="block">Returns an optional cache "group".
Cache groups allow to invalidate query caches in bulk on different events.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.0</dd>
</dl>
</li>
</ul>
<a id="isFetchingDataRows()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFetchingDataRows</h4>
<pre class="methodSignature">boolean&nbsp;isFetchingDataRows()</pre>
<div class="block">Returns <code>true</code> if this query should produce a list of data rows as
opposed to DataObjects, <code>false</code> for DataObjects. This is a hint to
QueryEngine executing this query.</div>
</li>
</ul>
<a id="isRefreshingObjects()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRefreshingObjects</h4>
<pre class="methodSignature">boolean&nbsp;isRefreshingObjects()</pre>
<div class="block">Returns <code>true</code> if the query results should replace any currently cached
values, returns <code>false</code> otherwise. If <a href="#isFetchingDataRows()"><code>isFetchingDataRows()</code></a>
returns <code>true</code>, this setting is not applicable and has no effect.</div>
</li>
</ul>
<a id="getPageSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPageSize</h4>
<pre class="methodSignature">int&nbsp;getPageSize()</pre>
<div class="block">Returns query page size. Page size is a hint to Cayenne that query should be
performed page by page, instead of retrieving all results at once. If the value
returned is less than or equal to zero, no paging should occur.</div>
</li>
</ul>
<a id="getFetchOffset()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFetchOffset</h4>
<pre class="methodSignature">int&nbsp;getFetchOffset()</pre>
<div class="block">Specifies a start of a range when fetching a subset of records.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="getFetchLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFetchLimit</h4>
<pre class="methodSignature">int&nbsp;getFetchLimit()</pre>
<div class="block">Returns the limit on the maximum number of records that can be returned by this
query. If the actual number of rows in the result exceeds the fetch limit, they
will be discarded. One possible use of fetch limit is using it as a safeguard
against large result sets that may lead to the application running out of memory,
etc. If a fetch limit is greater or equal to zero, all rows will be returned.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the limit on the maximum number of records that can be returned by this
query</dd>
</dl>
</li>
</ul>
<a id="getOriginatingQuery()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOriginatingQuery</h4>
<pre class="methodSignature"><a href="Query.html" title="interface in org.apache.cayenne.query">Query</a>&nbsp;getOriginatingQuery()</pre>
<div class="block">Returns a query that originated this query. Originating query is a query whose
result is needed to obtain the result of the query owning this metadata. Most often
than not the returned value is null. One example of non-null originating query is a
query for a range of objects in a previously fetched paginated list. The query that
fetched the original paginated list is an "originated" query. It may be used to
restore a list that got lost due to a cache overflow, etc.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.0</dd>
</dl>
</li>
</ul>
<a id="getPrefetchTree()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrefetchTree</h4>
<pre class="methodSignature"><a href="PrefetchTreeNode.html" title="class in org.apache.cayenne.query">PrefetchTreeNode</a>&nbsp;getPrefetchTree()</pre>
<div class="block">Returns a root node of prefetch tree used by this query, or null of no prefetches
are configured.</div>
</li>
</ul>
<a id="getPathSplitAliases()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPathSplitAliases</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPathSplitAliases()</pre>
<div class="block">Returns a map of aliases vs. expression subpaths that is used to build split joins.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="getResultSetMapping()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResultSetMapping</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getResultSetMapping()</pre>
<div class="block">Returns an optional list of result set mapping hints. Elements in the list can be
either <a href="EntityResultSegment.html" title="interface in org.apache.cayenne.query"><code>EntityResultSegment</code></a> or <a href="ScalarResultSegment.html" title="interface in org.apache.cayenne.query"><code>ScalarResultSegment</code></a>. The returned
list can be null.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="setResultSetMapping(java.util.List)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setResultSetMapping</h4>
<pre class="methodSignature">default&nbsp;void&nbsp;setResultSetMapping&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;resultSetMapping)</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.2</dd>
</dl>
</li>
</ul>
<a id="isSingleResultSetMapping()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSingleResultSetMapping</h4>
<pre class="methodSignature">boolean&nbsp;isSingleResultSetMapping()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>should the result be mapped to single object (scalar or entity)</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getResultSetMapping()"><code>getResultSetMapping()</code></a></dd>
</dl>
</li>
</ul>
<a id="getStatementFetchSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStatementFetchSize</h4>
<pre class="methodSignature">int&nbsp;getStatementFetchSize()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>statement's fetch size</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
<a id="getQueryTimeout()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueryTimeout</h4>
<pre class="methodSignature">int&nbsp;getQueryTimeout()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>query timeout</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.2</dd>
</dl>
</li>
</ul>
<a id="isSuppressingDistinct()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSuppressingDistinct</h4>
<pre class="methodSignature">boolean&nbsp;isSuppressingDistinct()</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.0</dd>
</dl>
</li>
</ul>
<a id="getResultMapper()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getResultMapper</h4>
<pre class="methodSignature">default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Function</a>&lt;?,&#8203;?&gt;&nbsp;getResultMapper()</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>4.2</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/QueryMetadata.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><a href="http://cayenne.apache.org" target="top">Apache Cayenne</a></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
</footer>
</body>
</html>