<!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_292) on Tue Jun 15 06:13:06 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ColumnRWHelper (Apache Hadoop YARN TimelineService HBase Client 3.3.1 API)</title>
<meta name="date" content="2021-06-15">
<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="ColumnRWHelper (Apache Hadoop YARN TimelineService HBase Client 3.3.1 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete 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/ColumnRWHelper.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/hadoop/yarn/server/timelineservice/storage/common/BaseTableRW.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/HBaseTimelineStorageUtils.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html" target="_top">Frames</a></li>
<li><a href="ColumnRWHelper.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.hadoop.yarn.server.timelineservice.storage.common</div>
<h2 title="Class ColumnRWHelper" class="title">Class ColumnRWHelper</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnRWHelper</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <span class="typeNameLabel">ColumnRWHelper</span>
extends <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></pre>
<div class="block">A set of utility functions that read or read to a column.
 This class is meant to be used only by explicit Columns,
 and not directly to write by clients.</div>
</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete 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>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#readResult-org.apache.hadoop.hbase.client.Result-byte:A-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter-">readResult</a></span>(org.apache.hadoop.hbase.client.Result&nbsp;result,
          byte[]&nbsp;columnFamilyBytes,
          byte[]&nbsp;columnQualifierBytes,
          org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter&nbsp;converter)</code>
<div class="block">Get the latest version of this specified column.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#readResult-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.yarn.server.timelineservice.storage.common.Column-">readResult</a></span>(org.apache.hadoop.hbase.client.Result&nbsp;result,
          org.apache.hadoop.yarn.server.timelineservice.storage.common.Column&lt;?&gt;&nbsp;column)</code>
<div class="block">Get the latest version of this specified column.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#readResult-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-java.lang.String-">readResult</a></span>(org.apache.hadoop.hbase.client.Result&nbsp;result,
          org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
          <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;qualifier)</code>
<div class="block">Get the latest version of this specified column.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static &lt;K&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;K,<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>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#readResults-org.apache.hadoop.hbase.client.Result-byte:A-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter-org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter-">readResults</a></span>(org.apache.hadoop.hbase.client.Result&nbsp;result,
           byte[]&nbsp;columnFamilyBytes,
           byte[]&nbsp;columnPrefixBytes,
           org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter&lt;K&gt;&nbsp;keyConverter,
           org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter&nbsp;valueConverter)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static &lt;K&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;K,<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>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#readResults-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter-">readResults</a></span>(org.apache.hadoop.hbase.client.Result&nbsp;result,
           org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
           org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter&lt;K&gt;&nbsp;keyConverter)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static &lt;K,V&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;K,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,V&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#readResultsWithTimestamps-org.apache.hadoop.hbase.client.Result-byte:A-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter-org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter-boolean-">readResultsWithTimestamps</a></span>(org.apache.hadoop.hbase.client.Result&nbsp;result,
                         byte[]&nbsp;columnFamilyBytes,
                         byte[]&nbsp;columnPrefixBytes,
                         org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter&lt;K&gt;&nbsp;keyConverter,
                         org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter&nbsp;valueConverter,
                         boolean&nbsp;supplementTs)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static &lt;K,V&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;K,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,V&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#readResultsWithTimestamps-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter-">readResultsWithTimestamps</a></span>(org.apache.hadoop.hbase.client.Result&nbsp;result,
                         org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
                         org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter&lt;K&gt;&nbsp;keyConverter)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#store-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.TypedBufferedMutator-byte:A-byte:A-java.lang.Long-boolean-java.lang.Object-org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter-org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...-">store</a></span>(byte[]&nbsp;rowKey,
     <a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/TypedBufferedMutator.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common">TypedBufferedMutator</a>&lt;?&gt;&nbsp;tableMutator,
     byte[]&nbsp;columnFamilyBytes,
     byte[]&nbsp;columnQualifier,
     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;timestamp,
     boolean&nbsp;supplementTs,
     <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;inputValue,
     org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter&nbsp;converter,
     org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...&nbsp;attributes)</code>
<div class="block">Sends a Mutation to the table.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#store-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.TypedBufferedMutator-org.apache.hadoop.yarn.server.timelineservice.storage.common.Column-java.lang.Long-java.lang.Object-org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...-">store</a></span>(byte[]&nbsp;rowKey,
     <a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/TypedBufferedMutator.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common">TypedBufferedMutator</a>&lt;?&gt;&nbsp;tableMutator,
     org.apache.hadoop.yarn.server.timelineservice.storage.common.Column&lt;?&gt;&nbsp;column,
     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;timestamp,
     <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;inputValue,
     org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...&nbsp;attributes)</code>
