<!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 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ArrayListener (Drill : 1.20.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="ArrayListener (Drill : 1.20.3 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ArrayListener.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/drill/exec/store/easy/json/parser/AbstractElementParser.html" title="class in org.apache.drill.exec.store.easy.json.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/drill/exec/store/easy/json/parser/ArrayParser.html" title="class in org.apache.drill.exec.store.easy.json.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/drill/exec/store/easy/json/parser/ArrayListener.html" target="_top">Frames</a></li>
<li><a href="ArrayListener.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.drill.exec.store.easy.json.parser</div>
<h2 title="Interface ArrayListener" class="title">Interface ArrayListener</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../../../org/apache/drill/exec/store/easy/json/loader/SimpleArrayListener.html" title="class in org.apache.drill.exec.store.easy.json.loader">SimpleArrayListener</a>, <a href="../../../../../../../../org/apache/drill/exec/store/easy/json/loader/SimpleArrayListener.ListArrayListener.html" title="class in org.apache.drill.exec.store.easy.json.loader">SimpleArrayListener.ListArrayListener</a>, <a href="../../../../../../../../org/apache/drill/exec/store/easy/json/loader/SimpleArrayListener.StructureArrayListener.html" title="class in org.apache.drill.exec.store.easy.json.loader">SimpleArrayListener.StructureArrayListener</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">ArrayListener</span></pre>
<div class="block">Represents one level within array. The first time the parser sees the array element,
 it will call the <code>#element(ValueDef)</code> method with the
 look-ahead values visible to the parser. Since JSON is flexible, later
 data shapes may not necessarily follow the first shape. The implementation
 must handle this or throw an error if not supported.
 <p>
 When creating a multi-dimensional array, each array level is built one
 by one. each will receive the same type information (decreased by one
 array level.)
 <p>
 Then, while parsing, the parser calls events on the start and end of the
 array, as well as on each element.
 <p>
 The array listener is an attribute of a value listener, represent the
 "arrayness" of that value, if the value allows an array.

 <h4>Elements</h4>

 The array listener has a child listener that represents each element
 in the array. The structure parser asks this listener to create that
 child on the first element seen for the array. The structure parser
 provides "look-ahead" type information for that element, when available.
 <p>
 Three JSON-specific cases warrant attention:
 <ol>
 <li>The first occurrence of the array is empty: <code>[ ]</code>. In this case,
 the structure parser will defer asking for an element parser (and listener)
 until an actual value appears. The array listener is responsible for
 implementing some kind of "deferred type" logic to wait and see what
 kind of element appears later.</li>
 <li>The first occurrence of the array has, as its first element, a
 <code>null</code> value. The structure parser will ask this listener to create
 an array child for the <code>null</code> value, but the listener has no type
 information. Since null values must be recorded (so we know how many
 appear in each array), the listener is forced to choose a type. Choose
 wisely as there is no way to know what type will appear in the future.</li>
 <li>A generalized form of the above is that the structure parser only
 knows what it sees on the first element when it asks for an element
 child. In a well-formed file, that first token will predict the type
 of all future tokens. But, JSON allows anything. The first element
 might be <code>null</code>, an empty array, or a String. The second element
 could be anything else (a number or an object). The listener, as always
 is responsible for deciding how to handle type changes.</li>
 </ol>

 <h4>Multi-Dimensional Arrays</h4>

 A multi-dimensional array is one of the form <code>[ [ ... </code>, that is,
 the parser returns multiple levels of array start tokens. In this case,
 listeners are structured as:
 <ul>
 <li><code>ObjectListener</code> for the enclosing object which has a</li>
 <li><code>FieldListener</code> for the array value which has a</li>
 <li><code>ArrayListener</code> for the array, which has a</li>
 <li><code>ValueListener</code> for the elements. If the array is 1D,
 the nesting stops here. But if it is 2+D, then the value has a</li>
 <li><code>ArrayListener</code> for the inner array, which has a</li>
 <li><code>ValueListener</code> for the elements. And so on recursively
 for as many levels as needed or the array.</li>
 </ul></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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/store/easy/json/parser/ArrayListener.html#onElementEnd--">onElementEnd</a></span>()</code>
<div class="block">Called after each element of the array.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/store/easy/json/parser/ArrayListener.html#onElementStart--">onElementStart</a></span>()</code>
<div class="block">Called for each element of the array.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/store/easy/json/parser/ArrayListener.html#onEnd--">onEnd</a></span>()</code>
<div class="block">Called at the end of a set of values for an array.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/drill/exec/store/easy/json/parser/ArrayListener.html#onStart--">onStart</a></span>()</code>
<div class="block">Called at the entrance to each level (dimension) of an array.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="onStart--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onStart</h4>
<pre>void&nbsp;onStart()</pre>
<div class="block">Called at the entrance to each level (dimension) of an array.
 That is, called when the structure parser accepts the <code>[</code>
 token.</div>
</li>
</ul>
<a name="onElementStart--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onElementStart</h4>
<pre>void&nbsp;onElementStart()</pre>
<div class="block">Called for each element of the array. The array element is represented
 by its own listener which receives the value of the element (if
 scalar) or element events (if structured.)</div>
</li>
</ul>
<a name="onElementEnd--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onElementEnd</h4>
<pre>void&nbsp;onElementEnd()</pre>
<div class="block">Called after each element of the array.</div>
</li>
</ul>
<a name="onEnd--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onEnd</h4>
<pre>void&nbsp;onEnd()</pre>
<div class="block">Called at the end of a set of values for an array. That is, called
 when the structure parser accepts the <code>]</code> token.</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="class-use/ArrayListener.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/drill/exec/store/easy/json/parser/AbstractElementParser.html" title="class in org.apache.drill.exec.store.easy.json.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/drill/exec/store/easy/json/parser/ArrayParser.html" title="class in org.apache.drill.exec.store.easy.json.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/drill/exec/store/easy/json/parser/ArrayListener.html" target="_top">Frames</a></li>
<li><a href="ArrayListener.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; 1970 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
