org.hibernate.engine

Class ActionQueue


public class ActionQueue
extends java.lang.Object

Responsible for maintaining the queue of actions related to events. The ActionQueue holds the DML operations queued as part of a session's transactional-write-behind semantics. DML operations are queued here until a flush forces them to be executed against the database.
Author:
Steve Ebersole

Constructor Summary

ActionQueue(SessionImplementor session)
Constructs an action queue bound to the given session.

Method Summary

void
addAction(BulkOperationCleanupAction cleanupAction)
void
addAction(CollectionRecreateAction action)
void
addAction(CollectionRemoveAction action)
void
addAction(CollectionUpdateAction action)
void
addAction(EntityDeleteAction action)
void
addAction(EntityIdentityInsertAction insert)
void
addAction(EntityInsertAction action)
void
addAction(EntityUpdateAction action)
void
afterTransactionCompletion(boolean success)
Performs cleanup of any held cache softlocks.
boolean
areInsertionsOrDeletionsQueued()
Check whether any insertion or deletion actions are currently queued.
boolean
areTablesToBeUpdated(Set tables)
Check whether the given tables/query-spaces are to be executed against given the currently queued actions.
void
clear()
void
clearFromFlushNeededCheck(int previousCollectionRemovalSize)
ArrayList
cloneDeletions()
static ActionQueue
deserialize(ObjectInputStream ois, SessionImplementor session)
Used by the owning session to explicitly control deserialization of the action queue
void
execute(Executable executable)
void
executeActions()
Perform all currently queued actions.
void
executeInserts()
Perform all currently queued entity-insertion actions.
boolean
hasAfterTransactionActions()
boolean
hasAnyQueuedActions()
int
numberOfCollectionCreations()
int
numberOfCollectionRemovals()
int
numberOfCollectionUpdates()
int
numberOfDeletions()
int
numberOfInsertions()
int
numberOfUpdates()
void
prepareActions()
Prepares the internal action queues for execution.
void
serialize(ObjectOutputStream oos)
Used by the owning session to explicitly control serialization of the action queue
void
sortActions()
void
sortCollectionActions()
String
toString()
Returns a string representation of the object.

Constructor Details

ActionQueue

public ActionQueue(SessionImplementor session)
Constructs an action queue bound to the given session.
Parameters:
session - The session "owning" this queue.

Method Details

addAction

public void addAction(BulkOperationCleanupAction cleanupAction)

addAction

public void addAction(CollectionRecreateAction action)

addAction

public void addAction(CollectionRemoveAction action)

addAction

public void addAction(CollectionUpdateAction action)

addAction

public void addAction(EntityDeleteAction action)

addAction

public void addAction(EntityIdentityInsertAction insert)

addAction

public void addAction(EntityInsertAction action)

addAction

public void addAction(EntityUpdateAction action)

afterTransactionCompletion

public void afterTransactionCompletion(boolean success)
Performs cleanup of any held cache softlocks.
Parameters:
success - Was the transaction successful.

areInsertionsOrDeletionsQueued

public boolean areInsertionsOrDeletionsQueued()
Check whether any insertion or deletion actions are currently queued.
Returns:
True if insertions or deletions are currently queued; false otherwise.

areTablesToBeUpdated

public boolean areTablesToBeUpdated(Set tables)
Check whether the given tables/query-spaces are to be executed against given the currently queued actions.
Parameters:
tables - The table/query-spaces to check.
Returns:
True if we contain pending actions against any of the given tables; false otherwise.

clear

public void clear()

clearFromFlushNeededCheck

public void clearFromFlushNeededCheck(int previousCollectionRemovalSize)

cloneDeletions

public ArrayList cloneDeletions()

deserialize

public static ActionQueue deserialize(ObjectInputStream ois,
                                      SessionImplementor session)
            throws IOException,
                   ClassNotFoundException
Used by the owning session to explicitly control deserialization of the action queue
Parameters:
ois - The stream from which to read the action queue

execute

public void execute(Executable executable)

executeActions

public void executeActions()
            throws HibernateException
Perform all currently queued actions.
Throws:
HibernateException - error executing queued actions.

executeInserts

public void executeInserts()
            throws HibernateException
Perform all currently queued entity-insertion actions.
Throws:
HibernateException - error executing queued insertion actions.

hasAfterTransactionActions

public boolean hasAfterTransactionActions()

hasAnyQueuedActions

public boolean hasAnyQueuedActions()

numberOfCollectionCreations

public int numberOfCollectionCreations()

numberOfCollectionRemovals

public int numberOfCollectionRemovals()

numberOfCollectionUpdates

public int numberOfCollectionUpdates()

numberOfDeletions

public int numberOfDeletions()

numberOfInsertions

public int numberOfInsertions()

numberOfUpdates

public int numberOfUpdates()

prepareActions

public void prepareActions()
            throws HibernateException
Prepares the internal action queues for execution.
Throws:
HibernateException - error preparing actions.

serialize

public void serialize(ObjectOutputStream oos)
            throws IOException
Used by the owning session to explicitly control serialization of the action queue
Parameters:
oos - The stream to which the action queue should get written

sortActions

public void sortActions()

sortCollectionActions

public void sortCollectionActions()

toString

public String toString()
Returns a string representation of the object.
Returns:
a string representation of the object.