blob: 11f664eb5428e7bcd80e2340f66fc534130ee85e [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>TreeTableFormat (Apache SIS 1.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.sis.util.collection, class: TreeTableFormat">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.util.collection.TreeTableFormat class">
<meta name="keywords" content="getValueType()">
<meta name="keywords" content="getColumns()">
<meta name="keywords" content="setColumns()">
<meta name="keywords" content="getIndentation()">
<meta name="keywords" content="setIndentation()">
<meta name="keywords" content="getVerticalLinePosition()">
<meta name="keywords" content="setVerticalLinePosition()">
<meta name="keywords" content="getNodeFilter()">
<meta name="keywords" content="setNodeFilter()">
<meta name="keywords" content="parse()">
<meta name="keywords" content="format()">
<meta name="keywords" content="createFormat()">
<meta name="keywords" content="writeColumnSeparator()">
<meta name="keywords" content="clone()">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../sis.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/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="../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/TreeTableFormat.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#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li><a href="#nested-class-summary">Nested</a></li>
<li><a href="#field-summary">Field</a></li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<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="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><a href="../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.util.collection</a></div>
<h1 title="Class TreeTableFormat" class="title">Class TreeTableFormat</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/Format.html" title="class or interface in java.text" class="external-link">Format</a>
<div class="inheritance"><a href="../../io/CompoundFormat.html" title="class in org.apache.sis.io">CompoundFormat</a>&lt;T&gt;
<div class="inheritance"><a href="../../io/TabularFormat.html" title="class in org.apache.sis.io">TabularFormat</a>&lt;<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">TreeTable</a>&gt;
<div class="inheritance">TreeTableFormat</div>
</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Cloneable.html" title="class or interface in java.lang" class="external-link">Cloneable</a></code>, <code><a href="../Localized.html" title="interface in org.apache.sis.util">Localized</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">TreeTableFormat</span>
<span class="extends-implements">extends <a href="../../io/TabularFormat.html" title="class in org.apache.sis.io">TabularFormat</a>&lt;<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">TreeTable</a>&gt;</span></div>
<div class="block">A parser and formatter for <a href="TreeTable.html" title="interface in org.apache.sis.util.collection"><code>Tree­Table</code></a> instances.
This formatter is given an arbitrary number of <a href="TableColumn.html" title="class in org.apache.sis.util.collection"><code>Table­Column</code></a>s
to use during the formatting. The first column is taken as the node label.
If a <code>Tree­Table</code> is formatted with only that column,
then the <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> result is like the following example:
<blockquote><pre>Node #1
  ├─Node #2
  │   └─Node #4
  └─Node #3</pre></blockquote>
If the same <code>Tree­Table</code> is formatted with two columns,
then the <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a> result is like the following example:
<blockquote><pre>Node #1……………………… More #1
  ├─Node #2…………… More #2
  │   └─Node #4… More #4
  └─Node #3…………… More #3</pre></blockquote>
This representation can be printed to the <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Console.html#writer()" title="class or interface in java.io" class="external-link">console output</a>
(for example) if the stream uses a monospaced font and supports Unicode characters.
<h2>Customization</h2>
Some formatting characteristics (indentation width, column where to draw the vertical line
below nodes) can be modified by calls to the setter methods defined in this formatter.
In particular, the dots joining the node labels to their values can be specified by the
<a href="../../io/TabularFormat.html#setColumnSeparatorPattern(java.lang.String)">column separator pattern</a>.
The default pattern is <code>"?……[…] "</code>, which means <cite>"If the next value is non-null,
then insert the <code>"……"</code> string, repeat the <code>'…'</code> character as many time as needed
(may be zero), and finally insert a space"</cite>.
<h2>Safety against infinite recursivity</h2>
Some <code>Tree­Table</code> implementations generate the nodes dynamically as wrappers around Java objects.
Such Java objects may contain cyclic associations (<var>A</var> contains <var>B</var> contains <var>C</var>
contains <var>A</var>), which result in a tree of infinite depth. Some examples can be found in ISO 19115
metadata. This <code>Tree­Table­Format</code> class contains a safety against such cycles. The algorithm is based
on the assumption that for each node, the values and children are fully determined by the
<a href="TreeTable.Node.html#getUserObject()">user object</a>, if non-null. Consequently, for each node <var>C</var>
to be formatted, if the user object of that node is the same instance (in the sense of the <code>==</code> operator)
than the user object of a parent node <var>A</var>, then the children of the <var>C</var> node will not be formatted.</div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.3</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../serialized-form.html#org.apache.sis.util.collection.TreeTableFormat">Serialized Form</a></li>
</ul>
</dd>
<p><font size="-1">Defined in the <code>sis-utility</code> module</font></p>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-java.text.Format">Nested classes/interfaces inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/Format.html" title="class or interface in java.text" class="external-link">Format</a></h2>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/Format.Field.html" title="class or interface in java.text" class="external-link">Format​.Field</a></code></div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-TabularFormat">Fields inherited from class&nbsp;<a href="../../io/TabularFormat.html" title="class in org.apache.sis.io">TabularFormat</a></h3>
<code><a href="../../io/TabularFormat.html#beforeFill">before­Fill</a>, <a href="../../io/TabularFormat.html#columnSeparator">column­Separator</a>, <a href="../../io/TabularFormat.html#fillCharacter">fill­Character</a>, <a href="../../io/TabularFormat.html#lineSeparator">line­Separator</a>, <a href="../../io/TabularFormat.html#omitTrailingNulls">omit­Trailing­Nulls</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.util.Locale,java.util.TimeZone)" class="member-name-link">Tree­Table­Format</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util" class="external-link">Locale</a>&nbsp;locale,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/TimeZone.html" title="class or interface in java.util" class="external-link">Time­Zone</a>&nbsp;timezone)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates a new tree table format.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="TreeTableFormat.html" title="class in org.apache.sis.util.collection">Tree­Table­Format</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#clone()" class="member-name-link">clone</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a clone of this format.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/Format.html" title="class or interface in java.text" class="external-link">Format</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createFormat(java.lang.Class)" class="member-name-link">create­Format</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;value­Type)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a new format to use for parsing and formatting values of the given type.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#format(org.apache.sis.util.collection.TreeTable,java.lang.Appendable)" class="member-name-link">format</a><wbr>(<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">Tree­Table</a>&nbsp;tree,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Appendable.html" title="class or interface in java.lang" class="external-link">Appendable</a>&nbsp;to­Append­To)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Writes a graphical representation of the specified tree table in the given stream or buffer.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="TableColumn.html" title="class in org.apache.sis.util.collection">Table­Column</a>&lt;?&gt;[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getColumns()" class="member-name-link">get­Columns</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the table columns to parse and format, or <code>null</code> for the default list of columns.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getIndentation()" class="member-name-link">get­Indentation</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the number of spaces to add on the left margin for each indentation level.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/function/Predicate.html" title="class or interface in java.util.function" class="external-link">Predicate</a>&lt;<a href="TreeTable.Node.html" title="interface in org.apache.sis.util.collection">Tree­Table​.Node</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNodeFilter()" class="member-name-link">get­Node­Filter</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the filter that specify whether a node should be formatted or ignored.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">Tree­Table</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getValueType()" class="member-name-link">get­Value­Type</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the type of objects formatted by this class.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getVerticalLinePosition()" class="member-name-link">get­Vertical­Line­Position</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the position of the vertical line, relative to the position of the root label.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="TreeTable.html" title="interface in org.apache.sis.util.collection">Tree­Table</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#parse(java.lang.CharSequence,java.text.ParsePosition)" class="member-name-link">parse</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">Char­Sequence</a>&nbsp;text,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/ParsePosition.html" title="class or interface in java.text" class="external-link">Parse­Position</a>&nbsp;pos)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Creates a tree from the given character sequence,
or returns <code>null</code> if the given text does not look like a tree for this method.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setColumns(org.apache.sis.util.collection.TableColumn...)" class="member-name-link">set­Columns</a><wbr>(<a href="TableColumn.html" title="class in org.apache.sis.util.collection">Table­Column</a>&lt;?&gt;...&nbsp;columns)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the table columns to parse and format.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setIndentation(int)" class="member-name-link">set­Indentation</a><wbr>(int&nbsp;indentation)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the number of spaces to add on the left margin for each indentation level.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setNodeFilter(java.util.function.Predicate)" class="member-name-link">set­Node­Filter</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/function/Predicate.html" title="class or interface in java.util.function" class="external-link">Predicate</a>&lt;<a href="TreeTable.Node.html" title="interface in org.apache.sis.util.collection">Tree­Table​.Node</a>&gt;&nbsp;filter)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets a filter specifying whether a node should be formatted or ignored.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setVerticalLinePosition(int)" class="member-name-link">set­Vertical­Line­Position</a><wbr>(int&nbsp;vertical­Line­Position)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets the position of the vertical line, relative to the position of the root label.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#writeColumnSeparator(int,org.apache.sis.io.TableAppender)" class="member-name-link">write­Column­Separator</a><wbr>(int&nbsp;next­Column,
<a href="../../io/TableAppender.html" title="class in org.apache.sis.io">Table­Appender</a>&nbsp;out)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Writes characters between columns.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-TabularFormat">Methods inherited from class&nbsp;<a href="../../io/TabularFormat.html" title="class in org.apache.sis.io">TabularFormat</a></h3>
<code><a href="../../io/TabularFormat.html#getColumnSeparatorMatcher(java.lang.CharSequence)">get­Column­Separator­Matcher</a>, <a href="../../io/TabularFormat.html#getColumnSeparatorPattern()">get­Column­Separator­Pattern</a>, <a href="../../io/TabularFormat.html#getLineSeparator()">get­Line­Separator</a>, <a href="../../io/TabularFormat.html#setColumnSeparatorPattern(java.lang.String)">set­Column­Separator­Pattern</a>, <a href="../../io/TabularFormat.html#setLineSeparator(java.lang.String)">set­Line­Separator</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-CompoundFormat">Methods inherited from class&nbsp;<a href="../../io/CompoundFormat.html" title="class in org.apache.sis.io">CompoundFormat</a></h3>
<code><a href="../../io/CompoundFormat.html#format(java.lang.Object,java.lang.StringBuffer,java.text.FieldPosition)">format</a>, <a href="../../io/CompoundFormat.html#getFormat(java.lang.Class)">get­Format</a>, <a href="../../io/CompoundFormat.html#getLocale()">get­Locale</a>, <a href="../../io/CompoundFormat.html#getLocale(java.util.Locale.Category)">get­Locale</a>, <a href="../../io/CompoundFormat.html#getTimeZone()">get­Time­Zone</a>, <a href="../../io/CompoundFormat.html#parseObject(java.lang.String)">parse­Object</a>, <a href="../../io/CompoundFormat.html#parseObject(java.lang.String,java.text.ParsePosition)">parse­Object</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Format">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/Format.html" title="class or interface in java.text" class="external-link">Format</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/Format.html#format(java.lang.Object)" title="class or interface in java.text" class="external-link">format</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/Format.html#formatToCharacterIterator(java.lang.Object)" title="class or interface in java.text" class="external-link">format­To­Character­Iterator</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">get­Class</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notify­All</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">to­String</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(java.util.Locale,java.util.TimeZone)">
<h3>TreeTableFormat</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">TreeTableFormat</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Locale.html" title="class or interface in java.util" class="external-link">Locale</a>&nbsp;locale,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/TimeZone.html" title="class or interface in java.util" class="external-link">TimeZone</a>&nbsp;timezone)</span></div>
<div class="block">Creates a new tree table format.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>locale</code> - the locale to use for numbers, dates and angles formatting,
or <code>null</code> for the <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Locale.html#ROOT" title="class or interface in java.util" class="external-link">root locale</a>.</dd>
<dd><code>timezone</code> - the timezone, or <code>null</code> for UTC.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getValueType()">
<h3>getValueType</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">TreeTable</a>&gt;</span>&nbsp;<span class="element-name">getValueType</span>()</div>
<div class="block">Returns the type of objects formatted by this class.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../io/CompoundFormat.html#getValueType()">get­Value­Type</a></code>&nbsp;in class&nbsp;<code><a href="../../io/CompoundFormat.html" title="class in org.apache.sis.io">Compound­Format</a>&lt;<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">Tree­Table</a>&gt;</code></dd>
<dt>Returns:</dt>
<dd><code>Tree­Table​.class</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getColumns()">
<h3>getColumns</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="TableColumn.html" title="class in org.apache.sis.util.collection">TableColumn</a>&lt;?&gt;[]</span>&nbsp;<span class="element-name">getColumns</span>()</div>
<div class="block">Returns the table columns to parse and format, or <code>null</code> for the default list of columns.
The default is:
<ul>
<li>On parsing, a single column containing the node label as a <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link"><code>String</code></a>.</li>
<li>On formatting, <a href="TreeTable.html#getColumns()">all <code>Tree­Table</code> columns</a>.</li>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the table columns to parse and format, or <code>null</code> for the default.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setColumns(org.apache.sis.util.collection.TableColumn...)">
<h3>setColumns</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setColumns</span><wbr><span class="parameters">(<a href="TableColumn.html" title="class in org.apache.sis.util.collection">TableColumn</a>&lt;?&gt;...&nbsp;columns)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Sets the table columns to parse and format. A <code>null</code> value means to use the default
list of columns, as defined in the <a href="#getColumns()"><code>get­Columns()</code></a> method.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>columns</code> - the table columns to parse and format, or <code>null</code> for the default.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">Illegal­Argument­Exception</a></code> - if the given array is empty, contains a null element
or a duplicated value.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIndentation()">
<h3>getIndentation</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getIndentation</span>()</div>
<div class="block">Returns the number of spaces to add on the left margin for each indentation level.
The default value is 4.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the current indentation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setIndentation(int)">
<h3>setIndentation</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setIndentation</span><wbr><span class="parameters">(int&nbsp;indentation)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Sets the number of spaces to add on the left margin for each indentation level.
If the new indentation is smaller than the <a href="#getVerticalLinePosition()">vertical line position</a>, then the latter is also set to the given indentation value.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>indentation</code> - the new indentation.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">Illegal­Argument­Exception</a></code> - if the given value is negative.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getVerticalLinePosition()">
<h3>getVerticalLinePosition</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getVerticalLinePosition</span>()</div>
<div class="block">Returns the position of the vertical line, relative to the position of the root label.
The default value is 2, which means that the vertical line is drawn below the third
letter of the root label.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the current vertical line position.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setVerticalLinePosition(int)">
<h3>setVerticalLinePosition</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setVerticalLinePosition</span><wbr><span class="parameters">(int&nbsp;verticalLinePosition)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Sets the position of the vertical line, relative to the position of the root label.
The given value cannot be greater than the <a href="#getIndentation()">indentation</a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>vertical­Line­Position</code> - the new vertical line position.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">Illegal­Argument­Exception</a></code> - if the given value is negative or greater than the indentation.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNodeFilter()">
<h3>getNodeFilter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/function/Predicate.html" title="class or interface in java.util.function" class="external-link">Predicate</a>&lt;<a href="TreeTable.Node.html" title="interface in org.apache.sis.util.collection">TreeTable.Node</a>&gt;</span>&nbsp;<span class="element-name">getNodeFilter</span>()</div>
<div class="block">Returns the filter that specify whether a node should be formatted or ignored.
This is the predicate specified in the last call to <a href="#setNodeFilter(java.util.function.Predicate)"><code>set­Node­Filter(Predicate)</code></a>.
If no filter has been set, then this method returns <code>null</code>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>a filter for specifying whether a node should be formatted, or <code>null</code> if no filtering is applied.</dd>
<dt>Since:</dt>
<dd>1.0</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setNodeFilter(java.util.function.Predicate)">
<h3>setNodeFilter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setNodeFilter</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/function/Predicate.html" title="class or interface in java.util.function" class="external-link">Predicate</a>&lt;<a href="TreeTable.Node.html" title="interface in org.apache.sis.util.collection">TreeTable.Node</a>&gt;&nbsp;filter)</span></div>
<div class="block">Sets a filter specifying whether a node should be formatted or ignored.
Filters are tested at formatting time for all children of the root node (but not for the root node itself).
Filters are ignored at parsing time.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>filter</code> - filter for specifying whether a node should be formatted, or <code>null</code> for no filtering.</dd>
<dt>Since:</dt>
<dd>1.0</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="parse(java.lang.CharSequence,java.text.ParsePosition)">
<h3>parse</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="TreeTable.html" title="interface in org.apache.sis.util.collection">TreeTable</a></span>&nbsp;<span class="element-name">parse</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/CharSequence.html" title="class or interface in java.lang" class="external-link">CharSequence</a>&nbsp;text,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/ParsePosition.html" title="class or interface in java.text" class="external-link">ParsePosition</a>&nbsp;pos)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/ParseException.html" title="class or interface in java.text" class="external-link">ParseException</a></span></div>
<div class="block">Creates a tree from the given character sequence,
or returns <code>null</code> if the given text does not look like a tree for this method.
This method can parse the trees created by the <code>format(…)</code> methods
defined in this class.
<h4>Parsing rules</h4>
<ul>
<li>Each node shall be represented by a single line made of two parts, in that order:
<ol>
<li>white spaces and tree drawing characters (<code>'│'</code>, <code>'├'</code>, <code>'└'</code> or <code>'─'</code>);</li>
<li>string representations of node values, separated by the
<a href="../../io/TabularFormat.html#getColumnSeparatorPattern()">colunm separator</a>.</li>
</ol>
</li>
<li>The number of spaces and drawing characters before the node values determines the node
indentation. This indentation does not need to be a factor of the <a href="#getIndentation()"><code>get­Indentation()</code></a>
value, but must be consistent across all the parsed tree.</li>
<li>The indentation determines the parent of each node.</li>
<li>Parsing stops at first empty line (ignoring whitespaces), or at the end of the given text.</li>
</ul>
<h4>Error index</h4>
If the given text does not seem to be a tree table, then this method returns <code>null</code>.
Otherwise if parsing started but failed, then:
<ul>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/ParsePosition.html#getErrorIndex()" title="class or interface in java.text" class="external-link"><code>Parse­Position​.get­Error­Index()</code></a> will give the index at the beginning
of line or beginning of cell where the error occurred, and</li>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/ParseException.html#getErrorOffset()" title="class or interface in java.text" class="external-link"><code>Parse­Exception​.get­Error­Offset()</code></a> will give either the same value,
or a slightly more accurate value inside the cell.</li>
</ul></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../io/CompoundFormat.html#parse(java.lang.CharSequence,java.text.ParsePosition)">parse</a></code>&nbsp;in class&nbsp;<code><a href="../../io/CompoundFormat.html" title="class in org.apache.sis.io">Compound­Format</a>&lt;<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">Tree­Table</a>&gt;</code></dd>
<dt>Parameters:</dt>
<dd><code>text</code> - the character sequence for the tree to parse.</dd>
<dd><code>pos</code> - the position where to start the parsing.</dd>
<dt>Returns:</dt>
<dd>the parsed tree, or <code>null</code> if the given character sequence cannot be parsed.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/ParseException.html" title="class or interface in java.text" class="external-link">Parse­Exception</a></code> - if an error occurred while parsing a node value.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="format(org.apache.sis.util.collection.TreeTable,java.lang.Appendable)">
<h3>format</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">format</span><wbr><span class="parameters">(<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">TreeTable</a>&nbsp;tree,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Appendable.html" title="class or interface in java.lang" class="external-link">Appendable</a>&nbsp;toAppendTo)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Writes a graphical representation of the specified tree table in the given stream or buffer.
This method iterates recursively over all <a href="TreeTable.Node.html#getChildren()">children</a>.
For each <a href="#getColumns()">column to format</a> in each node, this method gets a textual
representation of the <a href="TreeTable.Node.html#getValue(org.apache.sis.util.collection.TableColumn)">value in that column</a>
using the formatter obtained by a call to <a href="../../io/CompoundFormat.html#getFormat(java.lang.Class)"><code>Compound­Format​.get­Format(Class)</code></a>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../io/CompoundFormat.html#format(T,java.lang.Appendable)">format</a></code>&nbsp;in class&nbsp;<code><a href="../../io/CompoundFormat.html" title="class in org.apache.sis.io">Compound­Format</a>&lt;<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">Tree­Table</a>&gt;</code></dd>
<dt>Parameters:</dt>
<dd><code>tree</code> - the tree to format.</dd>
<dd><code>to­Append­To</code> - where to format the tree.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code> - if an error occurred while writing to the given appendable.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="TreeTables.html#toString(org.apache.sis.util.collection.TreeTable)"><code>Tree­Tables​.to­String(Tree­Table)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createFormat(java.lang.Class)">
<h3>createFormat</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/text/Format.html" title="class or interface in java.text" class="external-link">Format</a></span>&nbsp;<span class="element-name">createFormat</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;&nbsp;valueType)</span></div>
<div class="block">Creates a new format to use for parsing and formatting values of the given type.
This method is invoked the first time that a format is needed for the given type.
Subclasses can override this method if they want to configure the way dates, numbers
or other objects are formatted.
See <a href="../../io/CompoundFormat.html#createFormat(java.lang.Class)">parent class documentation</a>
for more information.
<p>The implementation in <code>Tree­Table­Format</code> differs from the default implementation
in the following aspects:</p>
<ul>
<li><code>Unit­Format</code> uses <a href="../../measure/UnitFormat.Style.html#NAME"><code>Unit­Format​.Style​.NAME</code></a>.</li>
</ul></div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../../io/CompoundFormat.html#createFormat(java.lang.Class)">create­Format</a></code>&nbsp;in class&nbsp;<code><a href="../../io/CompoundFormat.html" title="class in org.apache.sis.io">Compound­Format</a>&lt;<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">Tree­Table</a>&gt;</code></dd>
<dt>Parameters:</dt>
<dd><code>value­Type</code> - the base type of values to parse or format.</dd>
<dt>Returns:</dt>
<dd>the format to use for parsing of formatting values of the given type, or <code>null</code> if none.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="writeColumnSeparator(int,org.apache.sis.io.TableAppender)">
<h3>writeColumnSeparator</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">writeColumnSeparator</span><wbr><span class="parameters">(int&nbsp;nextColumn,
<a href="../../io/TableAppender.html" title="class in org.apache.sis.io">TableAppender</a>&nbsp;out)</span></div>
<div class="block">Writes characters between columns. The default implementation applies the configuration
specified by <a href="../../io/TabularFormat.html#setColumnSeparatorPattern(java.lang.String)"><code>Tabular­Format​.set­Column­Separator­Pattern(String)</code></a> as below:
<blockquote><code>
out​.append(<a href="../../io/TabularFormat.html#beforeFill">before­Fill</a>);
out​.next­Column(<a href="../../io/TabularFormat.html#fillCharacter">fill­Character</a>);
out​.append(<a href="../../io/TabularFormat.html#columnSeparator">column­Separator</a>);
</code></blockquote>
The output with default values is like below:
<blockquote><pre>root
└─column0…… column1…… column2…… column3</pre></blockquote>
Subclasses can override this method if different column separators are desired.
Note however that doing so may prevent the <a href="#parse(java.lang.CharSequence,java.text.ParsePosition)"><code>parse(…)</code></a> method to work.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>next­Column</code> - zero-based index of the column to be written after the separator.</dd>
<dd><code>out</code> - where to write the column separator.</dd>
<dt>Since:</dt>
<dd>1.0</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../io/TableAppender.html#nextColumn(char)"><code>Table­Appender​.next­Column(char)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="clone()">
<h3>clone</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="TreeTableFormat.html" title="class in org.apache.sis.util.collection">TreeTableFormat</a></span>&nbsp;<span class="element-name">clone</span>()</div>
<div class="block">Returns a clone of this format.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../../io/TabularFormat.html#clone()">clone</a></code>&nbsp;in class&nbsp;<code><a href="../../io/TabularFormat.html" title="class in org.apache.sis.io">Tabular­Format</a>&lt;<a href="TreeTable.html" title="interface in org.apache.sis.util.collection">Tree­Table</a>&gt;</code></dd>
<dt>Returns:</dt>
<dd>a clone of this format.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2010&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>