mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-03-01 11:33:41 +00:00
27 lines
47 KiB
HTML
27 lines
47 KiB
HTML
|
|
<!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"><</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="../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="../ConstructionItem.html" name="net.psforever.objects.ConstructionItem" id="net.psforever.objects.ConstructionItem" class="extype">ConstructionItem</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="../LocalProjectile.html" name="net.psforever.objects.LocalProjectile" id="net.psforever.objects.LocalProjectile" class="extype">LocalProjectile</a>, <a href="../LockerContainer.html" name="net.psforever.objects.LockerContainer" id="net.psforever.objects.LockerContainer" class="extype">LockerContainer</a>, <a href="../LockerEquipment.html" name="net.psforever.objects.LockerEquipment" id="net.psforever.objects.LockerEquipment" class="extype">LockerEquipment</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" name="net.psforever.objects.Tool" id="net.psforever.objects.Tool" class="extype">Tool</a>, <a href="../TrapDeployable.html" name="net.psforever.objects.TrapDeployable" id="net.psforever.objects.TrapDeployable" class="extype">TrapDeployable</a>, <a href="../TurretDeployable.html" name="net.psforever.objects.TurretDeployable" id="net.psforever.objects.TurretDeployable" class="extype">TurretDeployable</a>, <a href="../Vehicle.html" name="net.psforever.objects.Vehicle" id="net.psforever.objects.Vehicle" class="extype">Vehicle</a>, <a h
|
||
|
|
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
|