<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.18) on Wed Mar 01 02:01:42 GMT 2023 -->
<title>PhysicalPlans.InstanceInfoOrBuilder (Heron Java API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2023-03-01">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="PhysicalPlans.InstanceInfoOrBuilder (Heron Java API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.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" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.heron.proto.system</a></div>
<h2 title="Interface PhysicalPlans.InstanceInfoOrBuilder" class="title">Interface PhysicalPlans.InstanceInfoOrBuilder</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code>com.google.protobuf.MessageLiteOrBuilder</code>, <code>com.google.protobuf.MessageOrBuilder</code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="PhysicalPlans.InstanceInfo.html" title="class in org.apache.heron.proto.system">PhysicalPlans.InstanceInfo</a></code>, <code><a href="PhysicalPlans.InstanceInfo.Builder.html" title="class in org.apache.heron.proto.system">PhysicalPlans.InstanceInfo.Builder</a></code></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="PhysicalPlans.html" title="class in org.apache.heron.proto.system">PhysicalPlans</a></dd>
</dl>
<hr>
<pre>public static interface <span class="typeNameLabel">PhysicalPlans.InstanceInfoOrBuilder</span>
extends com.google.protobuf.MessageOrBuilder</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getComponentIndex()">getComponentIndex</a></span>()</code></th>
<td class="colLast">
<div class="block">
 specific to this component</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getComponentName()">getComponentName</a></span>()</code></th>
<td class="colLast">
<div class="block"><code>required string component_name = 3;</code></div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>com.google.protobuf.ByteString</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getComponentNameBytes()">getComponentNameBytes</a></span>()</code></th>
<td class="colLast">
<div class="block"><code>required string component_name = 3;</code></div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParams(int)">getParams</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block"><code>repeated string params = 4;</code></div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>com.google.protobuf.ByteString</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParamsBytes(int)">getParamsBytes</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block"><code>repeated string params = 4;</code></div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParamsCount()">getParamsCount</a></span>()</code></th>
<td class="colLast">
<div class="block"><code>repeated string params = 4;</code></div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.util.List&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParamsList()">getParamsList</a></span>()</code></th>
<td class="colLast">
<div class="block"><code>repeated string params = 4;</code></div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteDebuggerPort()">getRemoteDebuggerPort</a></span>()</code></th>
<td class="colLast">
<div class="block">
 the port a remote debugger can be attached to for this instance.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTaskId()">getTaskId</a></span>()</code></th>
<td class="colLast">
<div class="block">
 global</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasComponentIndex()">hasComponentIndex</a></span>()</code></th>
<td class="colLast">
<div class="block">
 specific to this component</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasComponentName()">hasComponentName</a></span>()</code></th>
<td class="colLast">
<div class="block"><code>required string component_name = 3;</code></div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasRemoteDebuggerPort()">hasRemoteDebuggerPort</a></span>()</code></th>
<td class="colLast">
<div class="block">
 the port a remote debugger can be attached to for this instance.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasTaskId()">hasTaskId</a></span>()</code></th>
<td class="colLast">
<div class="block">
 global</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.google.protobuf.MessageLiteOrBuilder">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;com.google.protobuf.MessageLiteOrBuilder</h3>
<code>isInitialized</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.google.protobuf.MessageOrBuilder">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;com.google.protobuf.MessageOrBuilder</h3>
<code>findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="hasTaskId()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasTaskId</h4>
<pre class="methodSignature">boolean&nbsp;hasTaskId()</pre>
<div class="block"><pre>
 global
 </pre>

 <code>required int32 task_id = 1;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the taskId field is set.</dd>
</dl>
</li>
</ul>
<a id="getTaskId()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTaskId</h4>
<pre class="methodSignature">int&nbsp;getTaskId()</pre>
<div class="block"><pre>
 global
 </pre>

 <code>required int32 task_id = 1;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The taskId.</dd>
</dl>
</li>
</ul>
<a id="hasComponentIndex()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasComponentIndex</h4>
<pre class="methodSignature">boolean&nbsp;hasComponentIndex()</pre>
<div class="block"><pre>
 specific to this component
 </pre>

 <code>required int32 component_index = 2;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the componentIndex field is set.</dd>
</dl>
</li>
</ul>
<a id="getComponentIndex()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getComponentIndex</h4>
<pre class="methodSignature">int&nbsp;getComponentIndex()</pre>
<div class="block"><pre>
 specific to this component
 </pre>

 <code>required int32 component_index = 2;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The componentIndex.</dd>
</dl>
</li>
</ul>
<a id="hasComponentName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasComponentName</h4>
<pre class="methodSignature">boolean&nbsp;hasComponentName()</pre>
<div class="block"><code>required string component_name = 3;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the componentName field is set.</dd>
</dl>
</li>
</ul>
<a id="getComponentName()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getComponentName</h4>
<pre class="methodSignature">java.lang.String&nbsp;getComponentName()</pre>
<div class="block"><code>required string component_name = 3;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The componentName.</dd>
</dl>
</li>
</ul>
<a id="getComponentNameBytes()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getComponentNameBytes</h4>
<pre class="methodSignature">com.google.protobuf.ByteString&nbsp;getComponentNameBytes()</pre>
<div class="block"><code>required string component_name = 3;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The bytes for componentName.</dd>
</dl>
</li>
</ul>
<a id="getParamsList()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParamsList</h4>
<pre class="methodSignature">java.util.List&lt;java.lang.String&gt;&nbsp;getParamsList()</pre>
<div class="block"><code>repeated string params = 4;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A list containing the params.</dd>
</dl>
</li>
</ul>
<a id="getParamsCount()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParamsCount</h4>
<pre class="methodSignature">int&nbsp;getParamsCount()</pre>
<div class="block"><code>repeated string params = 4;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The count of params.</dd>
</dl>
</li>
</ul>
<a id="getParams(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParams</h4>
<pre class="methodSignature">java.lang.String&nbsp;getParams&#8203;(int&nbsp;index)</pre>
<div class="block"><code>repeated string params = 4;</code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index of the element to return.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The params at the given index.</dd>
</dl>
</li>
</ul>
<a id="getParamsBytes(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParamsBytes</h4>
<pre class="methodSignature">com.google.protobuf.ByteString&nbsp;getParamsBytes&#8203;(int&nbsp;index)</pre>
<div class="block"><code>repeated string params = 4;</code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - The index of the value to return.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The bytes of the params at the given index.</dd>
</dl>
</li>
</ul>
<a id="hasRemoteDebuggerPort()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasRemoteDebuggerPort</h4>
<pre class="methodSignature">boolean&nbsp;hasRemoteDebuggerPort()</pre>
<div class="block"><pre>
 the port a remote debugger can be attached to for this instance.  Currently JVM instances only
 </pre>

 <code>optional int32 remote_debugger_port = 5;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether the remoteDebuggerPort field is set.</dd>
</dl>
</li>
</ul>
<a id="getRemoteDebuggerPort()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getRemoteDebuggerPort</h4>
<pre class="methodSignature">int&nbsp;getRemoteDebuggerPort()</pre>
<div class="block"><pre>
 the port a remote debugger can be attached to for this instance.  Currently JVM instances only
 </pre>

 <code>optional int32 remote_debugger_port = 5;</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The remoteDebuggerPort.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.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" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>
