blob: c7d4838ec70928a03d5ae6513a40f0000e31bbe8 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Fri Jun 14 12:28:32 GET 2024 -->
<title>Cayenne (cayenne-doc: Cayenne Documentation 4.2.1 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2024-06-14">
<meta name="description" content="declaration: package: org.apache.cayenne, class: Cayenne">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><a href="https://cayenne.apache.org" target="top">Apache Cayenne</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/Cayenne.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#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.cayenne</a></div>
<h1 title="Class Cayenne" class="title">Class Cayenne</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.cayenne.Cayenne</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Cayenne</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">Various utils for processing persistent objects and their properties
<p>
<i>DataObjects and Primary Keys: All methods that allow to extract primary
key values or use primary keys to find objects are provided for convenience.
Still the author's belief is that integer sequential primary keys are
meaningless in the object model and are pure database artifacts. Therefore
relying heavily on direct access to PK provided via this class (or other such
Cayenne API) is not a clean design practice in many cases, and sometimes may
actually lead to security issues. </i>
</p></div>
<dl class="notes">
<dt>Since:</dt>
<dd>3.1 its predecessor was called DataObjectUtils</dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected </code></div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Cayenne</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><wbr>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#compoundPKForObject(org.apache.cayenne.Persistent)" class="member-name-link">compoundPKForObject</a><wbr>(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;dataObject)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a primary key map for a persistent object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="reflect/ClassDescriptor.html" title="interface in org.apache.cayenne.reflect">ClassDescriptor</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getClassDescriptor(org.apache.cayenne.Persistent)" class="member-name-link">getClassDescriptor</a><wbr>(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;object)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns class descriptor for the object or null if the object is not
registered with an ObjectContext or descriptor was not found.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="map/ObjEntity.html" title="class in org.apache.cayenne.map">ObjEntity</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getObjEntity(org.apache.cayenne.Persistent)" class="member-name-link">getObjEntity</a><wbr>(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;p)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns mapped ObjEntity for object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="reflect/PropertyDescriptor.html" title="interface in org.apache.cayenne.reflect">PropertyDescriptor</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getProperty(org.apache.cayenne.Persistent,java.lang.String)" class="member-name-link">getProperty</a><wbr>(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;object,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;properyName)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns property descriptor for specified property.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#intPKForObject(org.apache.cayenne.Persistent)" class="member-name-link">intPKForObject</a><wbr>(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;dataObject)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an int primary key value for a persistent object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#longPKForObject(org.apache.cayenne.Persistent)" class="member-name-link">longPKForObject</a><wbr>(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;dataObject)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an int primary key value for a persistent object.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#makePath(java.lang.String...)" class="member-name-link">makePath</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;pathParts)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Constructs a dotted path from a list of strings.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;T&gt;&nbsp;T</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#objectForPK(org.apache.cayenne.ObjectContext,java.lang.Class,int)" class="member-name-link">objectForPK</a><wbr>(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;dataObjectClass,
int&nbsp;pk)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an object matching an int primary key.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;T&gt;&nbsp;T</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#objectForPK(org.apache.cayenne.ObjectContext,java.lang.Class,java.lang.Object)" class="member-name-link">objectForPK</a><wbr>(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;dataObjectClass,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;pk)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an object matching an Object primary key.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static &lt;T&gt;&nbsp;T</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#objectForPK(org.apache.cayenne.ObjectContext,java.lang.Class,java.util.Map)" class="member-name-link">objectForPK</a><wbr>(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;dataObjectClass,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>?&gt;&nbsp;pk)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an object matching a primary key.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#objectForPK(org.apache.cayenne.ObjectContext,java.lang.String,int)" class="member-name-link">objectForPK</a><wbr>(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;objEntityName,
int&nbsp;pk)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an object matching an int primary key.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#objectForPK(org.apache.cayenne.ObjectContext,java.lang.String,java.lang.Object)" class="member-name-link">objectForPK</a><wbr>(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;objEntityName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;pk)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an object matching an Object primary key.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#objectForPK(org.apache.cayenne.ObjectContext,java.lang.String,java.util.Map)" class="member-name-link">objectForPK</a><wbr>(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;objEntityName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>?&gt;&nbsp;pk)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an object matching a primary key.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#objectForPK(org.apache.cayenne.ObjectContext,org.apache.cayenne.ObjectId)" class="member-name-link">objectForPK</a><wbr>(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="ObjectId.html" title="interface in org.apache.cayenne">ObjectId</a>&nbsp;id)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an object matching ObjectId.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#objectForQuery(org.apache.cayenne.ObjectContext,org.apache.cayenne.query.Query)" class="member-name-link">objectForQuery</a><wbr>(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="query/Query.html" title="interface in org.apache.cayenne.query">Query</a>&nbsp;query)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns an object or a DataRow that is a result of a given query.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#pkForObject(org.apache.cayenne.Persistent)" class="member-name-link">pkForObject</a><wbr>(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;dataObject)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a primary key value for a persistent object.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#readNestedProperty(java.lang.Object,java.lang.String)" class="member-name-link">readNestedProperty</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;o,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Returns a value of the property identified by a property path.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>Cayenne</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">Cayenne</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getObjEntity(org.apache.cayenne.Persistent)">
<h3>getObjEntity</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="map/ObjEntity.html" title="class in org.apache.cayenne.map">ObjEntity</a></span>&nbsp;<span class="element-name">getObjEntity</span><wbr><span class="parameters">(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;p)</span></div>
<div class="block">Returns mapped ObjEntity for object. If an object is transient or is not
mapped returns null.</div>
</section>
</li>
<li>
<section class="detail" id="getClassDescriptor(org.apache.cayenne.Persistent)">
<h3>getClassDescriptor</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="reflect/ClassDescriptor.html" title="interface in org.apache.cayenne.reflect">ClassDescriptor</a></span>&nbsp;<span class="element-name">getClassDescriptor</span><wbr><span class="parameters">(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;object)</span></div>
<div class="block">Returns class descriptor for the object or null if the object is not
registered with an ObjectContext or descriptor was not found.</div>
</section>
</li>
<li>
<section class="detail" id="getProperty(org.apache.cayenne.Persistent,java.lang.String)">
<h3>getProperty</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="reflect/PropertyDescriptor.html" title="interface in org.apache.cayenne.reflect">PropertyDescriptor</a></span>&nbsp;<span class="element-name">getProperty</span><wbr><span class="parameters">(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;object,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;properyName)</span></div>
<div class="block">Returns property descriptor for specified property.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>properyName</code> - path to the property</dd>
<dt>Returns:</dt>
<dd>property descriptor, <code>null</code> if not found</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="readNestedProperty(java.lang.Object,java.lang.String)">
<h3>readNestedProperty</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span>&nbsp;<span class="element-name">readNestedProperty</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;o,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;path)</span></div>
<div class="block">Returns a value of the property identified by a property path. Supports
reading both mapped and unmapped properties. Unmapped properties are
accessed in a manner consistent with JavaBeans specification.
<p>
Property path (or nested property) is a dot-separated path used to
traverse object relationships until the final object is found. If a null
object found while traversing path, null is returned. If a list is
encountered in the middle of the path, CayenneRuntimeException is thrown.
Unlike <a href="DataObject.html#readPropertyDirectly(java.lang.String)"><code>DataObject.readPropertyDirectly(String)</code></a>, this method will resolve an
object if it is HOLLOW.
<p>
Examples:
</p>
<ul>
<li>Read this object property:<br>
<code>String name = (String)Cayenne.readNestedProperty(artist, "name");</code>
<br>
<br>
</li>
<li>Read an object related to this object:<br>
<code>Gallery g = (Gallery)Cayenne.readNestedProperty(paintingInfo, "toPainting.toGallery");</code>
<br>
<br>
</li>
<li>Read a property of an object related to this object: <br>
<code>String name = (String)Cayenne.readNestedProperty(painting, "toArtist.artistName");</code>
<br>
<br>
</li>
<li>Read to-many relationship list:<br>
<code>List exhibits = (List)Cayenne.readNestedProperty(painting, "toGallery.exhibitArray");</code>
<br>
<br>
</li>
<li>Read to-many relationship in the middle of the path:<br>
<code>List&lt;String&gt; names = (List&lt;String&gt;)Cayenne.readNestedProperty(artist, "paintingArray.paintingName");</code>
<br>
<br>
</li>
</ul></div>
</section>
</li>
<li>
<section class="detail" id="makePath(java.lang.String...)">
<h3>makePath</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">makePath</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>...&nbsp;pathParts)</span></div>
<div class="block">Constructs a dotted path from a list of strings. Useful for creating more
complex paths while preserving compilation safety. For example, instead
of saying:
<p>
<pre>
orderings.add(new Ordering(&quot;department.name&quot;, SortOrder.ASCENDING));
</pre>
<p>
You can use makePath() with the constants generated by Cayenne Modeler:
<p>
<pre>
orderings.add(new Ordering(Cayenne.makePath(USER.DEPARTMENT_PROPERTY, Department.NAME_PROPERTY), SortOrder.ASCENDING));
</pre>
<p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>pathParts</code> - The varargs list of paths to join.</dd>
<dt>Returns:</dt>
<dd>A string of all the paths joined by a "." (used by Cayenne in
queries and orderings).
<p></dd>
<dt>Since:</dt>
<dd>3.1</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="longPKForObject(org.apache.cayenne.Persistent)">
<h3>longPKForObject</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">longPKForObject</span><wbr><span class="parameters">(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;dataObject)</span></div>
<div class="block">Returns an int primary key value for a persistent object. Only works for
single column numeric primary keys. If an object is transient or has an
ObjectId that can not be converted to an int PK, an exception is thrown.</div>
</section>
</li>
<li>
<section class="detail" id="intPKForObject(org.apache.cayenne.Persistent)">
<h3>intPKForObject</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">intPKForObject</span><wbr><span class="parameters">(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;dataObject)</span></div>
<div class="block">Returns an int primary key value for a persistent object. Only works for
single column numeric primary keys. If an object is transient or has an
ObjectId that can not be converted to an int PK, an exception is thrown.</div>
</section>
</li>
<li>
<section class="detail" id="pkForObject(org.apache.cayenne.Persistent)">
<h3>pkForObject</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span>&nbsp;<span class="element-name">pkForObject</span><wbr><span class="parameters">(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;dataObject)</span></div>
<div class="block">Returns a primary key value for a persistent object. Only works for
single column primary keys. If an object is transient or has a compound
ObjectId, an exception is thrown.</div>
</section>
</li>
<li>
<section class="detail" id="compoundPKForObject(org.apache.cayenne.Persistent)">
<h3>compoundPKForObject</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&gt;</span>&nbsp;<span class="element-name">compoundPKForObject</span><wbr><span class="parameters">(<a href="Persistent.html" title="interface in org.apache.cayenne">Persistent</a>&nbsp;dataObject)</span></div>
<div class="block">Returns a primary key map for a persistent object. This method is the
most generic out of all methods for primary key retrieval. It will work
for all possible types of primary keys. If an object is transient, an
exception is thrown.</div>
</section>
</li>
<li>
<section class="detail" id="objectForPK(org.apache.cayenne.ObjectContext,java.lang.Class,int)">
<h3>objectForPK</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type">T</span>&nbsp;<span class="element-name">objectForPK</span><wbr><span class="parameters">(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;dataObjectClass,
int&nbsp;pk)</span></div>
<div class="block">Returns an object matching an int primary key. If the object is mapped to
use non-integer PK or a compound PK, CayenneRuntimeException is thrown.
<p>
If this object is already cached in the ObjectStore, it is returned
without a query. Otherwise a query is built and executed against the
database.
</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#objectForPK(org.apache.cayenne.ObjectContext,org.apache.cayenne.ObjectId)"><code>objectForPK(ObjectContext, ObjectId)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="objectForPK(org.apache.cayenne.ObjectContext,java.lang.Class,java.lang.Object)">
<h3>objectForPK</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type">T</span>&nbsp;<span class="element-name">objectForPK</span><wbr><span class="parameters">(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;dataObjectClass,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;pk)</span></div>
<div class="block">Returns an object matching an Object primary key. If the object is mapped
to use a compound PK, CayenneRuntimeException is thrown.
<p>
If this object is already cached in the ObjectStore, it is returned
without a query. Otherwise a query is built and executed against the
database.
</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#objectForPK(org.apache.cayenne.ObjectContext,org.apache.cayenne.ObjectId)"><code>objectForPK(ObjectContext, ObjectId)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="objectForPK(org.apache.cayenne.ObjectContext,java.lang.Class,java.util.Map)">
<h3>objectForPK</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;T&gt;</span>&nbsp;<span class="return-type">T</span>&nbsp;<span class="element-name">objectForPK</span><wbr><span class="parameters">(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;T&gt;&nbsp;dataObjectClass,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>?&gt;&nbsp;pk)</span></div>
<div class="block">Returns an object matching a primary key. PK map parameter should use
database PK column names as keys.
<p>
If this object is already cached in the ObjectStore, it is returned
without a query. Otherwise a query is built and executed against the
database.
</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#objectForPK(org.apache.cayenne.ObjectContext,org.apache.cayenne.ObjectId)"><code>objectForPK(ObjectContext, ObjectId)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="objectForPK(org.apache.cayenne.ObjectContext,java.lang.String,int)">
<h3>objectForPK</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span>&nbsp;<span class="element-name">objectForPK</span><wbr><span class="parameters">(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;objEntityName,
int&nbsp;pk)</span></div>
<div class="block">Returns an object matching an int primary key. If the object is mapped to
use non-integer PK or a compound PK, CayenneRuntimeException is thrown.
<p>
If this object is already cached in the ObjectStore, it is returned
without a query. Otherwise a query is built and executed against the
database.
</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#objectForPK(org.apache.cayenne.ObjectContext,org.apache.cayenne.ObjectId)"><code>objectForPK(ObjectContext, ObjectId)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="objectForPK(org.apache.cayenne.ObjectContext,java.lang.String,java.lang.Object)">
<h3>objectForPK</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span>&nbsp;<span class="element-name">objectForPK</span><wbr><span class="parameters">(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;objEntityName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;pk)</span></div>
<div class="block">Returns an object matching an Object primary key. If the object is mapped
to use a compound PK, CayenneRuntimeException is thrown.
<p>
If this object is already cached in the ObjectStore, it is returned
without a query. Otherwise a query is built and executed against the
database.
</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#objectForPK(org.apache.cayenne.ObjectContext,org.apache.cayenne.ObjectId)"><code>objectForPK(ObjectContext, ObjectId)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="objectForPK(org.apache.cayenne.ObjectContext,java.lang.String,java.util.Map)">
<h3>objectForPK</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span>&nbsp;<span class="element-name">objectForPK</span><wbr><span class="parameters">(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;objEntityName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>?&gt;&nbsp;pk)</span></div>
<div class="block">Returns an object matching a primary key. PK map parameter should use
database PK column names as keys.
<p>
If this object is already cached in the ObjectStore, it is returned
without a query. Otherwise a query is built and executed against the
database.
</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="tag-list-long">
<li><a href="#objectForPK(org.apache.cayenne.ObjectContext,org.apache.cayenne.ObjectId)"><code>objectForPK(ObjectContext, ObjectId)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="objectForPK(org.apache.cayenne.ObjectContext,org.apache.cayenne.ObjectId)">
<h3>objectForPK</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span>&nbsp;<span class="element-name">objectForPK</span><wbr><span class="parameters">(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="ObjectId.html" title="interface in org.apache.cayenne">ObjectId</a>&nbsp;id)</span></div>
<div class="block">Returns an object matching ObjectId. If this object is already cached in
the ObjectStore, it is returned without a query. Otherwise a query is
built and executed against the database.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>A persistent object that matched the id, null if no matching
objects were found</dd>
<dt>Throws:</dt>
<dd><code><a href="CayenneRuntimeException.html" title="class in org.apache.cayenne">CayenneRuntimeException</a></code> - if more than one object matched ObjectId.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="objectForQuery(org.apache.cayenne.ObjectContext,org.apache.cayenne.query.Query)">
<h3>objectForQuery</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span>&nbsp;<span class="element-name">objectForQuery</span><wbr><span class="parameters">(<a href="ObjectContext.html" title="interface in org.apache.cayenne">ObjectContext</a>&nbsp;context,
<a href="query/Query.html" title="interface in org.apache.cayenne.query">Query</a>&nbsp;query)</span></div>
<div class="block">Returns an object or a DataRow that is a result of a given query. If
query returns more than one object, an exception is thrown. If query
returns no objects, null is returned.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2001&#x2013;2024 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>