blob: 787314868f086ebb4cde89143e525c7b19efb7c2 [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:15:18 PDT 2017 -->
<title>DataPublisher (gobblin-api 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="DataPublisher (gobblin-api 0.11.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":9,"i2":10,"i3":38,"i4":10,"i5":10,"i6":6,"i7":6,"i8":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated 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>Prev&nbsp;Class</li>
<li><a href="../../gobblin/publisher/SingleTaskDataPublisher.html" title="class in gobblin.publisher"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?gobblin/publisher/DataPublisher.html" target="_top">Frames</a></li>
<li><a href="DataPublisher.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><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.publisher</div>
<h2 title="Class DataPublisher" class="title">Class DataPublisher</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>gobblin.publisher.DataPublisher</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><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>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../gobblin/publisher/SingleTaskDataPublisher.html" title="class in gobblin.publisher">SingleTaskDataPublisher</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">DataPublisher</span>
extends <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>
implements <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></pre>
<div class="block">Defines how to publish data and its corresponding metadata. Can be used for either task level or job level publishing.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== 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="../../gobblin/configuration/State.html" title="class in gobblin.configuration">State</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#state">state</a></span></code>&nbsp;</td>
</tr>
</table>
</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/publisher/DataPublisher.html#DataPublisher-gobblin.configuration.State-">DataPublisher</a></span>(<a href="../../gobblin/configuration/State.html" title="class in gobblin.configuration">State</a>&nbsp;state)</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#canBeSkipped--">canBeSkipped</a></span>()</code>
<div class="block">Return true if the current publisher can be skipped.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher">DataPublisher</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#getInstance-java.lang.Class-gobblin.configuration.State-">getInstance</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher">DataPublisher</a>&gt;&nbsp;dataPublisherClass,
<a href="../../gobblin/configuration/State.html" title="class in gobblin.configuration">State</a>&nbsp;state)</code>
<div class="block">Get an instance of <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../gobblin/configuration/State.html" title="class in gobblin.configuration">State</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#getState--">getState</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#initialize--">initialize</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment"><a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a> initialization should be done in the constructor.</span></div>
</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#isThreadSafe--">isThreadSafe</a></span>()</code>
<div class="block">Returns true if the implementation of <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a> is thread-safe.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#publish-java.util.Collection-">publish</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../gobblin/configuration/WorkUnitState.html" title="class in gobblin.configuration">WorkUnitState</a>&gt;&nbsp;states)</code>
<div class="block">First publish the metadata via <a href="../../gobblin/publisher/DataPublisher.html#publishMetadata-java.util.Collection-"><code>publishMetadata(Collection)</code></a>, and then publish the output data
via the <a href="../../gobblin/publisher/DataPublisher.html#publishData-java.util.Collection-"><code>publishData(Collection)</code></a> method.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#publishData-java.util.Collection-">publishData</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../gobblin/configuration/WorkUnitState.html" title="class in gobblin.configuration">WorkUnitState</a>&gt;&nbsp;states)</code>
<div class="block">Publish the data for the given tasks.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#publishMetadata-java.util.Collection-">publishMetadata</a></span>(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../gobblin/configuration/WorkUnitState.html" title="class in gobblin.configuration">WorkUnitState</a>&gt;&nbsp;states)</code>
<div class="block">Publish the metadata (e.g., schema) for the given tasks.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../gobblin/publisher/DataPublisher.html#shouldPublishMetadataFirst--">shouldPublishMetadataFirst</a></span>()</code>
<div class="block">Generally metadata should be published before the data it represents, but this allows subclasses to override
if they are dependent on data getting published first.</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/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.java.io.Closeable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.io.<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></h3>
<code><a href="https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</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="state">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>state</h4>
<pre>protected final&nbsp;<a href="../../gobblin/configuration/State.html" title="class in gobblin.configuration">State</a> state</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="DataPublisher-gobblin.configuration.State-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DataPublisher</h4>
<pre>public&nbsp;DataPublisher(<a href="../../gobblin/configuration/State.html" title="class in gobblin.configuration">State</a>&nbsp;state)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="initialize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public abstract&nbsp;void&nbsp;initialize()
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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment"><a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a> initialization should be done in the constructor.</span></div>
<dl>
<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>
</dl>
</li>
</ul>
<a name="publishData-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publishData</h4>
<pre>public abstract&nbsp;void&nbsp;publishData(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../gobblin/configuration/WorkUnitState.html" title="class in gobblin.configuration">WorkUnitState</a>&gt;&nbsp;states)
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">Publish the data for the given tasks.</div>
<dl>
<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>
</dl>
</li>
</ul>
<a name="publishMetadata-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publishMetadata</h4>
<pre>public abstract&nbsp;void&nbsp;publishMetadata(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../gobblin/configuration/WorkUnitState.html" title="class in gobblin.configuration">WorkUnitState</a>&gt;&nbsp;states)
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">Publish the metadata (e.g., schema) for the given tasks. Checkpoints should not be published as part of metadata.
They are published by Gobblin runtime after the metadata and data are published.</div>
<dl>
<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>
</dl>
</li>
</ul>
<a name="publish-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publish</h4>
<pre>public&nbsp;void&nbsp;publish(<a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../gobblin/configuration/WorkUnitState.html" title="class in gobblin.configuration">WorkUnitState</a>&gt;&nbsp;states)
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">First publish the metadata via <a href="../../gobblin/publisher/DataPublisher.html#publishMetadata-java.util.Collection-"><code>publishMetadata(Collection)</code></a>, and then publish the output data
via the <a href="../../gobblin/publisher/DataPublisher.html#publishData-java.util.Collection-"><code>publishData(Collection)</code></a> method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>states</code> - is a <a href="https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a> of <a href="../../gobblin/configuration/WorkUnitState.html" title="class in gobblin.configuration"><code>WorkUnitState</code></a>s.</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 is a problem with publishing the metadata or the data.</dd>
</dl>
</li>
</ul>
<a name="getState--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getState</h4>
<pre>public&nbsp;<a href="../../gobblin/configuration/State.html" title="class in gobblin.configuration">State</a>&nbsp;getState()</pre>
</li>
</ul>
<a name="getInstance-java.lang.Class-gobblin.configuration.State-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInstance</h4>
<pre>public static&nbsp;<a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher">DataPublisher</a>&nbsp;getInstance(<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher">DataPublisher</a>&gt;&nbsp;dataPublisherClass,
<a href="../../gobblin/configuration/State.html" title="class in gobblin.configuration">State</a>&nbsp;state)
throws <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/ReflectiveOperationException.html?is-external=true" title="class or interface in java.lang">ReflectiveOperationException</a></pre>
<div class="block">Get an instance of <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dataPublisherClass</code> - A concrete class that extends <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a>.</dd>
<dd><code>state</code> - A <a href="../../gobblin/configuration/State.html" title="class in gobblin.configuration"><code>State</code></a> used to instantiate the <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a> instance.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/ReflectiveOperationException.html?is-external=true" title="class or interface in java.lang">ReflectiveOperationException</a></code></dd>
</dl>
</li>
</ul>
<a name="isThreadSafe--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isThreadSafe</h4>
<pre>public&nbsp;boolean&nbsp;isThreadSafe()</pre>
<div class="block">Returns true if the implementation of <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a> is thread-safe.
<p>
For a thread-safe <a href="../../gobblin/publisher/DataPublisher.html" title="class in gobblin.publisher"><code>DataPublisher</code></a>, this method should return this.getClass() == <class>.class
to ensure that any extensions must explicitly be marked as thread safe.
</p></div>
</li>
</ul>
<a name="canBeSkipped--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canBeSkipped</h4>
<pre>public&nbsp;boolean&nbsp;canBeSkipped()</pre>
<div class="block">Return true if the current publisher can be skipped.
<p>
For a publisher that can be skipped, it should not have any effect on state persistence. It will be skipped when
a job is cancelled, and all finished tasks are configured to be committed.
</p></div>
</li>
</ul>
<a name="shouldPublishMetadataFirst--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>shouldPublishMetadataFirst</h4>
<pre>protected&nbsp;boolean&nbsp;shouldPublishMetadataFirst()</pre>
<div class="block">Generally metadata should be published before the data it represents, but this allows subclasses to override
if they are dependent on data getting published first.</div>
</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>Prev&nbsp;Class</li>
<li><a href="../../gobblin/publisher/SingleTaskDataPublisher.html" title="class in gobblin.publisher"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?gobblin/publisher/DataPublisher.html" target="_top">Frames</a></li>
<li><a href="DataPublisher.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><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>