Continued:
[core.git] / framework / main / classes / points / class_UserPoints.php
index 786446c60bf3bc95bfa3fa96e987eb4b8e324113..8f451ce343f531d1cabd27aaddb720150085ea30 100644 (file)
@@ -3,11 +3,14 @@
 namespace Org\Mxchange\CoreFramework\User\Points;
 
 // Import framework stuff
+use Org\Mxchange\CoreFramework\Bootstrap\FrameworkBootstrap;
 use Org\Mxchange\CoreFramework\Criteria\Storing\StoreableCriteria;
-use Org\Mxchange\CoreFramework\Factory\Database\Wrapper\DatabaseWrapperFactory;
-use Org\Mxchange\CoreFramework\Factory\ObjectFactory;
+use Org\Mxchange\CoreFramework\Factory\Database\Frontend\DatabaseFrontendFactory;
+use Org\Mxchange\CoreFramework\Factory\Object\ObjectFactory;
 use Org\Mxchange\CoreFramework\Object\BaseFrameworkSystem;
 use Org\Mxchange\CoreFramework\Registry\Registerable;
+use Org\Mxchange\CoreFramework\Traits\Manager\Account\ManageableAccountTrait;
+use Org\Mxchange\CoreFramework\Traits\Result\Search\SearchableResultTrait;
 use Org\Mxchange\CoreFramework\User\ManageableAccount;
 
 /**
@@ -15,7 +18,7 @@ use Org\Mxchange\CoreFramework\User\ManageableAccount;
  *
  * @author             Roland Haeder <webmaster@shipsimu.org>
  * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2023 Core Developer Team
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.shipsimu.org
  *
@@ -33,6 +36,10 @@ use Org\Mxchange\CoreFramework\User\ManageableAccount;
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePoints {
+       // Load traits
+       use ManageableAccountTrait;
+       use SearchableResultTrait;
+
        /**
         * Amount of points
         */
@@ -43,7 +50,7 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
         *
         * @return      void
         */
-       protected function __construct () {
+       private function __construct () {
                // Call parent constructor
                parent::__construct(__CLASS__);
        }
@@ -65,14 +72,14 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
                $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class');
 
                // Add search criteria
-               $searchInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $userInstance->getUserId());
+               $searchInstance->addCriteria(UserPointsDatabaseFrontend::DB_COLUMN_POINTS_UID, $userInstance->getUserId());
                $searchInstance->setLimit(1);
 
-               // Get a wrapper instance
-               $wrapperInstance = DatabaseWrapperFactory::createWrapperByConfiguredName('user_points_db_wrapper_class');
+               // Get a frontend instance
+               $frontendInstance = DatabaseFrontendFactory::createFrontendByConfiguredName('user_points_db_frontend_class');
 
                // Get result back
-               $resultInstance = $wrapperInstance->doSelectByCriteria($searchInstance);
+               $resultInstance = $frontendInstance->doSelectByCriteria($searchInstance);
 
                // Advance to first entry by default
                $resultInstance->next();
@@ -90,7 +97,7 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
         * @param       $amount         Amount of points to store
         * @return      void
         */
-       public final function setAmount ($amount) {
+       public final function setAmount (float $amount) {
                $this->amount = (float) $amount;
        }
 
@@ -110,24 +117,24 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
         * @return      $hasRequired    Whether the user has the required points
         * @todo        Finish loading part of points
         */
-       public function ifUserHasRequiredPoints ($action) {
+       public function ifUserHasRequiredPoints (string $action) {
                // Default is that everyone is poor... ;-)
                $hasRequired = false;
 
                // Get the required points entry
-               $requiredPoints = $this->getConfigInstance()->getConfigEntry($action . '_action_points');
+               $requiredPoints = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry($action . '_action_points');
 
                // Rewind always
                $this->getResultInstance()->rewind();
 
                // Do we have an entry?
-               if ($this->getResultInstance()->next()) {
+               if ($this->getResultInstance()->valid()) {
                        // Get the entry
                        $currEntry = $this->getResultInstance()->current();
 
                        // Has he enought points?
                        $hasRequired = ($currEntry['points'] >= $requiredPoints);
-               } // END - if
+               }
 
                // Return the result
                return $hasRequired;
@@ -139,29 +146,29 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
         * @param       $amount         Amount of points we shall book
         * @return      void
         */
-       public function bookPointsDirectly ($amount) {
+       public function bookPointsDirectly (float $amount) {
                // Rewind always
                $this->getResultInstance()->rewind();
 
                // Do we have an entry?
-               if ($this->getResultInstance()->next()) {
+               if ($this->getResultInstance()->valid()) {
                        // Get the entry
-                       $entry = $this->getResultInstance()->current();
+                       $currentEntry = $this->getResultInstance()->current();
 
                        // Add the points
-                       $amount += $entry[UserPointsDatabaseWrapper::DB_COLUMN_POINTS];
+                       $amount += $currentEntry[UserPointsDatabaseFrontend::DB_COLUMN_POINTS];
 
                        // Now get another criteria
                        $updateInstance = ObjectFactory::createObjectByConfiguredName('update_criteria_class');
 
                        // And add our both entries
-                       $updateInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS, $amount);
+                       $updateInstance->addCriteria(UserPointsDatabaseFrontend::DB_COLUMN_POINTS, $amount);
 
                        // Add the search criteria for searching for the right entry
                        $updateInstance->setSearchInstance($searchInstance);
 
-                       // Set wrapper class name
-                       $updateInstance->setWrapperConfigEntry('user_points_db_wrapper_class');
+                       // Set frontend class name
+                       $updateInstance->setFrontendConfigEntry('user_points_db_frontend_class');
 
                        // Remember the update in database result
                        $this->getResultInstance()->add2UpdateQueue($updateInstance);
@@ -170,7 +177,7 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
                        $this->setAmount($amount);
 
                        // Create the new entry
-                       $wrapperInstance->insertUserPoints($this);
+                       $frontendInstance->insertUserPoints($this);
                }
        }
 
@@ -183,10 +190,10 @@ class UserPoints extends BaseFrameworkSystem implements Registerable, BookablePo
         */
        public function addElementsToDataSet (StoreableCriteria $criteriaInstance) {
                // Add user id
-               $criteriaInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS_UID, $this->getUserInstance()->getUserId());
+               $criteriaInstance->addCriteria(UserPointsDatabaseFrontend::DB_COLUMN_POINTS_UID, $this->getUserInstance()->getUserId());
 
                // Add amount
-               $criteriaInstance->addCriteria(UserPointsDatabaseWrapper::DB_COLUMN_POINTS, $this->getAmount());
+               $criteriaInstance->addCriteria(UserPointsDatabaseFrontend::DB_COLUMN_POINTS, $this->getAmount());
        }
 
 }