Class Profile

java.lang.Object
com.aquima.interactions.profile.model.Profile
All Implemented Interfaces:
IEventChannel, IProfile, IProfileLifecycle, Serializable

public class Profile extends Object implements IProfile
This class holds all the data for a session.
Since:
5.0
Author:
O. Kerpershoek, F. v.d. Meer
See Also:
  • Constructor Details

    • Profile

      public Profile(IMetaModel metamodel)
      Constructs a profile for a meta model. This constructor will initialize the internal structure, and create instances for each instance definition from the meta model.
      Parameters:
      metamodel - The meta model for which the profile should be created.
      Throws:
      AppException - This exception is thrown when the profile could not be initialized due to a (structural) error.
  • Method Details

    • getInstanceManager

      public InstanceManager getInstanceManager()
    • initializeInstance

      protected void initializeInstance(IInstanceDefinition instanceDef, IEntityInstance instance)
    • getRelationsValue

      protected IValue getRelationsValue(IInstanceReference[] references)
    • getRelationValue

      protected EntityValue getRelationValue(IInstanceReference reference)
    • getSupportedEvents

      public int getSupportedEvents()
      Description copied from interface: IEventChannel
      This method returns a bit-mask containing all event types that are supported by this event channel. The bit-mask is a bitwise OR of the diverse event types. To check whether a specific event-listener is supported, you can do the following:
       // This checks if a VALUE listener is supported
       if ((channel.getSupportedEvents() & IEvent.Mask.VALUE) != 0) {
         // VALUE event listeners that are supported
       }
       
      Specified by:
      getSupportedEvents in interface IEventChannel
      Returns:
      Bit-mask containing the event types that are supported by this event channel.
    • addEventListener

      public boolean addEventListener(IEventListener listener)
      Description copied from interface: IEventChannel
      This method will add the passed event listener to the list of listeners.
      Specified by:
      addEventListener in interface IEventChannel
      Parameters:
      listener - The event listener that should be added.
      Returns:
      boolean indicating is the listener was actually added.
    • removeEventListener

      public boolean removeEventListener(IEventListener listener)
      Description copied from interface: IEventChannel
      This method will remove the specified event listener from the list of listeners.
      Specified by:
      removeEventListener in interface IEventChannel
      Parameters:
      listener - The event listener that should be removed.
      Returns:
      boolean indicating if the listener was actually removed.
    • createInstance

      public IEntityInstance createInstance(String entityName)
      Description copied from interface: IProfile
      This method creates a new empty instance for the specified entity type. The name and id of this new instance are generated by the profile itself.
      Specified by:
      createInstance in interface IProfile
      Parameters:
      entityName - The name of the entity for which a new instance should be created.
      Returns:
      A new instance for the specified type. Never null.
    • createInstance

      public IEntityInstance createInstance(String entityName, GUID instanceId, String instanceName)
      Description copied from interface: IProfile
      This method creates a new empty instance for the specified entity type. This method may supply either a name or ID which will be used by the profile to determine these values. When ID and instanceName are supplied with null, the behavior of this function is exactly the same as createInstance( String entityName ).
      Specified by:
      createInstance in interface IProfile
      Parameters:
      entityName - The name of the entity for which a new instance should be created.
      instanceId - Unique ID of the new instance. When null is supplied, an ID will be generated by the profile.
      instanceName - Unique name of the new instance. when null is supplied a name will be generated by the profile.
      Returns:
      A new instance for the specified type. Never null.
    • deleteInstance

      public void deleteInstance(IEntityInstance instance, boolean automaticalyDetach)
      Description copied from interface: IProfile
      Deletes the given instance, rendering the parameter useless. Please ensure no calls to the parameter IEntityInstance will be done after the deleteInstance.
      Specified by:
      deleteInstance in interface IProfile
      Parameters:
      instance - IEntityInstance the instance to delete.
      automaticalyDetach - Boolean indicating if references to this instance should automatically be updated.
    • getSingletonInstance

      public IEntityInstance getSingletonInstance(String entityName, boolean create)
      Description copied from interface: IProfile

      This method can be used to retrieve the singleton instance from the profile for a specific entity type. Depending on the value of the create parameter that is passed, the behavior of this method differs slightly.

      • When there is a singleton instance present in the profile for the specified type, this method will return that instance regardless the value of create.
      • When no instance is present for the specified type and create is set to true, the singleton instance will be created and returned.
      • When no instance is present for the specified type and create is set to false, an UnknownInstanceException will be thrown.
      When this method is invoked for an entity that has not been specified as a singleton type in the meta-model, this method will throw an exception, as a singleton instance can not exist for entities that allow multiple instances in the profile.
      Specified by:
      getSingletonInstance in interface IProfile
      Parameters:
      entityName - String the Name of the entity
      create - boolean indicating whether the singleton instance should be created in case it does not exist yet.
      Returns:
      IEntityInstance interface pointing to the singleton ('0'th) instance for the specified entity type.
    • getInstance

      public IEntityInstance getInstance(EntityValue id)
      Description copied from interface: IProfile
      This method can be used to lookup an instance based on a reference.
      Specified by:
      getInstance in interface IProfile
      Parameters:
      id - InstanceReference of the instance that should be returned.
      Returns:
      IEntityInstance The entity instance for the specified ID.
    • getInstanceByName

      public IEntityInstance getInstanceByName(String entityName, String instanceName)
      Description copied from interface: IProfile
      This method returns an instance of the specified type for the given instance name.
      Specified by:
      getInstanceByName in interface IProfile
      Parameters:
      entityName - The name of the entity (type) of which the instance should be.
      instanceName - The name of the instance.
      Returns:
      IEntityInstance object of the correct type for the specified name.
    • getInstanceById

      public IEntityInstance getInstanceById(String entityName, GUID instanceId)
      Description copied from interface: IProfile
      This method returns the instance of the specified type for the given instance id. The id of an instance is generated when the instance is created, and can thus only be used within the same session.
      Specified by:
      getInstanceById in interface IProfile
      Parameters:
      entityName - The name of the entity (type) of which the instance should be.
      instanceId - The (unique) id of the instance.
      Returns:
      IEntityInstance object of the correct type for the specified name.
    • getAllInstancesForEntity

      public IEntityInstance[] getAllInstancesForEntity(String entityName, boolean includeChildren)
      Description copied from interface: IProfile
      This method returns all existing instances of a certain type in the profile. Even when there are no instances available for a certain type an empty array will be returned.
      Specified by:
      getAllInstancesForEntity in interface IProfile
      Parameters:
      entityName - The entity type for which the instances are requested.
      includeChildren - when this option is passed as true, all child entity-types are also returned.
      Returns:
      An array of instances for the specified type (never null).
    • getEntityDefinition

      public IEntityDefinition getEntityDefinition(String entityName)
      Description copied from interface: IProfile
      This method returns an entity definition for the supplied entity name.
      Specified by:
      getEntityDefinition in interface IProfile
      Parameters:
      entityName - The name of the entity for which the definition is requested.
      Returns:
      IEntityDefinition object containing the static entity information.
    • commitTransaction

      public void commitTransaction(String name)
      Description copied from interface: IProfile
      Commits the current transaction in the profile.
      Specified by:
      commitTransaction in interface IProfile
      Parameters:
      name - Unique name identifying the transaction.
    • startTransaction

      public void startTransaction(String name)
      Description copied from interface: IProfile
      Starts a new transaction in the profile.
      Specified by:
      startTransaction in interface IProfile
      Parameters:
      name - Unique name identifying the transaction.
    • rollbackTransaction

      public void rollbackTransaction(String name)
      Description copied from interface: IProfile
      Performs a roll-back of all changes since the last start of a transaction.
      Specified by:
      rollbackTransaction in interface IProfile
      Parameters:
      name - Unique name identifying the transaction.
    • getState

      public IProfileState getState()
      Description copied from interface: IProfile
      Returns the state of the profile (for serialization)
      Specified by:
      getState in interface IProfile
      Returns:
      returns the current state of the profile.
    • restore

      public void restore(IProfileState state)
      Description copied from interface: IProfile
      Clears the current state and overrides it with the provided state.
      Specified by:
      restore in interface IProfile
      Parameters:
      state - The new state for this profile.
    • getMetaModel

      public IMetaModel getMetaModel()
    • passivate

      public void passivate()
      Description copied from interface: IProfileLifecycle
      This method may be used for preparing the profile for serialization.
      Specified by:
      passivate in interface IProfileLifecycle
    • activate

      public void activate(IProfileActivationContext profileActivationContext)
      Description copied from interface: IProfileLifecycle
      This method may be used for activating the profile after deserialization.
      Specified by:
      activate in interface IProfileLifecycle
      Parameters:
      profileActivationContext - the current profile activation context.