<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>NilReason (Apache SIS 1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2019-09-20">
<meta name="keywords" content="org.apache.sis.xml.NilReason class">
<meta name="keywords" content="INAPPLICABLE">
<meta name="keywords" content="MISSING">
<meta name="keywords" content="TEMPLATE">
<meta name="keywords" content="UNKNOWN">
<meta name="keywords" content="WITHHELD">
<meta name="keywords" content="OTHER">
<meta name="keywords" content="values()">
<meta name="keywords" content="valueOf()">
<meta name="keywords" content="getOtherExplanation()">
<meta name="keywords" content="getURI()">
<meta name="keywords" content="toString()">
<meta name="keywords" content="hashCode()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="createNilObject()">
<meta name="keywords" content="forObject()">
<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="../../../../jquery/jquery-ui.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.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="NilReason (Apache SIS 1.0 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
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="class-use/NilReason.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" 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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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.sis.xml</a></div>
<h2 title="Class NilReason" class="title">Class NilReason</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></li>
<li>
<ul class="inheritance">
<li>NilReason</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
</dl>
<hr>
<pre>public final class <span class="typeNameLabel">NilReason</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
<div class="block">Explanation for a missing XML element. The nil reason can be parsed and formatted as a
 string using the <a href="#valueOf(java.lang.String)"><code>value­Of(String)</code></a> and <a href="#toString()"><code>to­String()</code></a> methods respectively.
 The string can be either a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> or an enumeration value described below.
 More specifically, <code>Nil­Reason</code> can be:

 <ul>
   <li>One of the predefined <a href="#INAPPLICABLE"><code>INAPPLICABLE</code></a>, <a href="#MISSING"><code>MISSING</code></a>, <a href="#TEMPLATE"><code>TEMPLATE</code></a>,
       <a href="#UNKNOWN"><code>UNKNOWN</code></a> or <a href="#WITHHELD"><code>WITHHELD</code></a> enumeration values.</li>
   <li>The <a href="#OTHER"><code>OTHER</code></a> enumeration value, or a new enumeration value formatted as
       <code>"other:"</code> concatenated with a brief textual explanation.</li>
   <li>A URI which should refer to a resource which describes the reason for the exception.</li>
 </ul>

 <code>Nil­Reason</code> is used in a number of XML elements where it is necessary to permit
 one of the above values as an alternative to the primary element.

 <div class="section">Immutability and thread safety</div>
 This final class is immutable and thus inherently thread-safe.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NilObject.html" title="interface in org.apache.sis.xml"><code>Nil­Object</code></a>, 
<a href="../../../../serialized-form.html#org.apache.sis.xml.NilReason">Serialized Form</a></dd>

<p><font size="-1">Defined in the <code>sis-metadata</code> module</font></p>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INAPPLICABLE">INAPPLICABLE</a></span></code></th>
<td class="colLast">
<div class="block">There is no value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MISSING">MISSING</a></span></code></th>
<td class="colLast">
<div class="block">The correct value is not readily available to the sender of this data.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OTHER">OTHER</a></span></code></th>
<td class="colLast">
<div class="block">Other reason without explanation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEMPLATE">TEMPLATE</a></span></code></th>
<td class="colLast">
<div class="block">The value will be available later.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#UNKNOWN">UNKNOWN</a></span></code></th>
<td class="colLast">
<div class="block">The correct value is not known to, and not computable by, the sender of this data.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WITHHELD">WITHHELD</a></span></code></th>
<td class="colLast">
<div class="block">The value is not divulged.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<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="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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createNilObject(java.lang.Class)">createNilObject</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Returns an object of the given type which is nil for the reason represented by this instance.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;other)</code></th>
<td class="colLast">
<div class="block">Compares this <code>Nil­Reason</code> with the specified object for equality.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forObject(java.lang.Object)">forObject</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
<td class="colLast">
<div class="block">If the given object is nil, returns the reason why it does not contain information.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOtherExplanation()">getOtherExplanation</a></span>()</code></th>
<td class="colLast">
<div class="block">If this <code>Nil­Reason</code> is an enumeration of kind <a href="#OTHER"><code>OTHER</code></a>, returns the explanation
 text.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getURI()">getURI</a></span>()</code></th>
<td class="colLast">
<div class="block">If the explanation of this <code>Nil­Reason</code> is referenced by a URI, returns that URI.</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="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a hash code value for this <code>Nil­Reason</code>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the GML string representation of this <code>Nil­Reason</code>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reason)</code></th>
<td class="colLast">
<div class="block">Parses the given nil reason.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static <a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an array containing every instances of this type that have not yet been
 garbage collected.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">get­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notify­All</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a id="INAPPLICABLE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INAPPLICABLE</h4>
<pre>public static final&nbsp;<a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a> INAPPLICABLE</pre>
<div class="block">There is no value.

 <p>The string representation is <code>"inapplicable"</code>.
 Other properties (explanation and URI) are <code>null</code>.</p></div>
</li>
</ul>
<a id="MISSING">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MISSING</h4>
<pre>public static final&nbsp;<a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a> MISSING</pre>
<div class="block">The correct value is not readily available to the sender of this data.
 Furthermore, a correct value may not exist.

 <p>The string representation is <code>"missing"</code>.
 Other properties (explanation and URI) are <code>null</code>.</p></div>
</li>
</ul>
<a id="TEMPLATE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TEMPLATE</h4>
<pre>public static final&nbsp;<a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a> TEMPLATE</pre>
<div class="block">The value will be available later.

 <p>The string representation is <code>"template"</code>.
 Other properties (explanation and URI) are <code>null</code>.</p></div>
</li>
</ul>
<a id="UNKNOWN">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UNKNOWN</h4>
<pre>public static final&nbsp;<a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a> UNKNOWN</pre>
<div class="block">The correct value is not known to, and not computable by, the sender of this data.
 However, a correct value probably exists.

 <p>The string representation is <code>"unknown"</code>.
 Other properties (explanation and URI) are <code>null</code>.</p></div>
</li>
</ul>
<a id="WITHHELD">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WITHHELD</h4>
<pre>public static final&nbsp;<a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a> WITHHELD</pre>
<div class="block">The value is not divulged.

 <p>The string representation is <code>"withheld"</code>.
 Other properties (explanation and URI) are <code>null</code>.</p></div>
</li>
</ul>
<a id="OTHER">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>OTHER</h4>
<pre>public static final&nbsp;<a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a> OTHER</pre>
<div class="block">Other reason without explanation.
 The string representation of this constant is <code>"other"</code>.
 The explanation property is an empty string, and the URI is <code>null</code>.

 <div class="section">Providing an explanation</div>
 Users are encouraged to use the <a href="#valueOf(java.lang.String)"><code>value­Of(String)</code></a> method instead than this constant,
 in order to provide a brief explanation. The string representation for <code>value­Of(…)</code>
 is <code>"other:<var>explanation</var>"</code> where <var>explanation</var> is a string of
 two or more characters with no included spaces.

 <p>When testing if a <code>Nil­Reason</code> instance is any kind of <code>"other"</code> reason,
 users should test if <code><a href="#getOtherExplanation()">get­Other­Explanation()</a> != null</code> instead
 than comparing the reference against this constant.</p></div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="values()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre class="methodSignature">public static&nbsp;<a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a>[]&nbsp;values()</pre>
<div class="block">Returns an array containing every instances of this type that have not yet been
 garbage collected. The first elements of the returned array are the constants
 defined in this class, in declaration order. All other elements are the instances
 created by the <a href="#valueOf(java.lang.String)"><code>value­Of(String)</code></a> method, in no particular order.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array containing the instances of <code>Nil­Reason</code>.</dd>
</dl>
</li>
</ul>
<a id="valueOf(java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>valueOf</h4>
<pre class="methodSignature">public static&nbsp;<a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reason)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URISyntaxException.html?is-external=true" title="class or interface in java.net" class="externalLink">URISyntaxException</a></pre>
<div class="block">Parses the given nil reason. This method accepts the following cases:

 <ul>
   <li>If the given argument is one of the <code>"inapplicable"</code>, <code>"missing"</code>,
       <code>"template"</code>, <code>"unknown"</code>, <code>"withheld"</code> or <code>"other"</code>
       strings (ignoring cases and leading/trailing spaces), then the corresponding
       pre-defined constant is returned.</li>
   <li>Otherwise if the given argument is <code>"other:"</code> followed by an explanation
       text, then an instance for that explanation is returned. More specifically:
       <ul>
         <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html?is-external=true#isSpaceChar(int)" title="class or interface in java.lang" class="externalLink">Space characters</a> and
             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html?is-external=true#isISOControl(int)" title="class or interface in java.lang" class="externalLink">ISO controls</a> are silently omitted.</li>
         <li>If the remaining string has less than two characters, then the <a href="#OTHER"><code>OTHER</code></a>
             constant is returned.</li>
       </ul>
   </li>
   <li>Otherwise this method attempts to parse the given argument as a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>.
       Such URI should refer to a resource which describes the reason for the exception.</li>
 </ul>

 This method returns existing instances when possible.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reason</code> - the reason why an element is not present.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the reason as a <code>Nil­Reason</code> object.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URISyntaxException.html?is-external=true" title="class or interface in java.net" class="externalLink">URISyntax­Exception</a></code> - if the given string is not one of the predefined enumeration
         values and can not be parsed as a URI.</dd>
