org.modeshape.jcr.cache.change

## Class RecordingChanges

- java.lang.Object
- - org.modeshape.jcr.cache.change.RecordingChanges

- All Implemented Interfaces:
    Serializable, Iterable<Change>, Changes, ChangeSet

      @ThreadSafe
      public class RecordingChanges
      extends Object
      implements Changes, ChangeSet

  A thread-safe `Changes` implementation that records the changes and makes them available for iteration.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RecordingChanges(String processKey, String repositoryKey)`
    `RecordingChanges(String processKey, String repositoryKey, String workspaceName)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `binaryValueNoLongerUsed(BinaryKey key)` Create an event that signals that the (stored) binary value with the supplied key is no longer used.
    `Set<NodeKey>` | `changedNodes()`
    `void` | `freeze(String userId, Map<String,String> userData, DateTime timestamp)`
    `String` | `getProcessKey()` Get the key of the process in which the changes were made.
    `String` | `getRepositoryKey()` Get the key of the repository in which the changes were made.
    `DateTime` | `getTimestamp()`
    `Map<String,String>` | `getUserData()`
    `String` | `getUserId()`
    `String` | `getWorkspaceName()` Get the name of the workspace in which the changes were made.
    `boolean` | `isEmpty()`
    `Iterator<Change>` | `iterator()` Returns an iterator over the elements in this queue in proper sequence.
    `void` | `nodeChanged(NodeKey key, Path path)` Create an event signifying that something about the node (other than the properties or location) changed.
    `void` | `nodeCreated(NodeKey key, NodeKey parentKey, Path path, Map<Name,Property> properties)` Signal that a new node was created.
    `void` | `nodeMoved(NodeKey key, NodeKey newParent, NodeKey oldParent, Path newPath, Path oldPath)` Signal that a node was moved from one parent to another, and may have also been renamed.
    `void` | `nodeRemoved(NodeKey key, NodeKey parentKey, Path path)` Signal that a node was removed.
    `void` | `nodeRenamed(NodeKey key, Path newPath, Path.Segment oldName)` Signal that a node was renamed (but still has the same parent)
    `void` | `nodeReordered(NodeKey key, NodeKey parent, Path newPath, Path oldPath, Path reorderedBeforePath)` Signal that a node was placed into a new location within the same parent.
    `void` | `nodeSequenced(NodeKey sequencedNodeKey, Path sequencedNodePath, NodeKey outputNodeKey, Path outputNodePath, String outputPath, String userId, String selectedPath, String sequencerName)` Signal that a node was successfully sequenced.
    `void` | `nodeSequencingFailure(NodeKey sequencedNodeKey, Path sequencedNodePath, String outputPath, String userId, String selectedPath, String sequencerName, Throwable cause)` Signal that a node was not sequenced successfully.
    `void` | `propertyAdded(NodeKey key, Path nodePath, Property property)` Signal that a property was added to a node.
    `void` | `propertyChanged(NodeKey key, Path nodePath, Property newProperty, Property oldProperty)` Signal that a property was changed on a node.
    `void` | `propertyRemoved(NodeKey key, Path nodePath, Property property)` Signal that a property was removed from a node.
    `void` | `repositoryMetadataChanged()` Signal that the repository metadata has changed.
    `void` | `setChangedNodes(Set<NodeKey> keys)`
    `int` | `size()` Return the number of individual changes.
    `String` | `toString()`
    `void` | `workspaceAdded(String workspaceName)` Signal that a new workspace has been added.
    `void` | `workspaceRemoved(String workspaceName)` Signal that a new workspace has been removed.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### RecordingChanges

          public RecordingChanges(String processKey,
                          String repositoryKey)

    - #### RecordingChanges

          public RecordingChanges(String processKey,
                          String repositoryKey,
                          String workspaceName)

  - ### Method Detail

    - #### workspaceAdded

          public void workspaceAdded(String workspaceName)

      Description copied from interface: `Changes`
      Signal that a new workspace has been added.
      Specified by:
        `workspaceAdded` in interface `Changes`
      Parameters:
        `workspaceName` - the name of the workspace; may not be null

    - #### workspaceRemoved

          public void workspaceRemoved(String workspaceName)

      Description copied from interface: `Changes`
      Signal that a new workspace has been removed.
      Specified by:
        `workspaceRemoved` in interface `Changes`
      Parameters:
        `workspaceName` - the name of the workspace; may not be null

    - #### repositoryMetadataChanged

          public void repositoryMetadataChanged()

      Description copied from interface: `Changes`
      Signal that the repository metadata has changed.
      Specified by:
        `repositoryMetadataChanged` in interface `Changes`

    - #### nodeCreated

          public void nodeCreated(NodeKey key,
                         NodeKey parentKey,
                         Path path,
                         Map<Name,Property> properties)

      Description copied from interface: `Changes`
      Signal that a new node was created.
      Specified by:
        `nodeCreated` in interface `Changes`
      Parameters:
        `key` - the key for the new node; may not be null
        `parentKey` - the key for the parent of the new node; may not be null
        `path` - the path to the new node; may not be null
        `properties` - the properties in the new node, or null if there are none

    - #### nodeRemoved

          public void nodeRemoved(NodeKey key,
                         NodeKey parentKey,
                         Path path)

      Description copied from interface: `Changes`
      Signal that a node was removed.
      Specified by:
        `nodeRemoved` in interface `Changes`
      Parameters:
        `key` - the key for the removed node; may not be null
        `parentKey` - the key for the old parent of the removed node; may not be null
        `path` - the path to the removed node; may not be null

    - #### nodeRenamed

          public void nodeRenamed(NodeKey key,
                         Path newPath,
                         Path.Segment oldName)

      Description copied from interface: `Changes`
      Signal that a node was renamed (but still has the same parent)
      Specified by:
        `nodeRenamed` in interface `Changes`
      Parameters:
        `key` - the key for the node; may not be null
        `newPath` - the new path for the node; may not be null
        `oldName` - the old name (including SNS index); may not be null

    - #### nodeMoved

          public void nodeMoved(NodeKey key,
                       NodeKey newParent,
                       NodeKey oldParent,
                       Path newPath,
                       Path oldPath)

      Description copied from interface: `Changes`
      Signal that a node was moved from one parent to another, and may have also been renamed.
      Specified by:
        `nodeMoved` in interface `Changes`
      Parameters:
        `key` - the key for the node; may not be null
        `newParent` - the new parent for the node; may not be null
        `oldParent` - the old parent for the node; may not be null
        `newPath` - the new path for the node after it has been moved; may not be null
        `oldPath` - the old path for the node before it was moved; may not be null

    - #### nodeReordered

          public void nodeReordered(NodeKey key,
                           NodeKey parent,
                           Path newPath,
                           Path oldPath,
                           Path reorderedBeforePath)

      Description copied from interface: `Changes`
      Signal that a node was placed into a new location within the same parent.
      Specified by:
        `nodeReordered` in interface `Changes`
      Parameters:
        `key` - the key for the node; may not be null
        `parent` - the key for the parent of the node; may not be null
        `newPath` - the new path for the node after it has been reordered; may not be null
        `oldPath` - the old path for the node before it was reordered; may be null in the case of transient reorderings
        `reorderedBeforePath` - the path of the node before which the node was moved; or null if the node was reordered to the end of the list of children of the parent node

    - #### nodeChanged

          public void nodeChanged(NodeKey key,
                         Path path)

      Description copied from interface: `Changes`
      Create an event signifying that something about the node (other than the properties or location) changed.
      Specified by:
        `nodeChanged` in interface `Changes`
      Parameters:
        `key` - the node key; may not be null
        `path` - the path

    - #### nodeSequenced

          public void nodeSequenced(NodeKey sequencedNodeKey,
                           Path sequencedNodePath,
                           NodeKey outputNodeKey,
                           Path outputNodePath,
                           String outputPath,
                           String userId,
                           String selectedPath,
                           String sequencerName)

      Description copied from interface: `Changes`
      Signal that a node was successfully sequenced.
      Specified by:
        `nodeSequenced` in interface `Changes`
      Parameters:
        `sequencedNodeKey` - the key of the node that was used as input and sequenced; may not be null
        `sequencedNodePath` - the path of the node that was used as input and sequenced; may not be null
        `outputNodeKey` - the key of the top-level node output by the sequencing operation; may not be null
        `outputNodePath` - the path of the top-level node output by the sequencing operation; may not be null
        `outputPath` - the string representation of the output path of the sequencing operation
        `userId` - the username of the session that generated the change that led to the sequencing operation
        `selectedPath` - the string representation of the path that led to the sequencing operation (which may or may not be the same as the sequenced node path); may not be null
        `sequencerName` - the name of the sequencer; may not be null

    - #### nodeSequencingFailure

          public void nodeSequencingFailure(NodeKey sequencedNodeKey,
                                   Path sequencedNodePath,
                                   String outputPath,
                                   String userId,
                                   String selectedPath,
                                   String sequencerName,
                                   Throwable cause)

      Description copied from interface: `Changes`
      Signal that a node was not sequenced successfully.
      Specified by:
        `nodeSequencingFailure` in interface `Changes`
      Parameters:
        `sequencedNodeKey` - the key of the node that was used as input and sequenced; may not be null
        `sequencedNodePath` - the path of the node that was used as input and sequenced; may not be null
        `outputPath` - the string representation of the output path of the sequencing operation
        `userId` - the username of the session that generated the change that led to the (failed) sequencing operation
        `selectedPath` - the string representation of the path that led to the (failed) sequencing operation (which may or may not be the same as the sequenced node path); may not be null
        `sequencerName` - the name of the sequencer; may not be null
        `cause` - the exception that caused the failure; may not be null

    - #### propertyAdded

          public void propertyAdded(NodeKey key,
                           Path nodePath,
                           Property property)

      Description copied from interface: `Changes`
      Signal that a property was added to a node.
      Specified by:
        `propertyAdded` in interface `Changes`
      Parameters:
        `key` - the key of the node that was changed; may not be null
        `nodePath` - the path of the node that was changed
        `property` - the new property, with name and value(s); may not be null

    - #### propertyRemoved

          public void propertyRemoved(NodeKey key,
                             Path nodePath,
                             Property property)

      Description copied from interface: `Changes`
      Signal that a property was removed from a node.
      Specified by:
        `propertyRemoved` in interface `Changes`
      Parameters:
        `key` - the key of the node that was changed; may not be null
        `nodePath` - the path of the node that was changed
        `property` - the property that was removed, with name and value(s); may not be null

    - #### propertyChanged

          public void propertyChanged(NodeKey key,
                             Path nodePath,
                             Property newProperty,
                             Property oldProperty)

      Description copied from interface: `Changes`
      Signal that a property was changed on a node.
      Specified by:
        `propertyChanged` in interface `Changes`
      Parameters:
        `key` - the key of the node that was changed; may not be null
        `nodePath` - the path of the node that was changed
        `newProperty` - the new property, with name and value(s); may not be null
        `oldProperty` - the old property, with name and value(s); may not be null

    - #### binaryValueNoLongerUsed

          public void binaryValueNoLongerUsed(BinaryKey key)

      Description copied from interface: `Changes`
      Create an event that signals that the (stored) binary value with the supplied key is no longer used.
      Specified by:
        `binaryValueNoLongerUsed` in interface `Changes`
      Parameters:
        `key` - the key for the now-unused binary value; may not be null

    - #### size

          public int size()

      Description copied from interface: `ChangeSet`
      Return the number of individual changes.
      Specified by:
        `size` in interface `ChangeSet`
      Returns:
        the number of changes

    - #### isEmpty

          public boolean isEmpty()

      Specified by:
        `isEmpty` in interface `ChangeSet`

    - #### iterator

          public Iterator<Change> iterator()

      Returns an iterator over the elements in this queue in proper sequence. The returned iterator is a "weakly consistent" iterator that will never throw `ConcurrentModificationException`, and guarantees to traverse elements as they existed upon construction of the iterator, and may (but is not guaranteed to) reflect any modifications subsequent to construction.
      Specified by:
        `iterator` in interface `Iterable<Change>`
      Returns:
        an iterator over the elements in this queue in proper sequence; never null
      See Also:
        `Iterable.iterator()`

    - #### changedNodes

          public Set<NodeKey> changedNodes()

      Specified by:
        `changedNodes` in interface `ChangeSet`

    - #### setChangedNodes

          public void setChangedNodes(Set<NodeKey> keys)

    - #### freeze

          public void freeze(String userId,
                    Map<String,String> userData,
                    DateTime timestamp)

    - #### getProcessKey

          public String getProcessKey()

      Description copied from interface: `ChangeSet`
      Get the key of the process in which the changes were made.
      Specified by:
        `getProcessKey` in interface `ChangeSet`
      Returns:
        the process key; never null

    - #### getRepositoryKey

          public String getRepositoryKey()

      Description copied from interface: `ChangeSet`
      Get the key of the repository in which the changes were made.
      Specified by:
        `getRepositoryKey` in interface `ChangeSet`
      Returns:
        the repository key; never null

    - #### getWorkspaceName

          public String getWorkspaceName()

      Description copied from interface: `ChangeSet`
      Get the name of the workspace in which the changes were made.
      Specified by:
        `getWorkspaceName` in interface `ChangeSet`
      Returns:
        the workspace name; may be null only when workspaces are added or removed

    - #### getTimestamp

          public DateTime getTimestamp()

      Specified by:
        `getTimestamp` in interface `ChangeSet`

    - #### getUserData

          public Map<String,String> getUserData()

      Specified by:
        `getUserData` in interface `ChangeSet`

    - #### getUserId

          public String getUserId()

      Specified by:
        `getUserId` in interface `ChangeSet`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.