Class VSReference

All Implemented Interfaces:
EventListener, IGProp<ReferenceString>, IPropReference, IReferencingGProp, Cloneable
Direct Known Subclasses:
VSParticipant

public class VSReference extends AbstractReference<VirtualSpace>
The VirtualSpace Reference property class hold the reference to a VirtualSpace.
Author:
Christopher Mindus
  • Constructor Details

    • VSReference

      public VSReference()
      Creates a VirtualSpace Reference property with no name and with a null value.
    • VSReference

      public VSReference(Atom propertyAtom)
      Creates a VirtualSpace Reference property with the specified name with a null value.
      Parameters:
      propertyAtom - the property atom.
    • VSReference

      public VSReference(Atom propertyAtom, String newValue)
      Creates a VirtualSpace Reference property with the specified name and value.
      Parameters:
      propertyAtom - the property atom.
      newValue - the new string value for the property.
  • Method Details

    • isPropPrivateAtCreation

      protected final boolean isPropPrivateAtCreation()
      Called upon creation of the property to check it's private state. This is used by properties that are not distributed to the remote party.
      Overrides:
      isPropPrivateAtCreation in class GProp<ReferenceString>
      Returns:
      true, always.
    • virtualize

      protected VSReference virtualize(IAppSessionGyro appGyro, IClientSessionGyro clientGyro, VirtualSpace virtualSpace) throws CloneNotSupportedException, PropException
      Call this method to "virtualize" a property tree. This method is used at runtime in the Server for the application session of virtual instances of VirtualSpace, but also virtual instances of panels, for the individual client session. The VirtualSpace is virtualized once for the application session and is shared for parallel client sessions.

      This method is similar to cloning, but enables references that are already resolved to remain if they point to a shared instance, e.g. the VirtualSpace pointing to its participants in the application property container shared instance, or a panel with references to text IDs, assets, etc.

      It is up to the property class to handle this by overriding this method.

      Overrides:
      virtualize in class GProp<ReferenceString>
      Parameters:
      appGyro - The application gyro instance performing the virtualization.
      clientGyro - The client gyro session, can be null if not initialized from the client gyro.
      virtualSpace - The virtualized VirtualSpace.
      Returns:
      The virtualized property.
      Throws:
      CloneNotSupportedException - If a subclass doesn't allow cloning, e.g. the client properties.
      PropException - For property errors during the virtualization.
      IllegalStateException - IllegalStateException if the property is in an invalid state, e.g. in virtualizing state or if in
    • getFixedTarget

      protected VirtualSpace getFixedTarget()
      Support for a fixed reference.

      Override to provide the support.

      Overrides:
      getFixedTarget in class AbstractReference<VirtualSpace>
      Returns:
      The fixed reference to return in cases the target reference is needed, and also serves as a verification if a new reference should be created or not. Returning null causes normal behavior (default).
    • clearFixedTarget

      protected void clearFixedTarget()
      Called to clear the fixed reference in case the reference is changed. This will revert back to normal processing.

      The "clone" method does not change to be overridden to clear the fixed target as this method is called during cloning.

      Override to provide the support. It is important to also implement this method along with "getFixedTarget".

      Overrides:
      clearFixedTarget in class AbstractReference<VirtualSpace>
    • onReferenceEvent

      public void onReferenceEvent(PropReference ref, IPropReference.ReferenceChangeEvent event, GEvent triggerEvent)
      Called when a property reference event occurs. The events are ReferenceChangeEvent.FOUND, FOUND_WRONG_CLASS, RENAMED, MOVED, NEW_PROPERTY, BROKEN.
      Specified by:
      onReferenceEvent in interface IPropReference
      Overrides:
      onReferenceEvent in class AbstractReference<VirtualSpace>
      Parameters:
      ref - The property reference object.
      event - The event.
      triggerEvent - The event that triggered this reference event, null for none.
    • getReferenceType

      public IPropReference.IRefType getReferenceType()
      Gets the reference Type.
      Specified by:
      getReferenceType in interface IPropReference
      Specified by:
      getReferenceType in interface IReferencingGProp
      Specified by:
      getReferenceType in class AbstractReference<VirtualSpace>
      Returns:
      IPropReference.RefType.VirtualSpace.
    • getPropertyClass

      public Class<VirtualSpace> getPropertyClass()
      Gets the class wanted.
      Specified by:
      getPropertyClass in class AbstractReference<VirtualSpace>
      Returns:
      VirtualSpace.class.
    • isReferenceValid

      public boolean isReferenceValid(GProp<?> property)
      Validates the property reference that has been looked up.
      Specified by:
      isReferenceValid in interface IPropReference
      Specified by:
      isReferenceValid in class AbstractReference<VirtualSpace>
      Parameters:
      property - The property to validate.
      Returns:
      true if valid, false otherwise.
    • getVSComponent

      public VSComponent getVSComponent(VSRelativeReference<?> relRef)
      Gets a VirtualSpace component from a relative reference.
      Parameters:
      relRef - The relative reference.
      Returns:
      A property container of VSField, VSTable, VSColumnHeader, VSRow instance, or null if not found.
    • getVSComponent

      public VSComponent getVSComponent(String rel)
      Gets a VirtualSpace component from a relative reference.
      Parameters:
      rel - The relative reference.
      Returns:
      A property container of VSField, VSTable, VSColumnHeader, VSRow instance, or null if not found.
    • getVirtualSpace

      public VirtualSpace getVirtualSpace()
      Gets the VirtualSpace for this reference.

      The method first attempts to use the resolved mechanism of getting the VirtualSpace. If this has failed or has not been resolved yet, the property tree will be used to search for it. The latter is, of course, slower.

      Returns:
      The VirtualSpace instance, or null if not found.
    • getNonVirtualizedVirtualSpace

      public VirtualSpace getNonVirtualizedVirtualSpace()
      Gets the non-virtualized VirtualSpace instance.
      Returns:
      The non-virtualized VirtualSpace instance if reference is found.
    • paramString

      protected String paramString()
      Returns the parameter string representing the state of this event. This string is useful for debugging. Subclasses adds extra information to the string by preceding it with a comma followed by the extra information.
      Overrides:
      paramString in class AbstractReference<VirtualSpace>
      Returns:
      the parameter string of this event.