const EXCEPTION_GROUP_NOT_FOUND = 0xf21;
const EXCEPTION_INVALID_HASH = 0xf22;
+ /**
+ * Call-back instance
+ */
+ private $callbackInstance = NULL;
+
/**
* List groups array
*/
parent::__construct($className);
}
+ /**
+ * Setter for call-back instance
+ *
+ * @param $callbackInstance An instance of a FrameworkInterface class
+ * @return void
+ */
+ public final function setCallbackInstance (FrameworkInterface $callbackInstance) {
+ $this->callbackInstance = $callbackInstance;
+ }
+
/**
* Getter for iterator instance from this list
*
} elseif ((is_array($entry)) && (isset($entry['id']))) {
// Supported array found
$entry2 = crc32($entry['id']) . ':' . count($entry);
+ } elseif (($this->callbackInstance instanceof FrameworkInterface) && (is_callable(array($this->callbackInstance, 'generateListHashFromEntry')))) {
+ // Call it instead
+ $entry2 = $this->callbackInstance->generateListHashFromEntry($entry);
} else {
// Unsupported type detected
self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-LIST[' . __METHOD__ . ':' . __LINE__ . ']: Entry type ' . gettype($entry) . ' is unsupported.');