</dl>
</li>
</ul>
<a id="getOtherExplanation()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOtherExplanation</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getOtherExplanation()</pre>
<div class="block">If this <code>Nil­Reason</code> is an enumeration of kind <a href="#OTHER"><code>OTHER</code></a>, returns the explanation
 text. Otherwise returns <code>null</code>. If non-null, then the explanation is a string without
 whitespace.

 <p>Note that in the special case where <code>this</code> nil reason is the <a href="#OTHER"><code>OTHER</code></a>
 instance itself, then this method returns an empty string. For all other cases, the
 string contains at least two characters.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the explanation, or <code>null</code> if this <code>Nil­Reason</code> is not of kind <a href="#OTHER"><code>OTHER</code></a>.</dd>
</dl>
</li>
</ul>
<a id="getURI()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getURI</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getURI()</pre>
<div class="block">If the explanation of this <code>Nil­Reason</code> is referenced by a URI, returns that URI.
 Otherwise returns <code>null</code>. The URI and the <a href="#getOtherExplanation()">other
 explanation</a> attributes are mutually exclusive.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the URI, or <code>null</code> if the explanation of this <code>Nil­Reason</code> is not referenced by a URI.</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
<div class="block">Returns the GML string representation of this <code>Nil­Reason</code>. The returned string
 is a simple enumeration value (e.g. <code>"inapplicable"</code>) if this <code>Nil­Reason</code>
 is one of the predefined constants, or a string of the form <code>"other:explanation"</code>,
 or a URI.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">to­String</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the GML string representation of this <code>Nil­Reason</code>.</dd>