<div class="block">Sends a Mutation to the table.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#store-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.TypedBufferedMutator-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-byte:A-java.lang.Long-java.lang.Object-org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...-">store</a></span>(byte[]&nbsp;rowKey,
     <a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/TypedBufferedMutator.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common">TypedBufferedMutator</a>&lt;?&gt;&nbsp;tableMutator,
     org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
     byte[]&nbsp;qualifier,
     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;timestamp,
     <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;inputValue,
     org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...&nbsp;attributes)</code>
<div class="block">Sends a Mutation to the table.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html#store-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.TypedBufferedMutator-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-java.lang.String-java.lang.Long-java.lang.Object-org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...-">store</a></span>(byte[]&nbsp;rowKey,
     <a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/TypedBufferedMutator.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common">TypedBufferedMutator</a>&lt;?&gt;&nbsp;tableMutator,
     org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
     <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;qualifier,
     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;timestamp,
     <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;inputValue,
     org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...&nbsp;attributes)</code>
<div class="block">Sends a Mutation to the table.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<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></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</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="store-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.TypedBufferedMutator-org.apache.hadoop.yarn.server.timelineservice.storage.common.Column-java.lang.Long-java.lang.Object-org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>store</h4>
<pre>public static&nbsp;void&nbsp;store(byte[]&nbsp;rowKey,
                         <a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/TypedBufferedMutator.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common">TypedBufferedMutator</a>&lt;?&gt;&nbsp;tableMutator,
                         org.apache.hadoop.yarn.server.timelineservice.storage.common.Column&lt;?&gt;&nbsp;column,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;timestamp,
                         <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;inputValue,
                         org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...&nbsp;attributes)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Sends a Mutation to the table. The mutations will be buffered and sent over
 the wire as part of a batch.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowKey</code> - identifying the row to write. Nothing gets written when null.</dd>
<dd><code>tableMutator</code> - used to modify the underlying HBase table</dd>
<dd><code>column</code> - the column that is to be modified</dd>
<dd><code>timestamp</code> - version timestamp. When null the current timestamp multiplied with
          TimestampGenerator.TS_MULTIPLIER and added with last 3 digits of
          app id will be used</dd>
<dd><code>inputValue</code> - the value to write to the rowKey and column qualifier. Nothing
          gets written when null.</dd>
<dd><code>attributes</code> - Attributes to be set for HBase Put.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if any problem occurs during store operation(sending
          mutation to table).</dd>
</dl>
</li>
</ul>
<a name="store-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.TypedBufferedMutator-byte:A-byte:A-java.lang.Long-boolean-java.lang.Object-org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter-org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>store</h4>
<pre>public static&nbsp;void&nbsp;store(byte[]&nbsp;rowKey,
                         <a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/TypedBufferedMutator.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common">TypedBufferedMutator</a>&lt;?&gt;&nbsp;tableMutator,
                         byte[]&nbsp;columnFamilyBytes,
                         byte[]&nbsp;columnQualifier,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;timestamp,
                         boolean&nbsp;supplementTs,
                         <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;inputValue,
                         org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter&nbsp;converter,
                         org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...&nbsp;attributes)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Sends a Mutation to the table. The mutations will be buffered and sent over
 the wire as part of a batch.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowKey</code> - identifying the row to write. Nothing gets written when null.</dd>
<dd><code>tableMutator</code> - used to modify the underlying HBase table</dd>
<dd><code>columnFamilyBytes</code> - </dd>
<dd><code>columnQualifier</code> - column qualifier. Nothing gets written when null.</dd>
<dd><code>timestamp</code> - version timestamp. When null the current timestamp multiplied with
          TimestampGenerator.TS_MULTIPLIER and added with last 3 digits of
          app id will be used</dd>
<dd><code>inputValue</code> - the value to write to the rowKey and column qualifier. Nothing
          gets written when null.</dd>
<dd><code>converter</code> - </dd>
<dd><code>attributes</code> - Attributes to be set for HBase Put.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if any problem occurs during store operation(sending
          mutation to table).</dd>
</dl>
</li>
</ul>
<a name="readResult-org.apache.hadoop.hbase.client.Result-byte:A-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readResult</h4>
<pre>public static&nbsp;<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;readResult(org.apache.hadoop.hbase.client.Result&nbsp;result,
                                byte[]&nbsp;columnFamilyBytes,
                                byte[]&nbsp;columnQualifierBytes,
                                org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter&nbsp;converter)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Get the latest version of this specified column. Note: this call clones the
 value content of the hosting <code>Cell</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>result</code> - from which to read the value. Cannot be null</dd>
