PSF-LoginServer/net/psforever/objects/entity/IdentifiableEntity.html

27 lines
50 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.entity.IdentifiableEntity</title><meta content="PSF - LoginServer - master - net.psforever.objects.entity.IdentifiableEntity" name="description"/><meta content="PSF LoginServer master net.psforever.objects.entity.IdentifiableEntity" 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.entity" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="entity"></a><a id="entity:entity"></a> <span class="permalink"><a href="../../../../net/psforever/objects/entity/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">entity</span></a></span><
<br>
The basic design philosophy of the workflow of a GUID at this stage is a deterministic state machine.
At the start, an <code>Exception</code> will be thrown while the default conditions of the accessor and mutator are maintained.
("The ability to set a new valid GUID".)
Only a valid GUID may be set and, once it does, that changes the conditions of the accessor and mutator
to one where it will return the valid GUID and one where it will no longer accept a new GUID (valid or invalid).
That GUID will continue being the GUID reported by the object, even if another valid GUID tries to be set.
(No error or exception will be thrown.)
To set a new GUID, the current one must be invalidated with the appropriate function,
and this turns both the object and any object reference that can be acquired from the object "stale."
Doing this prior to setting the initial valid GUID is fruitless
as it restores the object to its default mutation option ("the ability to set a new valid GUID").
Access to the GUID is retained.
This can be done as many times as is necessary by following the same order of actions.<br>
<br>
The "staleness" of the object and the "staleness" of the GUID are related.
The condition in general indicates that the object has somehow become externally disconnected from its GUID reference
though the two still share something similar to their prior relationship internally.
Do not expect a "stale" GUID to refer to the same object through some mapping mechanism.
Do not expect a "stale" object to give you a GUID that will map back to itself.</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/entity/IdentifiableEntity.scala" target="_blank">IdentifiableEntity.scala</a></dd><dt>Exceptions thrown</dt><dd><span class="cmt"><p><span name="`NoGUIDException`" class="extype"><code>`NoGUIDException`</code></span> if a GUID has not yet been assigned</p></span></dd></dl><div class="toggleContainer"><div class="toggle block"><span>Linear Supertypes</span><div class="superTypes hiddenContent"><a href="Identifiable.html" name="net.psforever.objects.entity.Identifiable" id="net.psforever.objects.entity.Identifiable" class="extype">Identifiable</a>, <span name="scala.AnyRef" class="extype">AnyRef</span>, <span name="scala.Any" class="extype">Any</span></div></div></div><div class="toggleContainer"><div class="toggle block"><span>Known Subclasses</span><div class="subClasses hiddenContent"><a href="../../actors/zone/building/FakeNtuSource.html" name="net.psforever.actors.zone.building.FakeNtuSource" id="net.psforever.actors.zone.building.FakeNtuSource" class="extype">FakeNtuSource</a>, <a href="../AmmoBox.html" name="net.psforever.objects.AmmoBox" id="net.psforever.objects.AmmoBox" class="extype">AmmoBox</a>, <a href="../BoomerDeployable.html" name="net.psforever.objects.BoomerDeployable" id="net.psforever.objects.BoomerDeployable" class="extype">BoomerDeployable</a>, <a href="../BoomerTrigger.html" name="net.psforever.objects.BoomerTrigger" id="net.psforever.objects.BoomerTrigger" class="extype">BoomerTrigger</a>, <a href="../CommonNtuContainer.html" name="net.psforever.objects.CommonNtuContainer" id="net.psforever.objects.CommonNtuContainer" class="extype">CommonNtuContainer</a>, <a href="../ConstructionItem.html" name="net.psforever.objects.ConstructionItem" id="net.psforever.objects.ConstructionItem" class="extype">ConstructionItem</a>, <a href="../DummyExplodingEntity.html" name="net.psforever.objects.DummyExplodingEntity" id="net.psforever.objects.DummyExplodingEntity" class="extype">DummyExplodingEntity</a>, <a href="../ExplosiveDeployable.html" name="net.psforever.objects.ExplosiveDeployable" id="net.psforever.objects.ExplosiveDeployable" class="extype">ExplosiveDeployable</a>, <a href="../Kit.html" name="net.psforever.objects.Kit" id="net.psforever.objects.Kit" class="extype">Kit</a>, <a href="../LocalLockerItem.html" name="net.psforever.objects.LocalLockerItem" id="net.psforever.objects.LocalLockerItem" class="extype">LocalLockerItem</a>, <a href="../LocalProjectile.html" name="net.psforever.objects.LocalProjectile" id="net.psforever.objects.LocalProjectile" class="extype">LocalProjectile</a>, <a href="../NtuContainer.html" name="net.psforever.objects.NtuContainer" id="net.psforever.objects.NtuContainer" class="extype">NtuContainer</a>, <a href="../PlanetSideGameObject.html" name="net.psforever.objects.PlanetSideGameObject" id="net.psforever.objects.PlanetSideGameObject" class="extype">PlanetSideGameObject</a>, <a href="../Player.html" name="net.psforever.objects.Player" id="net.psforever.objects.Player" class="extype">Player</a>, <a href="../SensorDeployable.html" name="net.psforever.objects.SensorDeployable" id="net.psforever.objects.SensorDeployable" class="extype">SensorDeployable</a>, <a href="../ShieldGeneratorDeployable.html" name="net.psforever.objects.ShieldGeneratorDeployable" id="net.psforever.objects.ShieldGeneratorDeployable" class="extype">ShieldGeneratorDeployable</a>, <a href="../SimpleItem.html" name="net.psforever.objects.SimpleItem" id="net.psforever.objects.SimpleItem" class="extype">SimpleItem</a>, <a href="../Telepad.html" name="net.psforever.objects.Telepad" id="net.psforever.objects.Telepad" class="extype">Telepad</a>, <a href="../TelepadDeployable.html" name="net.psforever.objects.TelepadDeployable" id="net.psforever.objects.TelepadDeployable" class="extype">TelepadDeployable</a>, <a href="../Tool.html" n
Transforms whatever the current GUID is into a <code>StalePlanetSideGUID</code> entity with the same value.
Doing this restores the object to its default mutation option ("the ability to set a new valid GUID").
The current GUID will still be accessed as if it were valid, but it will be wrapped in the new stale object.
</p></div></div></li><li class="indented0 " name="scala.Any#asInstanceOf" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="asInstanceOf[T0]:T0"></a> <span class="permalink"><a href="../../../../net/psforever/objects/entity/IdentifiableEntity.html#asInstanceOf[T0]:T0" 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">asInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span name="scala.Any.asInstanceOf.T0" class="extype">T0</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#clone" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="clone():Object"></a><a id="clone():AnyRef"></a> <span class="permalink"><a href="../../../../net/psforever/objects/entity/IdentifiableEntity.html#clone():Object" 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">clone</span><span class="params">()</span><span class="result">: <span name="scala.AnyRef" class="extype">AnyRef</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<span name="java.lang" class="extype">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.CloneNotSupportedException]</span></span>)</span> <span class="name">@native</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#eq" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="eq(x$1:AnyRef):Boolean"></a><a id="eq(AnyRef):Boolean"></a> <span class="permalink"><a href="../../../../net/psforever/objects/entity/IdentifiableEntity.html#eq(x$1:AnyRef):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">eq</span><span class="params">(<span name="arg0">arg0: <span name="scala.AnyRef" class="extype">AnyRef</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</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#equals" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="equals(x$1:Object):Boolean"></a><a id="equals(AnyRef):Boolean"></a> <span class="permalink"><a href="../../../../net/psforever/objects/entity/IdentifiableEntity.html#equals(x$1:Object):Boolean" 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">equals</span><span class="params">(<span name="arg0">arg0: <span name="scala.AnyRef" class="extype">AnyRef</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#finalize" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="finalize():Unit"></a> <span class="permalink"><a href="../../../../net/psforever/objects/entity/IdentifiableEntity.html#finalize():Unit" 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">finalize</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="e