blob: bc8bbbfc60b4292e246aa9dcaa96f450706ef234 [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 -->
<title>PdxSerializable (Apache Geode 1.15.1)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="PdxSerializable (Apache Geode 1.15.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":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="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/geode/pdx/PdxRegistryMismatchException.html" title="class in org.apache.geode.pdx"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/geode/pdx/PdxSerializationException.html" title="class in org.apache.geode.pdx"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/geode/pdx/PdxSerializable.html" target="_top">Frames</a></li>
<li><a href="PdxSerializable.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.geode.pdx</div>
<h2 title="Interface PdxSerializable" class="title">Interface PdxSerializable</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">PdxSerializable</span></pre>
<div class="block">When a domain class implements PdxSerializable it marks itself as a PDX. The implementation of
<a href="../../../../org/apache/geode/pdx/PdxSerializable.html#toData-org.apache.geode.pdx.PdxWriter-"><code>toData</code></a> provides the serialization code and <a href="../../../../org/apache/geode/pdx/PdxSerializable.html#fromData-org.apache.geode.pdx.PdxReader-"><code>fromData</code></a> provides
the deserialization code. These methods also define each field name and field type of the PDX.
Domain classes should serialize and deserialize all its member fields in the same order in toData
and fromData method. Also fromData and toData must read and write the same fields each time they
are called. A domain class that implements this interface must also have a public zero-arg
constructor which is used during deserialization.
<p>
Simple example:
<PRE>
public class User implements PdxSerializable {
private String name;
private int userId;
public User() {}
public void toData(PdxWriter out) {
out.writeString("name", this.name);
out.writeInt("userId", this.userId);
}
public void fromData(PdxReader in) {
this.name = in.readString("name");
this.userId = in.readInt("userId");
}
}
</PRE></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.6</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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/pdx/PdxSerializable.html#fromData-org.apache.geode.pdx.PdxReader-">fromData</a></span>(<a href="../../../../org/apache/geode/pdx/PdxReader.html" title="interface in org.apache.geode.pdx">PdxReader</a>&nbsp;reader)</code>
<div class="block">Deserializes the PDX fields using the given reader.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/pdx/PdxSerializable.html#toData-org.apache.geode.pdx.PdxWriter-">toData</a></span>(<a href="../../../../org/apache/geode/pdx/PdxWriter.html" title="interface in org.apache.geode.pdx">PdxWriter</a>&nbsp;writer)</code>
<div class="block">Serializes the PDX fields using the given writer.</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="toData-org.apache.geode.pdx.PdxWriter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toData</h4>
<pre>void&nbsp;toData(<a href="../../../../org/apache/geode/pdx/PdxWriter.html" title="interface in org.apache.geode.pdx">PdxWriter</a>&nbsp;writer)</pre>
<div class="block">Serializes the PDX fields using the given writer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>writer</code> - the <a href="../../../../org/apache/geode/pdx/PdxWriter.html" title="interface in org.apache.geode.pdx"><code>PdxWriter</code></a> to use to write the PDX fields.</dd>
</dl>
</li>
</ul>
<a name="fromData-org.apache.geode.pdx.PdxReader-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>fromData</h4>
<pre>void&nbsp;fromData(<a href="../../../../org/apache/geode/pdx/PdxReader.html" title="interface in org.apache.geode.pdx">PdxReader</a>&nbsp;reader)</pre>
<div class="block">Deserializes the PDX fields using the given reader.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reader</code> - the <a href="../../../../org/apache/geode/pdx/PdxReader.html" title="interface in org.apache.geode.pdx"><code>PdxReader</code></a> to use to read the PDX fields.</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="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/geode/pdx/PdxRegistryMismatchException.html" title="class in org.apache.geode.pdx"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/geode/pdx/PdxSerializationException.html" title="class in org.apache.geode.pdx"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/geode/pdx/PdxSerializable.html" target="_top">Frames</a></li>
<li><a href="PdxSerializable.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 ======= -->
</body>
</html>