<dd><code>columnFamilyBytes</code> - </dd>
<dd><code>columnQualifierBytes</code> - referring to the column to be read.</dd>
<dd><code>converter</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>latest version of the specified column of whichever object was
         written.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if any problem occurs while reading result.</dd>
</dl>
</li>
</ul>
<a name="readResult-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.yarn.server.timelineservice.storage.common.Column-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readResult</h4>
<pre>public static&nbsp;<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;readResult(org.apache.hadoop.hbase.client.Result&nbsp;result,
                                org.apache.hadoop.yarn.server.timelineservice.storage.common.Column&lt;?&gt;&nbsp;column)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Get the latest version of this specified column. Note: this call clones the
 value content of the hosting <code>Cell</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>result</code> - from which to read the value. Cannot be null</dd>
<dd><code>column</code> - the column that the result can be parsed to</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>latest version of the specified column of whichever object was
         written.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if any problem occurs while reading result.</dd>
</dl>
</li>
</ul>
<a name="readResult-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readResult</h4>
<pre>public static&nbsp;<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;readResult(org.apache.hadoop.hbase.client.Result&nbsp;result,
                                org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
                                <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;qualifier)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Get the latest version of this specified column. Note: this call clones the
 value content of the hosting <code>Cell</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>result</code> - Cannot be null</dd>
<dd><code>columnPrefix</code> - column prefix to read from</dd>
<dd><code>qualifier</code> - column qualifier. Nothing gets read when null.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>result object (can be cast to whatever object was written to) or
         null when specified column qualifier for this prefix doesn't exist
         in the result.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there is any exception encountered while reading
     result.</dd>
</dl>
</li>
</ul>
<a name="readResults-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readResults</h4>
<pre>public static&nbsp;&lt;K&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;K,<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>&gt;&nbsp;readResults(org.apache.hadoop.hbase.client.Result&nbsp;result,
                                            org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
                                            org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter&lt;K&gt;&nbsp;keyConverter)
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - identifies the type of key converter.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>result</code> - from which to read columns.</dd>
<dd><code>keyConverter</code> - used to convert column bytes to the appropriate key
          type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the latest values of columns in the column family with this prefix
         (or all of them if the prefix value is null).</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there is any exception encountered while reading
           results.</dd>
</dl>
</li>
</ul>
<a name="readResultsWithTimestamps-org.apache.hadoop.hbase.client.Result-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readResultsWithTimestamps</h4>
<pre>public static&nbsp;&lt;K,V&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;K,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,V&gt;&gt;&nbsp;readResultsWithTimestamps(org.apache.hadoop.hbase.client.Result&nbsp;result,
                                                                                   org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
                                                                                   org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter&lt;K&gt;&nbsp;keyConverter)
                                                                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - identifies the type of key converter.</dd>
<dd><code>V</code> - the type of the values. The values will be cast into that type.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>result</code> - from which to reads data with timestamps.</dd>
<dd><code>keyConverter</code> - used to convert column bytes to the appropriate key
     type.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the cell values at each respective time in for form
         {idA={timestamp1-&gt;value1}, idA={timestamp2-&gt;value2},
         idB={timestamp3-&gt;value3}, idC={timestamp1-&gt;value4}}</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there is any exception encountered while reading
     result.</dd>
</dl>
</li>
</ul>
<a name="readResultsWithTimestamps-org.apache.hadoop.hbase.client.Result-byte:A-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter-org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readResultsWithTimestamps</h4>
<pre>public static&nbsp;&lt;K,V&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;K,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,V&gt;&gt;&nbsp;readResultsWithTimestamps(org.apache.hadoop.hbase.client.Result&nbsp;result,
                                                                                   byte[]&nbsp;columnFamilyBytes,
                                                                                   byte[]&nbsp;columnPrefixBytes,
                                                                                   org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter&lt;K&gt;&nbsp;keyConverter,
                                                                                   org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter&nbsp;valueConverter,
                                                                                   boolean&nbsp;supplementTs)
                                                                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - identifies the type of column name(indicated by type of key
     converter).</dd>
<dd><code>V</code> - the type of the values. The values will be cast into that type.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>result</code> - from which to reads data with timestamps</dd>
<dd><code>columnPrefixBytes</code> - optional prefix to limit columns. If null all
          columns are returned.</dd>
<dd><code>keyConverter</code> - used to convert column bytes to the appropriate key
     type.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the cell values at each respective time in for form
         {idA={timestamp1-&gt;value1}, idA={timestamp2-&gt;value2},
         idB={timestamp3-&gt;value3}, idC={timestamp1-&gt;value4}}</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if any problem occurs while reading results.</dd>
