org.hibernate.action.internal
Class UnresolvedEntityInsertActions

java.lang.Object
  extended by org.hibernate.action.internal.UnresolvedEntityInsertActions

public class UnresolvedEntityInsertActions
extends Object

Tracks unresolved entity insert actions. An entity insert action is unresolved if the entity to be inserted has at least one non-nullable association with an unsaved transient entity, and the foreign key points to that unsaved transient entity. These references must be resolved before an insert action can be executed.


Constructor Summary
UnresolvedEntityInsertActions()
           
 
Method Summary
 void addUnresolvedEntityInsertAction(AbstractEntityInsertAction insert, NonNullableTransientDependencies dependencies)
          Add an unresolved insert action.
 void checkNoUnresolvedActionsAfterOperation()
          Throws PropertyValueException if there are any unresolved entity insert actions that depend on non-nullable associations with a transient entity.
 void clear()
          Clear this UnresolvedEntityInsertActions.
static UnresolvedEntityInsertActions deserialize(ObjectInputStream ois, SessionImplementor session)
          Deerialize a UnresolvedEntityInsertActions object.
 Iterable<AbstractEntityInsertAction> getDependentEntityInsertActions()
          Returns the unresolved insert actions.
 boolean isEmpty()
          Returns true if there are no unresolved entity insert actions.
 Set<AbstractEntityInsertAction> resolveDependentActions(Object managedEntity, SessionImplementor session)
          Resolve any dependencies on managedEntity.
 void serialize(ObjectOutputStream oos)
          Serialize this UnresolvedEntityInsertActions object.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UnresolvedEntityInsertActions

public UnresolvedEntityInsertActions()
Method Detail

addUnresolvedEntityInsertAction

public void addUnresolvedEntityInsertAction(AbstractEntityInsertAction insert,
                                            NonNullableTransientDependencies dependencies)
Add an unresolved insert action.

Parameters:
insert - - unresolved insert action.
dependencies - - non-nullable transient dependencies (must be non-null and non-empty).
Throws:
IllegalArgumentException - if dependencies is null or empty.

getDependentEntityInsertActions

public Iterable<AbstractEntityInsertAction> getDependentEntityInsertActions()
Returns the unresolved insert actions.

Returns:
the unresolved insert actions.

checkNoUnresolvedActionsAfterOperation

public void checkNoUnresolvedActionsAfterOperation()
                                            throws PropertyValueException
Throws PropertyValueException if there are any unresolved entity insert actions that depend on non-nullable associations with a transient entity. This method should be called on completion of an operation (after all cascades are completed) that saves an entity.

Throws:
PropertyValueException - if there are any unresolved entity insert actions; PropertyValueException.getEntityName() and PropertyValueException.getPropertyName() will return the entity name and property value for the first unresolved entity insert action.

isEmpty

public boolean isEmpty()
Returns true if there are no unresolved entity insert actions.

Returns:
true, if there are no unresolved entity insert actions; false, otherwise.

resolveDependentActions

public Set<AbstractEntityInsertAction> resolveDependentActions(Object managedEntity,
                                                               SessionImplementor session)
Resolve any dependencies on managedEntity.

Parameters:
managedEntity - - the managed entity name
session - - the session
Returns:
the insert actions that depended only on the specified entity.
Throws:
IllegalArgumentException - if managedEntity did not have managed or read-only status.

clear

public void clear()
Clear this UnresolvedEntityInsertActions.


toString

public String toString()
Overrides:
toString in class Object

serialize

public void serialize(ObjectOutputStream oos)
               throws IOException
Serialize this UnresolvedEntityInsertActions object.

Parameters:
oos - - the output stream
Throws:
IOException - if there is an error writing this object to the output stream.

deserialize

public static UnresolvedEntityInsertActions deserialize(ObjectInputStream ois,
                                                        SessionImplementor session)
                                                 throws IOException,
                                                        ClassNotFoundException
Deerialize a UnresolvedEntityInsertActions object.

Parameters:
ois - - the input stream.
session - - the session.
Returns:
the deserialized UnresolvedEntityInsertActions object
Throws:
IOException - if there is an error writing this object to the output stream.
ClassNotFoundException - if there is a class that cannot be loaded.


Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.