Class EventState


  • public class EventState
    extends Object
    The EventState class encapsulates the session independent state of an Event.
    • Method Detail

      • childNodeAdded

        public static EventState childNodeAdded​(NodeId parentId,
                                                Path parentPath,
                                                NodeId childId,
                                                Path childPath,
                                                Name nodeType,
                                                Set<Name> mixins,
                                                Session session)
        Creates a new Event of type Event.NODE_ADDED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childId - the id of the child node associated with this event.
        childPath - the relative path of the child node that was added.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that added the node.
        Returns:
        an EventState instance.
      • childNodeAdded

        public static EventState childNodeAdded​(NodeId parentId,
                                                Path parentPath,
                                                NodeId childId,
                                                Path childPath,
                                                Name nodeType,
                                                Set<Name> mixins,
                                                Session session,
                                                boolean external)
        Creates a new Event of type Event.NODE_ADDED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childId - the id of the child node associated with this event.
        childPath - the relative path of the child node that was added.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that added the node.
        external - flag indicating whether this is an external event
        Returns:
        an EventState instance.
      • childNodeRemoved

        public static EventState childNodeRemoved​(NodeId parentId,
                                                  Path parentPath,
                                                  NodeId childId,
                                                  Path childPath,
                                                  Name nodeType,
                                                  Set<Name> mixins,
                                                  Session session)
        Creates a new Event of type Event.NODE_REMOVED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childId - the id of the child node associated with this event.
        childPath - the relative path of the child node that was removed.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that removed the node.
        Returns:
        an EventState instance.
      • childNodeRemoved

        public static EventState childNodeRemoved​(NodeId parentId,
                                                  Path parentPath,
                                                  NodeId childId,
                                                  Path childPath,
                                                  Name nodeType,
                                                  Set<Name> mixins,
                                                  Session session,
                                                  boolean external)
        Creates a new Event of type Event.NODE_REMOVED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childId - the id of the child node associated with this event.
        childPath - the relative path of the child node that was removed.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that removed the node.
        external - flag indicating whether this is an external event
        Returns:
        an EventState instance.
      • nodeMoved

        public static EventState nodeMoved​(NodeId parentId,
                                           Path parentPath,
                                           NodeId childId,
                                           Path childPath,
                                           Name nodeType,
                                           Set<Name> mixins,
                                           Session session,
                                           boolean external)
        Creates a new Event of type NODE_MOVED. The parent node associated with this event type is the parent node of the destination of the move! This method creates an event state without an info map. A caller of this method must ensure that it is properly set afterwards.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childId - the id of the child node associated with this event.
        childPath - the relative path of the child node that was moved.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that moved the node.
        external - flag indicating whether this is an external event
        Returns:
        an EventState instance.
      • nodeMovedWithInfo

        public static EventState nodeMovedWithInfo​(NodeId parentId,
                                                   Path destPath,
                                                   NodeId childId,
                                                   Path srcPath,
                                                   Name nodeType,
                                                   Set<Name> mixins,
                                                   Session session,
                                                   boolean external)
                                            throws ItemStateException
        Creates a new Event of type NODE_MOVED. The parent node associated with this event type is the parent node of the destination of the move!
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        destPath - the path of the destination of the move.
        childId - the id of the child node associated with this event.
        srcPath - the path of the source of the move.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that removed the node.
        external - flag indicating whether this is an external event
        Returns:
        an EventState instance.
        Throws:
        ItemStateException - if destPath does not have a parent.
      • nodeReordered

        public static EventState nodeReordered​(NodeId parentId,
                                               Path parentPath,
                                               NodeId childId,
                                               Path destChildPath,
                                               Path srcChildPath,
                                               Path beforeChildPath,
                                               Name nodeType,
                                               Set<Name> mixins,
                                               Session session,
                                               boolean external)
        Creates a new Event of type NODE_MOVED. The parent node associated with this event type is the parent node of the destination of the reorder!
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childId - the id of the child node associated with this event.
        destChildPath - the name element of the node before it was reordered.
        srcChildPath - the name element of the reordered node before the reorder operation.
        beforeChildPath - the name element of the node before which the reordered node is placed. (may be null if reordered to the end.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that removed the node.
        external - flag indicating whether this is an external event
        Returns:
        an EventState instance.
      • propertyAdded

        public static EventState propertyAdded​(NodeId parentId,
                                               Path parentPath,
                                               Path childPath,
                                               Name nodeType,
                                               Set<Name> mixins,
                                               Session session)
        Creates a new Event of type Event.PROPERTY_ADDED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childPath - the relative path of the property that was added.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that added the property.
        Returns:
        an EventState instance.
      • propertyAdded

        public static EventState propertyAdded​(NodeId parentId,
                                               Path parentPath,
                                               Path childPath,
                                               Name nodeType,
                                               Set<Name> mixins,
                                               Session session,
                                               boolean external)
        Creates a new Event of type Event.PROPERTY_ADDED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childPath - the relative path of the property that was added.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that added the property.
        external - flag indicating whether this is an external event
        Returns:
        an EventState instance.
      • propertyRemoved

        public static EventState propertyRemoved​(NodeId parentId,
                                                 Path parentPath,
                                                 Path childPath,
                                                 Name nodeType,
                                                 Set<Name> mixins,
                                                 Session session)
        Creates a new Event of type Event.PROPERTY_REMOVED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childPath - the relative path of the property that was removed.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that removed the property.
        Returns:
        an EventState instance.
      • propertyRemoved

        public static EventState propertyRemoved​(NodeId parentId,
                                                 Path parentPath,
                                                 Path childPath,
                                                 Name nodeType,
                                                 Set<Name> mixins,
                                                 Session session,
                                                 boolean external)
        Creates a new Event of type Event.PROPERTY_REMOVED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childPath - the relative path of the property that was removed.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that removed the property.
        external - flag indicating whether this is an external event
        Returns:
        an EventState instance.
      • propertyChanged

        public static EventState propertyChanged​(NodeId parentId,
                                                 Path parentPath,
                                                 Path childPath,
                                                 Name nodeType,
                                                 Set<Name> mixins,
                                                 Session session)
        Creates a new Event of type Event.PROPERTY_CHANGED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childPath - the relative path of the property that changed.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that changed the property.
        Returns:
        an EventState instance.
      • propertyChanged

        public static EventState propertyChanged​(NodeId parentId,
                                                 Path parentPath,
                                                 Path childPath,
                                                 Name nodeType,
                                                 Set<Name> mixins,
                                                 Session session,
                                                 boolean external)
        Creates a new Event of type Event.PROPERTY_CHANGED.
        Parameters:
        parentId - the id of the parent node associated with this EventState.
        parentPath - the path of the parent node associated with this EventState.
        childPath - the relative path of the property that changed.
        nodeType - the node type of the parent node.
        mixins - mixins assigned to the parent node.
        session - the session that changed the property.
        external - flag indicating whether this is an external event
        Returns:
        an EventState instance.
      • persist

        public static EventState persist​(Session session,
                                         boolean external)
        Creates a new Event of type Event.PERSIST.
        Parameters:
        session - the session that changed the property.
        external - flag indicating whether this is an external event
        Returns:
        an EventState instance.
      • getType

        public int getType()
      • getParentId

        public NodeId getParentId()
        Returns the uuid of the parent node.
        Returns:
        the uuid of the parent node.
      • getParentPath

        public Path getParentPath()
        Returns the path of the parent node.
        Returns:
        the path of the parent node.
      • getChildId

        public NodeId getChildId()
        Returns the Id of a child node operation. If this EventState was generated for a property operation this method returns null.
        Returns:
        the id of a child node operation.
      • getChildRelPath

        public Path getChildRelPath()
        Returns the relative Path of the child Item associated with this event.
        Returns:
        the Path associated with this event.
      • getNodeType

        public Name getNodeType()
        Returns the node type of the parent node associated with this event.
        Returns:
        the node type of the parent associated with this event.
      • getMixinNames

        public Set<Name> getMixinNames()
        Returns a set of Names which are the names of the mixins assigned to the parent node associated with this event.
        Returns:
        the mixin names as Names.
      • getNodeTypes

        public Set<NodeType> getNodeTypes​(NodeTypeManagerImpl ntMgr)
        Returns the Set of NodeTypes assigned to the parent node associated with this event. This Set includes the primary type as well as all the mixin types assigned to the parent node.
        Returns:
        Set of NodeTypes.
      • getUserId

        public String getUserId()
      • setInfo

        public void setInfo​(Map<String,​InternalValue> info)
        Sets a new info map for this event.
        Parameters:
        info - the new info map.
      • toString

        public String toString()
        Returns a String representation of this EventState.
        Overrides:
        toString in class Object
        Returns:
        a String representation of this EventState.
      • hashCode

        public int hashCode()
        Returns a hashCode for this EventState.
        Overrides:
        hashCode in class Object
        Returns:
        a hashCode for this EventState.
      • equals

        public boolean equals​(Object obj)
        Returns true if this EventState is equal to another object.
        Overrides:
        equals in class Object
        Parameters:
        obj - the reference object with which to compare.
        Returns:
        true if object obj is equal to this EventState; false otherwise.
      • valueOf

        public static String valueOf​(int eventType)
        Returns a String representation of eventType.
        Parameters:
        eventType - an event type defined by Event.
        Returns:
        a String representation of eventType.
      • getCommonPath

        public static String getCommonPath​(List<EventState> events,
                                           SessionImpl session)
        Get the longest common path of all event state paths.
        Parameters:
        events - The list of EventState
        session - The associated session; it can be null
        Returns:
        the longest common path