Path

ez components / documentation / api reference / 2007.1.1 / persistentobject


eZ Components 2007.1.1

PersistentObject: ezcPersistentIdentifierGenerator

[ Tutorial ] [ Class tree ] [ Element index ] [ ChangeLog ] [ Credits ]

Class: ezcPersistentIdentifierGenerator

The interface between the class that generates unique identifiers when creating new objects and the session. [source]
Implement this interface if you want a new strategy for generating unique identifier. This interface is not intended to be exposed to the application.
Implementations should accept any parameters through a associative array in the constructor:
1.  public function __constructarray $params );
The structure of the parameters is array( 'parameter_name' => 'parameter_value' ).

Descendents

Child Class Description
ezcPersistentManualGenerator This identifier generator does not generate any ID's. Instead the user must manually assign an ID when the object is saved.
ezcPersistentSequenceGenerator Generates IDs based on the PDO::lastInsertId method.
ezcPersistentNativeGenerator Generates IDs based on the PDO::lastInsertId method.

Method Summary

public bool checkPersistence( $def, $db, $state )
Returns true if the object is persistent already.
public abstract int postSave( $def, $db )
Returns the value of the generated identifier for the new object.
public abstract void preSave( $def, $db, $q )
Called prior to executing the insert query that saves the data to the database.

Methods

checkPersistence

bool checkPersistence( ezcPersistentObjectDefinition $def, $db, $state )
Returns true if the object is persistent already.
Called in the beginning of the save and update methods.
Persistent objects that are being saved must not exist in the database already.
The default implementation checks if the id is null. This is suitable for all implementations where the id is generated by the database or by the implementation of preSave().

Parameters

Name Type Description
$def ezcPersistentObjectDefinition  
$db ezcDbHandler  
$state array(key=>value)  

Redefined in descendants as

Method Description
ezcPersistentManualGenerator::checkPersistence() Returns true if the object is persistent already.

postSave

int postSave( ezcPersistentObjectDefinition $def, $db )
Returns the value of the generated identifier for the new object.
Called right after execution of the insert query. Returns null if it was not possible to generate a new ID.

Parameters

Name Type Description
$def ezcPersistentObjectDefinition  
$db ezcDbHandler  

Redefined in descendants as

Method Description
ezcPersistentManualGenerator::postSave() Returns the value of the generated identifier for the new object.
ezcPersistentSequenceGenerator::postSave() Returns the integer value of the generated identifier for the new object.
ezcPersistentNativeGenerator::postSave() Returns the integer value of the generated identifier for the new object.

preSave

void preSave( ezcPersistentObjectDefinition $def, $db, $q )
Called prior to executing the insert query that saves the data to the database.
All the data has been set on the query prior to calling this method.

Parameters

Name Type Description
$def ezcPersistentObjectDefinition  
$db ezcDbHandler  
$q ezcQueryInsert  

Redefined in descendants as

Method Description
ezcPersistentManualGenerator::preSave() Sets the correct id on the insert query.
ezcPersistentSequenceGenerator::preSave() Fetches the next sequence value for PostgreSQL and Oracle implementations.
ezcPersistentNativeGenerator::preSave() No functionality, since database handles ID generation automatically.

Last updated: Wed, 28 Nov 2007