diff --git a/includes/tuque_wrapper.inc b/includes/tuque_wrapper.inc index ef2a2991..e7ee75c2 100644 --- a/includes/tuque_wrapper.inc +++ b/includes/tuque_wrapper.inc @@ -125,6 +125,45 @@ class IslandoraFedoraRepository extends FedoraRepository { throw $e; } } + + /** + * Constructs a Fedora Object. + * + * @see FedoraRepository::constructObject + */ + public function constructObject($id = NULL, $create_uuid = NULL) { + // Enforces UUID when set, but allows to override if called + // with $create_uuid set to bool. + return parent::constructObject($id, static::useUUIDs($create_uuid)); + } + + /** + * Get the next PID(s) from Repo. + * + * @see FedoraRepository::getNextIdentifier() + */ + public function getNextIdentifier($namespace = NULL, $create_uuid = NULL, $count = 1) { + // Enforces UUID when set, but allows to override if called + // with $create_uuid set to bool. + return parent::getNextIdentifier($namespace, static::useUUIDs($create_uuid), $count); + } + + /** + * Helper for three-valued logic with UUIDs. + * + * @param bool|NULL $to_create + * The variable to test. + * + * @return bool + * If $to_create is NULL, the value of the + * 'islandora_basic_collection_generate_uuid' Drupal variable; otherwise, + * the value of $to_create itself. + */ + protected static function useUUIDs($to_create) { + return is_null($to_create) ? + variable_get('islandora_basic_collection_generate_uuid', FALSE) : + $to_create; + } } class IslandoraRepositoryQuery extends RepositoryQuery {}