PSF-LoginServer/net/psforever/objects/guid/source/LimitedNumberSource.html

11 lines
51 KiB
HTML
Raw Normal View History

<!DOCTYPE html ><html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/><title>PSF-LoginServer - master - net.psforever.objects.guid.source.LimitedNumberSource</title><meta content="PSF - LoginServer - master - net.psforever.objects.guid.source.LimitedNumberSource" name="description"/><meta content="PSF LoginServer master net.psforever.objects.guid.source.LimitedNumberSource" name="keywords"/><meta http-equiv="content-type" content="text/html; charset=UTF-8"/><link href="../../../../../lib/index.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../../../lib/template.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../../../lib/print.css" media="print" type="text/css" rel="stylesheet"/><link href="../../../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css"/><script type="text/javascript" src="../../../../../lib/jquery.min.js"></script><script type="text/javascript" src="../../../../../lib/index.js"></script><script type="text/javascript" src="../../../../../index.js"></script><script type="text/javascript" src="../../../../../lib/scheduler.js"></script><script type="text/javascript" src="../../../../../lib/template.js"></script><script type="text/javascript">/* this variable can be used by the JS to determine the path to the root document */
var toRoot = '../../../../../';</script></head><body><div id="search"><span id="doc-title">PSF-LoginServer - <span id="doc-version">master</span></span> <span class="close-results"><span class="left">&lt;</span> Back</span><div id="textfilter"><span class="input"><input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/"/><i class="clear material-icons"></i><i id="search-icon" class="material-icons"></i></span></div></div><div id="search-results"><div id="search-progress"><div id="progress-fill"></div></div><div id="results-content"><div id="entity-results"></div><div id="member-results"></div></div></div><div id="content-scroll-container" style="-webkit-overflow-scrolling: touch;"><div id="content-container" style="-webkit-overflow-scrolling: touch;"><div id="subpackage-spacer"><div id="packages"><h1>Packages</h1><ul><li class="indented0 " name="_root_.root" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="_root_"></a><a id="root:_root_"></a> <span class="permalink"><a href="../../../../../index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../../../index.html" title=""><span class="name">root</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented1 " name="_root_.net" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="net"></a><a id="net:net"></a> <span class="permalink"><a href="../../../../../net/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../../index.html" title=""><span class="name">net</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented2 " name="net.psforever" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="psforever"></a><a id="psforever:psforever"></a> <span class="permalink"><a href="../../../../../net/psforever/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../index.html" title=""><span class="name">psforever</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../index.html" name="net" id="net" class="extype">net</a></dd></dl></div></li><li class="indented3 " name="net.psforever.objects" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="objects"></a><a id="objects:objects"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../index.html" title=""><span class="name">objects</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="net.psforever" id="net.psforever" class="extype">psforever</a></dd></dl></div></li><li class="indented4 " name="net.psforever.objects.guid" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="guid"></a><a id="guid:guid"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../index.html" title=""><span cla
The numbers are considered to be exclusive.<br>
<br>
Produce a series of numbers from 0 to a maximum number (inclusive) to be used as globally unique identifiers (GUIDs).</p></div><dl class="attributes block"><dt>Source</dt><dd><a href="https://github.com/psforever/PSF-LoginServer/blob/master//home/runner/work/PSF-LoginServer/PSF-LoginServer/src/main/scala/net/psforever/objects/guid/source/LimitedNumberSource.scala" target="_blank">LimitedNumberSource.scala</a></dd><dt>Exceptions thrown</dt><dd><span class="cmt"><p><span name="IllegalArgumentException" class="extype"><code>IllegalArgumentException</code></span> if <code>max</code> is less than zero (therefore the count of generated numbers is at most zero)</p></span><span class="cmt"><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NegativeArraySizeException.html" name="java.lang.NegativeArraySizeException" id="java.lang.NegativeArraySizeException" class="extype"><code>java.lang.NegativeArraySizeException</code></a> if the count of numbers generated due to max is negative</p></span></dd></dl><div class="toggleContainer"><div class="toggle block"><span>Linear Supertypes</span><div class="superTypes hiddenContent"><a href="NumberSource.html" name="net.psforever.objects.guid.source.NumberSource" id="net.psforever.objects.guid.source.NumberSource" class="extype">NumberSource</a>, <span name="scala.AnyRef" class="extype">AnyRef</span>, <span name="scala.Any" class="extype">Any</span></div></div></div></div><div id="mbrsel"><div class="toggle"></div><div id="memberfilter"><i class="material-icons arrow"></i><span class="input"><input placeholder="Filter all members" id="mbrsel-input" type="text" accesskey="/"/></span><i class="clear material-icons"></i></div><div id="filterby"><div id="order"><span class="filtertype">Ordering</span><ol><li class="alpha in"><span>Alphabetic</span></li><li class="inherit out"><span>By Inheritance</span></li></ol></div><div class="ancestors"><span class="filtertype">Inherited<br/></span><ol id="linearization"><li class="in" name="net.psforever.objects.guid.source.LimitedNumberSource"><span>LimitedNumberSource</span></li><li class="in" name="net.psforever.objects.guid.source.NumberSource"><span>NumberSource</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li></ol></div><div class="ancestors"><span class="filtertype"></span><ol><li class="hideall out"><span>Hide All</span></li><li class="showall in"><span>Show All</span></li></ol></div><div id="visbl"><span class="filtertype">Visibility</span><ol><li class="public in"><span>Public</span></li><li class="protected out"><span>Protected</span></li></ol></div></div></div><div id="template"><div id="allMembers"><div id="constructors" class="members"><h3>Instance Constructors</h3><ol><li class="indented0 " name="net.psforever.objects.guid.source.LimitedNumberSource#&lt;init&gt;" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="&lt;init&gt;(max:Int):net.psforever.objects.guid.source.LimitedNumberSource"></a><a id="&lt;init&gt;:LimitedNumberSource"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#&lt;init&gt;(max:Int):net.psforever.objects.guid.source.LimitedNumberSource" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">new</span></span> <span class="symbol"><span class="name">LimitedNumberSource</span><span class="params">(<span name="max">max: <span name="scala.Int" class="extype">Int</span></span>)</span></span><p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"></div><dl class="paramcmts block"><dt class="param">max</dt><dd class="cmt"><p>the highest number to be generated by this source;
must be a positive integer or zero</p></dd></dl><dl class="attributes block"><dt>Exceptions thrown</dt><dd><span class="cmt"><p><span name="IllegalArgumentException" class="extype"><code>IllegalArgumentException</code></span> if <code>max</code> is less than zero (therefore the count of generated numbers is at most zero)</p></span><span class="cmt"><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NegativeArraySizeException.html" name="java.lang.NegativeArraySizeException" id="java.lang.NegativeArraySizeException" class="extype"><code>java.lang.NegativeArraySizeException</code></a> if the count of numbers generated due to max is negative</p></span></dd></dl></div></li></ol></div><div class="values members"><h3>Value Members</h3><ol><li class="indented0 " name="scala.AnyRef#!=" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="!=(x$1:Any):Boolean"></a><a id="!=(Any):Boolean"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#!=(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $bang$eq">!=</span><span class="params">(<span name="arg0">arg0: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef###" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="##:Int"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html###:Int" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $hash$hash">##</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#==" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="==(x$1:Any):Boolean"></a><a id="==(Any):Boolean"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#==(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $eq$eq">==</span><span class="params">(<span name="arg0">arg0: <span name="scala.Any" class="extype">Any</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="net.psforever.objects.guid.source.LimitedNumberSource#Available" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Available(number:Int):Option[net.psforever.objects.guid.key.LoanedKey]"></a><a id="Available(Int):Option[LoanedKey]"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#Available(number:Int):Option[net.psforever.objects.guid.key.LoanedKey]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Available</span><span class="params">(<span name="number">number: <span name="scala.Int" class="extype">Int</span></span>)</span><span class="result">: <span name="scala.Option" class="extype">Option</span>[<a href="../key/LoanedKey.html" name="net
The <code>Monitor</code> should be updated before being wrapped, if necessary.</p></div><dl class="paramcmts block"><dt class="param">number</dt><dd class="cmt"><p>the number</p></dd><dt>returns</dt><dd class="cmt"><p>the wrapped <code>Monitor</code>, or <code>None</code></p></dd></dl><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="net.psforever.objects.guid.source.LimitedNumberSource" id="net.psforever.objects.guid.source.LimitedNumberSource" class="extype">LimitedNumberSource</a><a href="NumberSource.html" name="net.psforever.objects.guid.source.NumberSource" id="net.psforever.objects.guid.source.NumberSource" class="extype">NumberSource</a></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.guid.source.LimitedNumberSource#Clear" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Clear():List[net.psforever.objects.entity.IdentifiableEntity]"></a><a id="Clear():List[IdentifiableEntity]"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#Clear():List[net.psforever.objects.entity.IdentifiableEntity]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Clear</span><span class="params">()</span><span class="result">: <span name="scala.List" class="extype">List</span>[<a href="../../entity/IdentifiableEntity.html" name="net.psforever.objects.entity.IdentifiableEntity" id="net.psforever.objects.entity.IdentifiableEntity" class="extype">IdentifiableEntity</a>]</span></span><p class="shortcomment cmt">Reset all number <code>Monitor</code>s so that their underlying number is not longer treated as assigned.</p><div class="fullcomment"><div class="comment cmt"><p>Reset all number <code>Monitor</code>s so that their underlying number is not longer treated as assigned.
Perform some level of housecleaning to ensure that all dependencies are resolved in some manner.
This is the only way to free <code>Monitors</code> that are marked as <code>Restricted</code>.</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>a <code>List</code> of assignments maintained by all the currently-used number <code>Monitors</code></p></dd></dl><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="net.psforever.objects.guid.source.LimitedNumberSource" id="net.psforever.objects.guid.source.LimitedNumberSource" class="extype">LimitedNumberSource</a><a href="NumberSource.html" name="net.psforever.objects.guid.source.NumberSource" id="net.psforever.objects.guid.source.NumberSource" class="extype">NumberSource</a></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.guid.source.LimitedNumberSource#CountAvailable" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="CountAvailable:Int"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#CountAvailable:Int" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">CountAvailable</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span></span><p class="shortcomment cmt">The count of numbers that can still be drawn.</p><div class="fullcomment"><div class="comment cmt"><p>The count of numbers that can still be drawn.</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>the count</p></dd></dl><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="net.psforever.objects.guid.source.LimitedNumberSource" id="net.psforever.objects.guid.source.LimitedNumberSource" class="extype">LimitedNumberSource</a><a href="NumberSource.html" name="net.psforever.objects.guid.source.NumberSource" id="net.psforever.objects.guid.source.NumberSource" class="extype">NumberSource</a></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.guid.source.LimitedNumberSource#CountUsed" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="CountUsed:Int"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#CountUsed:Int" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">CountUsed</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span></span><p class="shortcomment cmt">The count of numbers that can not be drawn.</p><div class="fullcomment"><div class="comment cmt"><p>The count of numbers that can not be drawn.</p></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>the count</p></dd></dl><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="net.psforever.objects.guid.source.LimitedNumberSource" id="net.psforever.objects.guid.source.LimitedNumberSource" class="extype">LimitedNumberSource</a><a href="NumberSource.html" name="net.psforever.objects.guid.source.NumberSource" id="net.psforever.objects.guid.source.NumberSource" class="extype">NumberSource</a></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.guid.source.LimitedNumberSource#FinalizeRestrictions" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="FinalizeRestrictions:List[Int]"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#FinalizeRestrictions:List[Int]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">FinalizeRestrictions</span><span class="result">: <span name="scala.List" class="extype">List</span>[<span name="scala.Int" class="extype">Int</span>]</span></span><p class="shortcomment cmt">Numbers from this source may n
This wrapped <code>Monitor</code> can only be assigned once and the number may not be <code>Return</code>ed to this source.</p></div><dl class="paramcmts block"><dt class="param">number</dt><dd class="cmt"><p>the number</p></dd><dt>returns</dt><dd class="cmt"><p>the wrapped <code>Monitor</code></p></dd></dl><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="net.psforever.objects.guid.source.LimitedNumberSource" id="net.psforever.objects.guid.source.LimitedNumberSource" class="extype">LimitedNumberSource</a><a href="NumberSource.html" name="net.psforever.objects.guid.source.NumberSource" id="net.psforever.objects.guid.source.NumberSource" class="extype">NumberSource</a></dd><dt>Exceptions thrown</dt><dd><span class="cmt"><p><span name="ArrayIndexOutOfBoundsException" class="extype"><code>ArrayIndexOutOfBoundsException</code></span> if the requested number is above or below the range</p></span></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.guid.source.LimitedNumberSource#Return" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Return(number:Int):Option[net.psforever.objects.entity.IdentifiableEntity]"></a><a id="Return(Int):Option[IdentifiableEntity]"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#Return(number:Int):Option[net.psforever.objects.entity.IdentifiableEntity]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Return</span><span class="params">(<span name="number">number: <span name="scala.Int" class="extype">Int</span></span>)</span><span class="result">: <span name="scala.Option" class="extype">Option</span>[<a href="../../entity/IdentifiableEntity.html" name="net.psforever.objects.entity.IdentifiableEntity" id="net.psforever.objects.entity.IdentifiableEntity" class="extype">IdentifiableEntity</a>]</span></span><p class="shortcomment cmt">Consume the number of a <code>Monitor</code> and release that number from its previous assignment/use.</p><div class="fullcomment"><div class="comment cmt"><p>Consume the number of a <code>Monitor</code> and release that number from its previous assignment/use.</p></div><dl class="paramcmts block"><dt class="param">number</dt><dd class="cmt"><p>the number</p></dd><dt>returns</dt><dd class="cmt"><p>any object previously using this number</p></dd></dl><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="" name="net.psforever.objects.guid.source.LimitedNumberSource" id="net.psforever.objects.guid.source.LimitedNumberSource" class="extype">LimitedNumberSource</a><a href="NumberSource.html" name="net.psforever.objects.guid.source.NumberSource" id="net.psforever.objects.guid.source.NumberSource" class="extype">NumberSource</a></dd></dl></div></li><li class="indented0 " name="net.psforever.objects.guid.source.NumberSource#Return" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="Return(monitor:net.psforever.objects.guid.key.LoanedKey):Option[net.psforever.objects.entity.IdentifiableEntity]"></a><a id="Return(LoanedKey):Option[IdentifiableEntity]"></a> <span class="permalink"><a href="../../../../../net/psforever/objects/guid/source/LimitedNumberSource.html#Return(monitor:net.psforever.objects.guid.key.LoanedKey):Option[net.psforever.objects.entity.IdentifiableEntity]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">Return</span><span class="params">(<span name="monitor">monitor: <a href="../key/LoanedKey.html" name="net.psforever.objects.guid.key.LoanedKey" id="net.psforever.objects.guid.key.LoanedKey" class="extype">LoanedKey</a></span>)</span><span class="result">: <span name="scala.Option" class="extype">Option</span>[<a href="../../entity/IdentifiableEntity.html" name="net.psforever.objects.entit