</dl>
</li>
</ul>
<a id="hashCode()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
<div class="block">Returns a hash code value for this <code>Nil­Reason</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hash­Code</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;other)</pre>
<div class="block">Compares this <code>Nil­Reason</code> with the specified object for equality.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>other</code> - the object to compare with this <code>Nil­Reason</code>.</dd>
</dl>
</li>
</ul>
<a id="createNilObject(java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createNilObject</h4>
<pre class="methodSignature">public&nbsp;&lt;T&gt;&nbsp;T&nbsp;createNilObject&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
<div class="block">Returns an object of the given type which is nil for the reason represented by this instance.
 The <code>type</code> argument can be one of the following cases:

 <ul class="verbose">
   <li>An <strong>interface</strong>: in such case, this method returns an object which implement the given
       interface together with the <a href="NilObject.html" title="interface in org.apache.sis.xml"><code>Nil­Object</code></a> and <a href="../util/LenientComparable.html" title="interface in org.apache.sis.util"><code>Lenient­Comparable</code></a> interfaces:
       <ul>
         <li>The <a href="NilObject.html#getNilReason()"><code>Nil­Object​.get­Nil­Reason()</code></a> method will return this <code>Nil­Reason</code> instance.</li>
         <li>The <code>equals(…)</code> and <code>hash­Code()</code> methods behave as documented in <a href="../util/LenientComparable.html" title="interface in org.apache.sis.util"><code>Lenient­Comparable</code></a>.</li>
         <li>The <code>to­String()</code> method is unspecified (may contain debugging information).</li>
         <li>All other methods return an empty collections, empty arrays, <code>null</code>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true#NaN" title="class or interface in java.lang" class="externalLink"><code>Na­N</code></a>,
             <code>0</code> or <code>false</code>, in this preference order, depending on the method return type.</li>
       </ul>
   </li>
   <li>One of <code>Boolean</code>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Byte</code></a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Short</code></a>, <code>Integer</code>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Long</code></a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Float</code></a>,
       <code>Double</code> or <code>String</code> types: in such case, this method returns a specific instance which
       will be recognized as "nil" by the XML marshaller.</li>
 </ul></div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the compile-time type of the <code>type</code> argument.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the object type as an <strong>interface</strong>
         (usually a <a href="http://www.geoapi.org">GeoAPI</a> one) or one of the special types.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an <a href="NilObject.html" title="interface in org.apache.sis.xml"><code>Nil­Object</code></a> of the given type.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Illegal­Argument­Exception</a></code> - if the given type is not a supported type.</dd>
</dl>
</li>
</ul>
<a id="forObject(java.lang.Object)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>forObject</h4>
<pre class="methodSignature">public static&nbsp;<a href="NilReason.html" title="class in org.apache.sis.xml">NilReason</a>&nbsp;forObject&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</pre>
<div class="block">If the given object is nil, returns the reason why it does not contain information.
 This method performs the following choices:

 <ul>
   <li>If the given object implements the <a href="NilObject.html" title="interface in org.apache.sis.xml"><code>Nil­Object</code></a> interface, then this method delegates
       to the <a href="NilObject.html#getNilReason()"><code>Nil­Object​.get­Nil­Reason()</code></a> method.</li>
   <li>Otherwise if the given object is one of the <code>Boolean</code>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Byte</code></a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Short</code></a>, <code>Integer</code>,
       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Long</code></a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Float</code></a>, <code>Double</code> or <code>String</code> instances returned by
       <a href="#createNilObject(java.lang.Class)"><code>create­Nil­Object(Class)</code></a>, then this method returns the associated reason.</li>
   <li>Otherwise this method returns <code>null</code>.</li>
 </ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - the object for which to get the <code>Nil­Reason</code>, or <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the reason why the given object contains no information, or <code>null</code> if the given object is not nil.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.4</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NilObject.html#getNilReason()"><code>Nil­Object​.get­Nil­Reason()</code></a></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="class-use/NilReason.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" 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><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&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>
<p class="legalCopy"><small>Copyright &#169; 2010&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
