--- /dev/null
+<?php
+/**
+ * An abstract database access class for handling database I/O requests
+ *
+ * @see DatabaseFrontendInterface An interface for database frontends
+ * (front-end to the application)
+ */
+abstract class BaseDatabaseFrontend extends BaseFrameworkSystem implements DatabaseFrontendInterface, LimitableObject {
+ /**
+ * The limiter instance
+ */
+ private $limitInstance = null;
+
+ /**
+ * Private constructor
+ *
+ * @return void
+ */
+ private function __construct($class) {
+ // Call parent constructor
+ parent::constructor($class);
+
+ // Debug message
+ if (((defined('DEBUG_DATABASE')) || (defined('DEBUG_ALL'))) && (defined('DEBUG_CONSTRUCT'))) $this->getDebugInstance()->output(sprintf("[%s:] Konstruktor erreicht.<br />\n",
+ $this->__toString()
+ ));
+
+ // Clean up a little
+ $this->removeNumberFormaters();
+ }
+
+ /**
+ * The public constructor
+ *
+ * @return void
+ */
+ public function constructor ($class) {
+ // Calls just the private one
+ $this->__construct($class);
+ }
+
+ /**
+ * Getter for limitation instance
+ *
+ * @return $limitInstance The instance to the object ObjectLimits
+ */
+ public final function getLimitInstance () {
+ if ((defined('DEBUG_DATABASE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:] Limitierungsinstanz <strong>%s</strong> angefordert.<br />\n",
+ $this->__toString(),
+ $this->limitInstance->__toString()
+ ));
+ return $this->limitInstance;
+ }
+
+ /**
+ * Setup limitation for the saving process
+ *
+ * @param $limitInstance An instance of ObjectLimits which contains
+ * elements we shall exclusivly include in
+ * saving process
+ * @return void
+ */
+ public final function limitObject (ObjectLimits $limitInstance) {
+ // Debug message
+ if ((defined('DEBUG_DATABASE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:] Limitierungsinstanz <strong>%s</strong> soll verwendet werden.<br />\n",
+ $this->__toString(),
+ $limitInstance->__toString()
+ ));
+
+ // Get limitArray for validation
+ $array = $limitInstance->getLimitArray();
+
+ // Sanity-check if some limitations are in the object
+ if ($array->count() > 0) {
+ // Okay, there is enougth
+ $this->limitInstance = $limitInstance;
+
+ // Debug message
+ if ((defined('DEBUG_DATABASE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:] Limitierungsinstanz <strong>%s</strong> wird verwendet und beinhaltet <strong>%s</strong> Einträge.<br />\n",
+ $this->__toString(),
+ $limitInstance->__toString(),
+ $array->count()
+ ));
+ }
+ }
+}
+
+// [EOF]
+?>