blob: 6a6531fa9f92ab8f768ecc7ee74c1c757f235a1e [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_40) on Thu Jul 20 13:17:30 PDT 2017 -->
<title>SalesforceRestWriter (gobblin-core 0.11.0 API)</title>
<meta name="date" content="2017-07-20">
<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="SalesforceRestWriter (gobblin-core 0.11.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance 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="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="../../../gobblin/writer/http/RestWriterBuilder.html" title="class in gobblin.writer.http"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../gobblin/writer/http/SalesforceRestWriter.Operation.html" title="enum in gobblin.writer.http"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?gobblin/writer/http/SalesforceRestWriter.html" target="_top">Frames</a></li>
<li><a href="SalesforceRestWriter.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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">gobblin.writer.http</div>
<h2 title="Class SalesforceRestWriter" class="title">Class SalesforceRestWriter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/7/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><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-core-base/gobblin/instrumented/writer/InstrumentedDataWriter.html?is-external=true" title="class or interface in gobblin.instrumented.writer">gobblin.instrumented.writer.InstrumentedDataWriter</a>&lt;D&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../gobblin/writer/http/AbstractHttpWriter.html" title="class in gobblin.writer.http">gobblin.writer.http.AbstractHttpWriter</a>&lt;D&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../gobblin/writer/http/HttpWriter.html" title="class in gobblin.writer.http">gobblin.writer.http.HttpWriter</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../gobblin/writer/http/RestJsonWriter.html" title="class in gobblin.writer.http">gobblin.writer.http.RestJsonWriter</a></li>
<li>
<ul class="inheritance">
<li>gobblin.writer.http.SalesforceRestWriter</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-core-base/gobblin/instrumented/Instrumentable.html?is-external=true" title="class or interface in gobblin.instrumented">Instrumentable</a>, <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/util/FinalState.html?is-external=true" title="class or interface in gobblin.util">FinalState</a>, <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/writer/DataWriter.html?is-external=true" title="class or interface in gobblin.writer">DataWriter</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;, <a href="../../../gobblin/writer/http/HttpWriterDecoration.html" title="interface in gobblin.writer.http">HttpWriterDecoration</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;, <a href="https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">SalesforceRestWriter</span>
extends <a href="../../../gobblin/writer/http/RestJsonWriter.html" title="class in gobblin.writer.http">RestJsonWriter</a></pre>
<div class="block">Writes to Salesforce via RESTful API, supporting INSERT_ONLY_NOT_EXIST, and UPSERT.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.Operation.html" title="enum in gobblin.writer.http">SalesforceRestWriter.Operation</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/io/Closer.html?is-external=true" title="class or interface in com.google.common.io">Closer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#closer">closer</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#DEFAULT_WRITER_METRICS_UPDATER_INTERVAL">DEFAULT_WRITER_METRICS_UPDATER_INTERVAL</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#WRITER_METRICS_UPDATER_INTERVAL">WRITER_METRICS_UPDATER_INTERVAL</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.gobblin.writer.http.AbstractHttpWriter">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;gobblin.writer.http.<a href="../../../gobblin/writer/http/AbstractHttpWriter.html" title="class in gobblin.writer.http">AbstractHttpWriter</a></h3>
<code><a href="../../../gobblin/writer/http/AbstractHttpWriter.html#client">client</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#debugLogEnabled">debugLogEnabled</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#log">log</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#SalesforceRestWriter-gobblin.writer.http.SalesForceRestWriterBuilder-">SalesforceRestWriter</a></span>(<a href="../../../gobblin/writer/http/SalesForceRestWriterBuilder.html" title="class in gobblin.writer.http">SalesForceRestWriterBuilder</a>&nbsp;builder)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#flush--">flush</a></span>()</code>
<div class="block">If writer supports batch, override this method.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#onConnect-java.net.URI-">onConnect</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&nbsp;serverHost)</code>
<div class="block">Retrieve access token, if needed, retrieve instance url, and set server host URL
A callback triggered before attempting to connect to a new host.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/base/Optional.html?is-external=true" title="class or interface in com.google.common.base">Optional</a>&lt;org.apache.http.client.methods.HttpUriRequest&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#onNewRecord-gobblin.converter.http.RestEntry-">onNewRecord</a></span>(<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&nbsp;record)</code>
<div class="block">For single request, creates HttpUriRequest and decides post/patch operation based on input parameter.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#processResponse-org.apache.http.client.methods.CloseableHttpResponse-">processResponse</a></span>(org.apache.http.client.methods.CloseableHttpResponse&nbsp;response)</code>
<div class="block">Make it fail (throw exception) if status code is greater or equal to 400 except,
the status code is 400 and error code is duplicate value, regard it as success(do not throw exception).</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#recordsWritten--">recordsWritten</a></span>()</code></td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../gobblin/writer/http/SalesforceRestWriter.html#regenerateMetrics--">regenerateMetrics</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.gobblin.writer.http.HttpWriter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;gobblin.writer.http.<a href="../../../gobblin/writer/http/HttpWriter.html" title="class in gobblin.writer.http">HttpWriter</a></h3>
<code><a href="../../../gobblin/writer/http/HttpWriter.html#chooseServerHost--">chooseServerHost</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.gobblin.writer.http.AbstractHttpWriter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;gobblin.writer.http.<a href="../../../gobblin/writer/http/AbstractHttpWriter.html" title="class in gobblin.writer.http">AbstractHttpWriter</a></h3>
<code><a href="../../../gobblin/writer/http/AbstractHttpWriter.html#bytesWritten--">bytesWritten</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#cleanup--">cleanup</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#close--">close</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#commit--">commit</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#getCurServerHost--">getCurServerHost</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#getLog--">getLog</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#isRetry--">isRetry</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#sendRequest-org.apache.http.client.methods.HttpUriRequest-">sendRequest</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#waitForResponse-com.google.common.util.concurrent.ListenableFuture-">waitForResponse</a>, <a href="../../../gobblin/writer/http/AbstractHttpWriter.html#writeImpl-D-">writeImpl</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.gobblin.instrumented.writer.InstrumentedDataWriter">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;gobblin.instrumented.writer.<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-core-base/gobblin/instrumented/writer/InstrumentedDataWriter.html?is-external=true" title="class or interface in gobblin.instrumented.writer">InstrumentedDataWriter</a></h3>
<code><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-core-base/gobblin/instrumented/writer/InstrumentedDataWriter.html?is-external=true#write-D-" title="class or interface in gobblin.instrumented.writer">write</a></code></li>
</ul>
<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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/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/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.gobblin.writer.DataWriter">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;gobblin.writer.<a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/writer/DataWriter.html?is-external=true" title="class or interface in gobblin.writer">DataWriter</a></h3>
<code><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/writer/DataWriter.html?is-external=true#getMessageHandler--" title="class or interface in gobblin.writer">getMessageHandler</a>, <a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/writer/DataWriter.html?is-external=true#writeEnvelope-gobblin.stream.RecordEnvelope-" title="class or interface in gobblin.writer">writeEnvelope</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="closer">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closer</h4>
<pre>protected final&nbsp;<a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/io/Closer.html?is-external=true" title="class or interface in com.google.common.io">Closer</a> closer</pre>
</li>
</ul>
<a name="WRITER_METRICS_UPDATER_INTERVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WRITER_METRICS_UPDATER_INTERVAL</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> WRITER_METRICS_UPDATER_INTERVAL</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#gobblin.writer.http.SalesforceRestWriter.WRITER_METRICS_UPDATER_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_WRITER_METRICS_UPDATER_INTERVAL">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT_WRITER_METRICS_UPDATER_INTERVAL</h4>
<pre>public static final&nbsp;long DEFAULT_WRITER_METRICS_UPDATER_INTERVAL</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#gobblin.writer.http.SalesforceRestWriter.DEFAULT_WRITER_METRICS_UPDATER_INTERVAL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SalesforceRestWriter-gobblin.writer.http.SalesForceRestWriterBuilder-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SalesforceRestWriter</h4>
<pre>public&nbsp;SalesforceRestWriter(<a href="../../../gobblin/writer/http/SalesForceRestWriterBuilder.html" title="class in gobblin.writer.http">SalesForceRestWriterBuilder</a>&nbsp;builder)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="onConnect-java.net.URI-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onConnect</h4>
<pre>public&nbsp;void&nbsp;onConnect(<a href="https://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&nbsp;serverHost)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Retrieve access token, if needed, retrieve instance url, and set server host URL
A callback triggered before attempting to connect to a new host. Subclasses can override this
method to customize the connect logic.
For example, they can implement OAuth authentication.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../gobblin/writer/http/HttpWriterDecoration.html#onConnect-java.net.URI-">onConnect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../gobblin/writer/http/HttpWriterDecoration.html" title="interface in gobblin.writer.http">HttpWriterDecoration</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../gobblin/writer/http/HttpWriter.html#onConnect-java.net.URI-">onConnect</a></code>&nbsp;in class&nbsp;<code><a href="../../../gobblin/writer/http/HttpWriter.html" title="class in gobblin.writer.http">HttpWriter</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>gobblin.writer.http.HttpWriter#onConnect(org.apache.http.HttpHost)</code></dd>
</dl>
</li>
</ul>
<a name="onNewRecord-gobblin.converter.http.RestEntry-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onNewRecord</h4>
<pre>public&nbsp;<a href="http://google.github.io/guava/releases/15.0/api/docs/com/google/common/base/Optional.html?is-external=true" title="class or interface in com.google.common.base">Optional</a>&lt;org.apache.http.client.methods.HttpUriRequest&gt;&nbsp;onNewRecord(<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&nbsp;record)</pre>
<div class="block">For single request, creates HttpUriRequest and decides post/patch operation based on input parameter.
For batch request, add the record into JsonArray as a subrequest and only creates HttpUriRequest with POST method if it filled the batch size.
A callback that allows the subclasses to customize the construction of an HTTP request based on
incoming records. Customization may include, setting the URL, headers, buffering, etc.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../gobblin/writer/http/HttpWriterDecoration.html#onNewRecord-D-">onNewRecord</a></code>&nbsp;in interface&nbsp;<code><a href="../../../gobblin/writer/http/HttpWriterDecoration.html" title="interface in gobblin.writer.http">HttpWriterDecoration</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../gobblin/writer/http/RestJsonWriter.html#onNewRecord-gobblin.converter.http.RestEntry-">onNewRecord</a></code>&nbsp;in class&nbsp;<code><a href="../../../gobblin/writer/http/RestJsonWriter.html" title="class in gobblin.writer.http">RestJsonWriter</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>record</code> - the new record to be written</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current request object; if absent no further processing will happen</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>gobblin.writer.http.RestJsonWriter#onNewRecord(gobblin.converter.rest.RestEntry)</code></dd>
</dl>
</li>
</ul>
<a name="flush--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flush</h4>
<pre>public&nbsp;void&nbsp;flush()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../gobblin/writer/http/AbstractHttpWriter.html#flush--">AbstractHttpWriter</a></code></span></div>
<div class="block">If writer supports batch, override this method.
(Be aware of failure and retry as flush can be called multiple times in case of failure @see SalesforceRestWriter )</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../gobblin/writer/http/AbstractHttpWriter.html#flush--">flush</a></code>&nbsp;in class&nbsp;<code><a href="../../../gobblin/writer/http/AbstractHttpWriter.html" title="class in gobblin.writer.http">AbstractHttpWriter</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;</code></dd>
</dl>
</li>
</ul>
<a name="processResponse-org.apache.http.client.methods.CloseableHttpResponse-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>processResponse</h4>
<pre>public&nbsp;void&nbsp;processResponse(org.apache.http.client.methods.CloseableHttpResponse&nbsp;response)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="../../../gobblin/writer/http/UnexpectedResponseException.html" title="class in gobblin.writer.http">UnexpectedResponseException</a></pre>
<div class="block">Make it fail (throw exception) if status code is greater or equal to 400 except,
the status code is 400 and error code is duplicate value, regard it as success(do not throw exception).
If status code is 401 or 403, re-acquire access token before make it fail -- retry will take care of rest.
Default implementation where any status code equal to or greater than 400 is regarded as a failure.
Processes the response</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../gobblin/writer/http/HttpWriterDecoration.html#processResponse-org.apache.http.client.methods.CloseableHttpResponse-">processResponse</a></code>&nbsp;in interface&nbsp;<code><a href="../../../gobblin/writer/http/HttpWriterDecoration.html" title="interface in gobblin.writer.http">HttpWriterDecoration</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../gobblin/writer/http/AbstractHttpWriter.html#processResponse-org.apache.http.client.methods.CloseableHttpResponse-">processResponse</a></code>&nbsp;in class&nbsp;<code><a href="../../../gobblin/writer/http/AbstractHttpWriter.html" title="class in gobblin.writer.http">AbstractHttpWriter</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if there was a problem reading the response</dd>
<dd><code><a href="../../../gobblin/writer/http/UnexpectedResponseException.html" title="class in gobblin.writer.http">UnexpectedResponseException</a></code> - if the response was unexpected</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>gobblin.writer.http.HttpWriter#processResponse(org.apache.http.HttpResponse)</code></dd>
</dl>
</li>
</ul>
<a name="recordsWritten--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recordsWritten</h4>
<pre>public&nbsp;long&nbsp;recordsWritten()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/writer/DataWriter.html?is-external=true#recordsWritten--" title="class or interface in gobblin.writer">recordsWritten</a></code>&nbsp;in interface&nbsp;<code><a href="http://linkedin.github.io/gobblin/javadoc/0.11.0/gobblin-api/gobblin/writer/DataWriter.html?is-external=true" title="class or interface in gobblin.writer">DataWriter</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../gobblin/writer/http/AbstractHttpWriter.html#recordsWritten--">recordsWritten</a></code>&nbsp;in class&nbsp;<code><a href="../../../gobblin/writer/http/AbstractHttpWriter.html" title="class in gobblin.writer.http">AbstractHttpWriter</a>&lt;<a href="../../../gobblin/converter/http/RestEntry.html" title="class in gobblin.converter.http">RestEntry</a>&lt;com.google.gson.JsonObject&gt;&gt;</code></dd>
</dl>
</li>
</ul>
<a name="regenerateMetrics--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>regenerateMetrics</h4>
<pre>protected&nbsp;void&nbsp;regenerateMetrics()</pre>
</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="../../../gobblin/writer/http/RestWriterBuilder.html" title="class in gobblin.writer.http"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../gobblin/writer/http/SalesforceRestWriter.Operation.html" title="enum in gobblin.writer.http"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?gobblin/writer/http/SalesforceRestWriter.html" target="_top">Frames</a></li>
<li><a href="SalesforceRestWriter.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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>