<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>CRecord on sillysky.net</title>
    <link>https://sillysky.net/docs/nyssr/messages/crecord/</link>
    <description>Recent content in CRecord on sillysky.net</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Tue, 14 Oct 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://sillysky.net/docs/nyssr/messages/crecord/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CSlotType</title>
      <link>https://sillysky.net/docs/nyssr/messages/crecord/slot-types/</link>
      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://sillysky.net/docs/nyssr/messages/crecord/slot-types/</guid>
      <description>&lt;p&gt;A slot type is implemented as a class that holds other data besides the type.&lt;/p&gt;&#xA;&lt;p&gt;Each type has a numeric ID (or ordinal value):&lt;/p&gt;&#xA;&lt;pre class=&#34;ss-javacode&#34;&gt;&lt;code class=&#34;language-java&#34;&gt;public int getId();&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A name and a type string is kept ready for the tool support.&lt;/p&gt;&#xA;&lt;pre class=&#34;ss-javacode&#34;&gt;&lt;code class=&#34;language-java&#34;&gt;public String getName();&#xA;public String getTypeString();&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;A flag indicates whether data in the type is transportable or only available&#xA;locally in a node.&lt;/p&gt;&#xA;&lt;pre class=&#34;ss-javacode&#34;&gt;&lt;code class=&#34;language-java&#34;&gt;public boolean isStorable()&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h2 id=&#34;notes&#34;&gt;Notes&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;CSlotType&lt;/code&gt; supports the &lt;code&gt;equals()&lt;/code&gt; and &lt;code&gt;hashCode()&lt;/code&gt; methods.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IGeneratedRecord</title>
      <link>https://sillysky.net/docs/nyssr/messages/crecord/igeneratedrecord/</link>
      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://sillysky.net/docs/nyssr/messages/crecord/igeneratedrecord/</guid>
      <description>&lt;p&gt;&lt;code&gt;IGeneratedRecord&lt;/code&gt; is just an empty marker interface.&lt;/p&gt;&#xA;&lt;p&gt;It is used by generated record classes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ISingleSlotTypeFactory</title>
      <link>https://sillysky.net/docs/nyssr/messages/crecord/isingleslottypefactory/</link>
      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://sillysky.net/docs/nyssr/messages/crecord/isingleslottypefactory/</guid>
      <description>&lt;p&gt;This interface is a factory for creating a single &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/slot-types/&#34;&gt;slot type&lt;/a&gt;. If&#xA;custom &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/slot-types/&#34;&gt;slot types&lt;/a&gt; are to be introduced, a class must be created for&#xA;each slot type that implements this interface. Likewise, a class must be&#xA;created that implements the &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/islot/&#34;&gt;ISlot&lt;/a&gt; interface.&lt;/p&gt;&#xA;&lt;h2 id=&#34;slot-type&#34;&gt;Slot type&lt;/h2&gt;&#xA;&lt;p&gt;The factory identifies itself with the produced &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/slot-types/&#34;&gt;slot type&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;pre class=&#34;ss-javacode&#34;&gt;&lt;code class=&#34;language-java&#34;&gt;@NotNull&#xA;&lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/slot-types/&#34;&gt;CSlotType&lt;/a&gt; getType();&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h2 id=&#34;class-of-the-transported-value&#34;&gt;Class of the transported value&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/islot/&#34;&gt;Slots&lt;/a&gt; always transport a certain &lt;strong&gt;Java&lt;/strong&gt; type. This is returned&#xA;here.&lt;/p&gt;&#xA;&lt;h2 id=&#34;creation-of-a-slot-from-an-object&#34;&gt;Creation of a slot from an object&lt;/h2&gt;&#xA;&lt;p&gt;The creation of a slot from an object is done here.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ISlot</title>
      <link>https://sillysky.net/docs/nyssr/messages/crecord/islot/</link>
      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://sillysky.net/docs/nyssr/messages/crecord/islot/</guid>
      <description>&lt;p&gt;The slot is a component of the &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/&#34;&gt;record&lt;/a&gt;, which means it belongs to&#xA;the &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/cmessage/&#34;&gt;message&lt;/a&gt;. It consists of a &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/slot-types/&#34;&gt;slot type&lt;/a&gt; and the data it&#xA;transports. The implementation remains hidden, so that you only have to deal&#xA;with the &lt;code&gt;ISlot&lt;/code&gt; interface. The object itself is put into a form in the slot&#xA;that can be used to transport it via DataStreams or JSON.&lt;/p&gt;&#xA;&lt;p&gt;Slots are created via a factory, the &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/cslotfactory/&#34;&gt;ISlotFactory&lt;/a&gt;. The&#xA;&lt;code&gt;ISlotFactor&lt;/code&gt; interface is obtained from the &lt;a href=&#34;https://sillysky.net/docs/nyssr/services/serviceregistry/&#34;&gt;service registry&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ISlotFactory</title>
      <link>https://sillysky.net/docs/nyssr/messages/crecord/cslotfactory/</link>
      <pubDate>Tue, 14 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://sillysky.net/docs/nyssr/messages/crecord/cslotfactory/</guid>
      <description>&lt;p&gt;The SlotFactory creates &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/islot/&#34;&gt;slots&lt;/a&gt; for use in &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/&#34;&gt;Records&lt;/a&gt; in&#xA;&lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/cmessage/&#34;&gt;Messages&lt;/a&gt;. It is expandable with custom &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/slot-types/&#34;&gt;slot types&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The SlotFactory can be fetched as a service via the&#xA;&lt;a href=&#34;https://sillysky.net/docs/nyssr/services/serviceregistry/&#34;&gt;ServiceRegistry&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;pre class=&#34;ss-javacode&#34;&gt;&lt;code class=&#34;language-java&#34;&gt;final &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/cslotfactory/&#34;&gt;ISlotFactory&lt;/a&gt; slotFactory = &lt;a href=&#34;https://sillysky.net/docs/nyssr/services/serviceregistry/&#34;&gt;CServiceRegistry&lt;/a&gt;.getInstance()&#xA;                                                 .getService(&lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/cslotfactory/&#34;&gt;ISlotFactory&lt;/a&gt;.class);&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;h2 id=&#34;creation-of-a-slot&#34;&gt;Creation of a slot&lt;/h2&gt;&#xA;&lt;p&gt;To create a &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/islot/&#34;&gt;slot&lt;/a&gt; we need the &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/slot-types/&#34;&gt;slot type&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;pre class=&#34;ss-javacode&#34;&gt;&lt;code class=&#34;language-java&#34;&gt;&lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/islot/&#34;&gt;ISlot&lt;/a&gt; create(&lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/slot-types/&#34;&gt;CSlotType&lt;/a&gt; aType) throws &lt;a href=&#34;https://sillysky.net/docs/nyssr/other-interfaces/cexception/&#34;&gt;CException&lt;/a&gt;;&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;The &lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/slot-types/&#34;&gt;slot type&lt;/a&gt; can also be determined by the system by specifying a&#xA;value:&lt;/p&gt;&#xA;&lt;pre class=&#34;ss-javacode&#34;&gt;&lt;code class=&#34;language-java&#34;&gt;&lt;a href=&#34;https://sillysky.net/docs/nyssr/messages/crecord/islot/&#34;&gt;ISlot&lt;/a&gt; fromObject(@Nullable Object aValue);&lt;/code&gt;&lt;/pre&gt;&#xA;&#xA;&lt;p&gt;If you want to be on the safe side, you can also specify both:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
