Module com.s8.api

Class SpaceS8Object

java.lang.Object
com.s8.api.flow.space.objects.SpaceS8Object

public class SpaceS8Object extends Object

S8Shell represents an enclosure of a graph of S8Object. This shell has multiple role:

  • #1 LOGICAL UNIT: It defines a logical unit from the application logic point of view
  • #2 SYNCHRONIZATION: It is the primary scope of lock enabling async processes
  • #3 STORAGE UNIT: It acts a persistency bucket (and therefore must be considered the main element to understand the latency of the application implementation.)
  • #4 VERSION UNIT: It is the key building block for substitution pattern, that acts as a repository state.
  • #5 ENCAPSULATION: It is the primary encapsulation control unit. Note that we cannot access (from a logical point of view the inner nodes of the graph encapsulated by the shell, unless they are specifically designated as logical ports of the shell.

Note that S8object objects used as logical ports SHOULD refer the shell (typically as a field).

/**

Unpinned object applications:

  • transient: object created on the fly that don't need any S8Shell handling and management
  • private: none of S8Struct object method are exposed for direct request
  • managed: acess control is non-existent (for access control, upgrade to S8Object
  • leaves: typical used as leaves of a tree which nodes are S8Object
Author:
Pierre Convert Copyright (C) 2025, Pierre Convert. All rights reserved.
  • Field Details

  • Constructor Details

    • SpaceS8Object

      public SpaceS8Object()
      Perform initial binding of object with vertex, vertex itself being bound to its shell
  • Method Details

    • reportFieldUpdate

      public void reportFieldUpdate(String fieldName) throws S8IOException
      Report an update for a field
      Parameters:
      fieldName - the name of the field fo which an update is to be reported
      Throws:
      S8IOException - the exception raised while reporting
    • reportFieldUpdates

      public void reportFieldUpdates(String... fieldNames) throws S8IOException
      Report an update for many fields
      Parameters:
      fieldNames - the name of the fields fo which updates are to be reported
      Throws:
      S8IOException - the exception raised while reporting