blob: 7f45eb1e4d0ceae5e374c0f3207c5a635e6dbf7d [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_261) on Mon Dec 20 14:15:52 MSK 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>BinaryObjectBuilder (Ignite 2.11.1)</title>
<meta name="date" content="2021-12-20">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BinaryObjectBuilder (Ignite 2.11.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BinaryObjectBuilder.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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/ignite/binary/BinaryObject.html" title="interface in org.apache.ignite.binary"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/ignite/binary/BinaryObjectException.html" title="class in org.apache.ignite.binary"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/ignite/binary/BinaryObjectBuilder.html" target="_top">Frames</a></li>
<li><a href="BinaryObjectBuilder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.ignite.binary</div>
<h2 title="Interface BinaryObjectBuilder" class="title">Interface BinaryObjectBuilder</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">BinaryObjectBuilder</span></pre>
<div class="block">Binary object builder. Provides ability to build binary objects dynamically without having class definitions.
<p>
Here is an example of how a binary object can be built dynamically:
<pre name=code class=java>
BinaryObjectBuilder builder = Ignition.ignite().binary().builder("org.project.MyObject");
builder.setField("fieldA", "A");
builder.setField("fieldB", "B");
BinaryObject binaryObj = builder.build();
</pre>
<p>
Also builder can be initialized by existing binary object. This allows changing some fields without affecting
other fields.
<pre name=code class=java>
BinaryObjectBuilder builder = Ignition.ignite().binary().builder(person);
builder.setField("name", "John");
person = builder.build();
</pre>
</p>
If you need to modify nested binary object you can get an instance of a builder for nested binary object using
<a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html#getField-java.lang.String-"><code>getField(String)</code></a>, changes made on nested builder will affect parent object,
for example:
<pre name=code class=java>
BinaryObjectBuilder personBuilder = grid.binary().createBuilder(personBinaryObj);
BinaryObjectBuilder addressBuilder = personBuilder.getField("address");
addressBuilder.setField("city", "New York");
personBinaryObj = personBuilder.build();
// Should be "New York".
String city = personBinaryObj.getField("address").getField("city");
</pre>
<p>
Make sure to set values for all the fields that an object from your domain model has.
If you need to set null as a value use <a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html#setField-java.lang.String-T-java.lang.Class-"><code>setField(String, Object, Class)</code></a> method directly specifying
field's type.
<p>
If to follow this recommendation you'll reduce the size of internal metadata object that
every binary object of a particular type has. Usually the metadata size grows because particular fields are not set
to an instance of a binary object constructed with the builder. Every time when you construct an object
setting only a subset of the fields the metadata object related to this type is expanded by the metadata
processor which treats every new combination of the fields as the new version of the binary object.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/ignite/IgniteBinary.html#builder-java.lang.String-"><code>IgniteBinary.builder(String)</code></a>,
<a href="../../../../org/apache/ignite/IgniteBinary.html#builder-org.apache.ignite.binary.BinaryObject-"><code>IgniteBinary.builder(BinaryObject)</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/ignite/binary/BinaryObject.html" title="interface in org.apache.ignite.binary">BinaryObject</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html#build--">build</a></span>()</code>
<div class="block">Builds binary object.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><span class='angle_bracket'>&lt;</span>T<span class='angle_bracket'>&gt;</span>&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html#getField-java.lang.String-">getField</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
<div class="block">Returns value assigned to the specified field.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html#removeField-java.lang.String-">removeField</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fieldName)</code>
<div class="block">Removes field from this builder.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html#setField-java.lang.String-org.apache.ignite.binary.BinaryObjectBuilder-">setField</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
@Nullable <a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a>&nbsp;builder)</code>
<div class="block">Sets field value.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html#setField-java.lang.String-java.lang.Object-">setField</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;val)</code>
<div class="block">Sets field value.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><span class='angle_bracket'>&lt;</span>T<span class='angle_bracket'>&gt;</span>&nbsp;<a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html#setField-java.lang.String-T-java.lang.Class-">setField</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
T&nbsp;val,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><span class='angle_bracket'>&lt;</span>? super T<span class='angle_bracket'>&gt;</span>&nbsp;type)</code>
<div class="block">Sets field value with value type specification.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getField-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getField</h4>
<pre><span class='angle_bracket'>&lt;</span>T<span class='angle_bracket'>&gt;</span>&nbsp;T&nbsp;getField(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
<div class="block">Returns value assigned to the specified field.
If the value is a binary object then an instance of <code>BinaryObjectBuilder</code> will be returned,
which can be modified.
<p>
Collections and maps returned from this method are modifiable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - Field name.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Field value.</dd>
</dl>
</li>
</ul>
<a name="setField-java.lang.String-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setField</h4>
<pre><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a>&nbsp;setField(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;val)</pre>
<div class="block">Sets field value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - Field name.</dd>
<dd><code>val</code> - Field value (cannot be <code>null</code>).</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/ignite/binary/BinaryObject.html#type--"><code>BinaryObject.type()</code></a></dd>
</dl>
</li>
</ul>
<a name="setField-java.lang.String-java.lang.Object-java.lang.Class-">
<!-- -->
</a><a name="setField-java.lang.String-T-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setField</h4>
<pre><span class='angle_bracket'>&lt;</span>T<span class='angle_bracket'>&gt;</span>&nbsp;<a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a>&nbsp;setField(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
@Nullable
T&nbsp;val,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><span class='angle_bracket'>&lt;</span>? super T<span class='angle_bracket'>&gt;</span>&nbsp;type)</pre>
<div class="block">Sets field value with value type specification.
<p>
Field type is needed for proper metadata update.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - Field name.</dd>
<dd><code>val</code> - Field value.</dd>
<dd><code>type</code> - Field type.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/ignite/binary/BinaryObject.html#type--"><code>BinaryObject.type()</code></a></dd>
</dl>
</li>
</ul>
<a name="setField-java.lang.String-org.apache.ignite.binary.BinaryObjectBuilder-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setField</h4>
<pre><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a>&nbsp;setField(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
@Nullable
@Nullable <a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a>&nbsp;builder)</pre>
<div class="block">Sets field value.
<p>
This method should be used if field is binary object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - Field name.</dd>
<dd><code>builder</code> - Builder for object field.</dd>
</dl>
</li>
</ul>
<a name="removeField-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeField</h4>
<pre><a href="../../../../org/apache/ignite/binary/BinaryObjectBuilder.html" title="interface in org.apache.ignite.binary">BinaryObjectBuilder</a>&nbsp;removeField(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fieldName)</pre>
<div class="block">Removes field from this builder.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fieldName</code> - Field name.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> instance for chaining.</dd>
</dl>
</li>
</ul>
<a name="build--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>build</h4>
<pre><a href="../../../../org/apache/ignite/binary/BinaryObject.html" title="interface in org.apache.ignite.binary">BinaryObject</a>&nbsp;build()
throws <a href="../../../../org/apache/ignite/binary/BinaryObjectException.html" title="class in org.apache.ignite.binary">BinaryObjectException</a></pre>
<div class="block">Builds binary object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Binary object.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/ignite/binary/BinaryObjectException.html" title="class in org.apache.ignite.binary">BinaryObjectException</a></code> - In case of error.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BinaryObjectBuilder.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>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/ignite/binary/BinaryObject.html" title="interface in org.apache.ignite.binary"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/ignite/binary/BinaryObjectException.html" title="class in org.apache.ignite.binary"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/ignite/binary/BinaryObjectBuilder.html" target="_top">Frames</a></li>
<li><a href="BinaryObjectBuilder.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2021 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.11.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 20 2021 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>