</dl>
</li>
</ul>
<a name="readResults-org.apache.hadoop.hbase.client.Result-byte:A-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter-org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readResults</h4>
<pre>public static&nbsp;&lt;K&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;K,<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>&gt;&nbsp;readResults(org.apache.hadoop.hbase.client.Result&nbsp;result,
                                            byte[]&nbsp;columnFamilyBytes,
                                            byte[]&nbsp;columnPrefixBytes,
                                            org.apache.hadoop.yarn.server.timelineservice.storage.common.KeyConverter&lt;K&gt;&nbsp;keyConverter,
                                            org.apache.hadoop.yarn.server.timelineservice.storage.common.ValueConverter&nbsp;valueConverter)
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - identifies the type of column name(indicated by type of key
     converter).</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>result</code> - from which to read columns</dd>
<dd><code>columnPrefixBytes</code> - optional prefix to limit columns. If null all
        columns are returned.</dd>
<dd><code>keyConverter</code> - used to convert column bytes to the appropriate key
          type.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the latest values of columns in the column family. If the column
         prefix is null, the column qualifier is returned as Strings. For a
         non-null column prefix bytes, the column qualifier is returned as
         a list of parts, each part a byte[]. This is to facilitate
         returning byte arrays of values that were not Strings.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if any problem occurs while reading results.</dd>
</dl>
</li>
</ul>
<a name="store-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.TypedBufferedMutator-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-byte:A-java.lang.Long-java.lang.Object-org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>store</h4>
<pre>public static&nbsp;void&nbsp;store(byte[]&nbsp;rowKey,
                         <a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/TypedBufferedMutator.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common">TypedBufferedMutator</a>&lt;?&gt;&nbsp;tableMutator,
                         org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
                         byte[]&nbsp;qualifier,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;timestamp,
                         <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;inputValue,
                         org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...&nbsp;attributes)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Sends a Mutation to the table. The mutations will be buffered and sent over
 the wire as part of a batch.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowKey</code> - identifying the row to write. Nothing gets written when null.</dd>
<dd><code>tableMutator</code> - used to modify the underlying HBase table. Caller is
          responsible to pass a mutator for the table that actually has this
          column.</dd>
<dd><code>qualifier</code> - column qualifier. Nothing gets written when null.</dd>
<dd><code>timestamp</code> - version timestamp. When null the server timestamp will be
          used.</dd>
<dd><code>attributes</code> - attributes for the mutation that are used by the
          coprocessor to set/read the cell tags.</dd>
<dd><code>inputValue</code> - the value to write to the rowKey and column qualifier.
          Nothing gets written when null.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there is any exception encountered while doing
     store operation(sending mutation to the table).</dd>
</dl>
</li>
</ul>
<a name="store-byte:A-org.apache.hadoop.yarn.server.timelineservice.storage.common.TypedBufferedMutator-org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix-java.lang.String-java.lang.Long-java.lang.Object-org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>store</h4>
<pre>public static&nbsp;void&nbsp;store(byte[]&nbsp;rowKey,
                         <a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/TypedBufferedMutator.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common">TypedBufferedMutator</a>&lt;?&gt;&nbsp;tableMutator,
                         org.apache.hadoop.yarn.server.timelineservice.storage.common.ColumnPrefix&lt;?&gt;&nbsp;columnPrefix,
                         <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;qualifier,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;timestamp,
                         <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;inputValue,
                         org.apache.hadoop.yarn.server.timelineservice.storage.flow.Attribute...&nbsp;attributes)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Sends a Mutation to the table. The mutations will be buffered and sent over
 the wire as part of a batch.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowKey</code> - identifying the row to write. Nothing gets written when null.</dd>
<dd><code>tableMutator</code> - used to modify the underlying HBase table. Caller is
          responsible to pass a mutator for the table that actually has this
          column.</dd>
<dd><code>qualifier</code> - column qualifier. Nothing gets written when null.</dd>
<dd><code>timestamp</code> - version timestamp. When null the server timestamp will be
          used.</dd>
<dd><code>attributes</code> - attributes for the mutation that are used by the
          coprocessor to set/read the cell tags.</dd>
<dd><code>inputValue</code> - the value to write to the rowKey and column qualifier.
          Nothing gets written when null.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there is any exception encountered while doing
     store operation(sending mutation to the table).</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/ColumnRWHelper.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/hadoop/yarn/server/timelineservice/storage/common/BaseTableRW.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/hadoop/yarn/server/timelineservice/storage/common/HBaseTimelineStorageUtils.html" title="class in org.apache.hadoop.yarn.server.timelineservice.storage.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/hadoop/yarn/server/timelineservice/storage/common/ColumnRWHelper.html" target="_top">Frames</a></li>
<li><a href="ColumnRWHelper.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>Copyright &#169; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
