Files
portal-legacy/lib/symfony/vendor/creole/IdGenerator.php
Chris Sewell cf140a2e97 initial commit
2012-11-28 03:55:08 -05:00

58 lines
1.9 KiB
PHP
Executable File

<?php
/**
* Interface for classes that provide functionality to get SEQUENCE or AUTO-INCREMENT ids from the database.
*
* @author Hans Lellelid <hans@xmpl.org>
* @version $Revision: 1.3 $
* @package creole
*/
interface IdGenerator {
/** SEQUENCE id generator type */
const SEQUENCE = 1;
/** AUTO INCREMENT id generator type */
const AUTOINCREMENT = 2;
/**
* Convenience method that returns TRUE if id is generated
* before an INSERT statement. This is the same as checking
* whether the generator type is SEQUENCE.
* @return boolean TRUE if gen id method is SEQUENCE
* @see getIdMethod()
*/
public function isBeforeInsert();
/**
* Convenience method that returns TRUE if id is generated
* after an INSERT statement. This is the same as checking
* whether the generator type is AUTOINCREMENT.
* @return boolean TRUE if gen id method is AUTOINCREMENT
* @see getIdMethod()
*/
public function isAfterInsert();
/**
* Get the preferred type / style for generating ids for RDBMS.
* @return int SEQUENCE or AUTOINCREMENT
*/
public function getIdMethod();
/**
* Get the autoincrement or sequence id given the current connection
* and any additional needed info (e.g. sequence name for sequences).
* <p>
* Note: if you take advantage of the fact that $keyInfo may not be specified
* you should make sure that your code is setup in such a way that it will
* be portable if you change from an RDBMS that uses AUTOINCREMENT to one that
* uses SEQUENCE (i.e. in which case you would need to specify sequence name).
*
* @param mixed $keyInfo Any additional information (e.g. sequence name) needed to fetch the id.
* @return int The last id / next id.
*/
public function getId($keyInfo = null);
}