]> git.mxchange.org Git - core.git/commitdiff
Continued:
authorRoland Häder <roland@mxchange.org>
Sun, 20 Dec 2020 11:43:56 +0000 (12:43 +0100)
committerRoland Häder <roland@mxchange.org>
Sun, 20 Dec 2020 11:43:56 +0000 (12:43 +0100)
- fixed BaseFileIndex' constructor, thanks to the private access, I found my
  mistake here, needs to be protected access and with $className parameter
  (string, of course)
- also include list group only when valid

Signed-off-by: Roland Häder <roland@mxchange.org>
framework/main/classes/index/file/class_BaseFileIndex.php
framework/main/classes/lists/class_BaseList.php
framework/main/interfaces/lists/class_Listable.php

index c51059129edb176577e6df769cd41ab0e90a0c18..84cd783432233fd3faa532ed16f23e06ac0f602f 100644 (file)
@@ -46,11 +46,12 @@ abstract class BaseFileIndex extends BaseIndex implements FileIndexer {
        /**
         * Protected constructor
         *
+        * @param       $className      Name of class
         * @return      void
         */
-       private function __construct () {
+       protected function __construct (string $className) {
                // Call parent constructor
-               parent::__construct(__CLASS__);
+               parent::__construct($className);
        }
 
        /**
index 6ec8ac4e19ad0299d0adaa747ede31dd35dacaf1..404c3ae30f1bd399894dd055328ea0a448137a5f 100644 (file)
@@ -10,6 +10,7 @@ use Org\Mxchange\CoreFramework\Traits\Iterator\IteratorTrait;
 use Org\Mxchange\CoreFramework\Visitor\Visitable;
 
 // Import SPL stuff
+use \BadMethodCallException;
 use \InvalidArgumentException;
 use \IteratorAggregate;
 use \Countable;
@@ -101,7 +102,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
         */
        public function isGroupSet (string $groupName) {
                // Validate parameter
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-LIST: groupName=' . $groupName);
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('BASE-LIST: groupName=%s - CALLED!', $groupName));
                if (empty($groupName)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "groupName" is empty');
@@ -112,21 +113,21 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
        }
 
        /**
-        * Adds the given group or if already added issues a ListGroupAlreadyAddedException
+        * Adds the given group or if already added issues a BadMethodCallException
         *
         * @param       $groupName      Group to add
         * @return      void
-        * @throws      ListGroupAlreadyAddedException  If the given group is already added
+        * @throws      BadMethodCallException  If the given group is already added
         */
        public function addGroup (string $groupName) {
                // Validate parameter
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-LIST: groupName=' . $groupName . ' - CALLED!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('BASE-LIST: groupName=%s - CALLED!', $groupName));
                if (empty($groupName)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "groupName" is empty');
                } elseif ($this->isGroupSet($groupName)) {
                        // Throw the exception here
-                       throw new ListGroupAlreadyAddedException(array($this, $groupName), self::EXCEPTION_GROUP_ALREADY_ADDED);
+                       throw new BadMethodCallException(sprintf('groupName=%s is already set', $groupName), self::EXCEPTION_GROUP_ALREADY_ADDED);
                }
 
                // Add the group which is a simple array
@@ -141,7 +142,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
         * @param       $subGroup                       Sub group to add instance to
         * @param       $visitableInstance      An instance of Visitable
         * @return      void
-        * @throws      NoListGroupException    If the given group is not found
+        * @throws      BadMethodCallException  If the given group is not found
         */
        public function addInstance (string $groupName, string $subGroup, Visitable $visitableInstance) {
                // Validate parameter
@@ -154,7 +155,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
                        throw new InvalidArgumentException('Parameter "subGroup" is empty');
                } elseif (!$this->isGroupSet($groupName)) {
                        // Throw the exception here
-                       throw new NoListGroupException(array($this, $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
+                       throw new BadMethodCallException(sprintf('groupName=%s is not a valid group', $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
                }
 
                // Is the sub group there?
@@ -166,10 +167,8 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
                // Generate the hash
                $hash = $this->generateHash($groupName, $subGroup, $visitableInstance);
 
-               // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-LIST: this->listGroups[' . $groupName . ']=' . $this->listGroups[$groupName]->__toString());
-
                // Add the hash to the index
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-LIST: this->listGroups[' . $groupName . ']=' . $this->listGroups[$groupName]->__toString());
                array_push($this->listIndex, $hash);
 
                // Add the instance itself to the list
@@ -184,7 +183,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
         *
         * @param       $groupName      The requested list
         * @return      $array  The requested array
-        * @throws      NoListGroupException    If the given group is not found
+        * @throws      BadMethodCallException  If the given group is not found
         */
        public final function getArrayFromList (string $groupName) {
                // Is the group there?
@@ -194,16 +193,17 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
                        throw new InvalidArgumentException('Parameter "groupName" is empty');
                } elseif (!$this->isGroupSet($groupName)) {
                        // Throw the exception here
-                       throw new NoListGroupException(array($this, $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
+                       throw new BadMethodCallException(sprintf('groupName=%s is not a valid group', $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
                }
 
                // Init array
                $array = [];
 
                // Is there another list?
-               if (!is_null($groupName)) {
+               if ($this->listGroups[$groupName]->isGroupSet($groupName)) {
                        // Then get it as well
-                       $array = $this->listGroups[$groupName]->getArrayFromList('__');
+                       //* DEBUG-DIE: */ die(sprintf('[%s:%d]: groupName=%s,this=%s', __METHOD__, __LINE__, $groupName, print_r($this, TRUE)));
+                       $array = $this->listGroups[$groupName]->getArrayFromList($groupName);
                }
 
                // Walk through all entries
@@ -228,7 +228,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
         * @param       $groupName      Group to add instance to
         * @param       $entry          An entry of any type
         * @return      void
-        * @throws      NoListGroupException    If the given group is not found
+        * @throws      BadMethodCallException  If the given group is not found
         */
        public function addEntry (string $groupName, $entry) {
                // Is the group already added?
@@ -238,7 +238,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
                        throw new InvalidArgumentException('Parameter "groupName" is empty');
                } elseif (!$this->isGroupSet($groupName)) {
                        // Throw the exception here
-                       throw new NoListGroupException(array($this, $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
+                       throw new BadMethodCallException(sprintf('groupName=%s is not a valid group', $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
                }
 
                // Generate hash
@@ -266,7 +266,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
         * @param       $groupName      Group where we should remove the entry from
         * @param       $entry          The entry we should remove
         * @return      void
-        * @throws      NoListGroupException    If the given group is not found
+        * @throws      BadMethodCallException  If the given group is not found
         */
        public function removeEntry (string $groupName, $entry) {
                // Is the group already added?
@@ -276,7 +276,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
                        throw new InvalidArgumentException('Parameter "groupName" is empty');
                } elseif (!$this->isGroupSet($groupName)) {
                        // Throw the exception here
-                       throw new NoListGroupException(array($this, $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
+                       throw new BadMethodCallException(sprintf('groupName=%s is not a valid group', $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
                }
 
                // Generate hash
@@ -305,6 +305,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
         */
        private function generateHash (string $groupName, string $subGroup, $entry) {
                // Created entry, 'null' is default
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-LIST: groupName=' . $groupName  . ',subGroup=' . $subGroup . ',entry[]=' . gettype($entry) . ' - CALLED!');
                $entry2 = 'null';
 
                // Determine type of entry
@@ -334,12 +335,13 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
                }
 
                // Construct string which we shall hash
-               $hashString = $groupName . ':' . $subGroup . ':' . $entry2;
+               $hashString = sprintf('%s:%s:%s', $groupName, $subGroup, $entry2);
 
                // Hash it with fastest hasher
                $hash = crc32($hashString);
 
                // And return it
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('BASE-LIST: hash=%s - EXIT!', $hash));
                return $hash;
        }
 
@@ -370,7 +372,7 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
                        throw new InvalidArgumentException('Parameter "groupName" is empty');
                } elseif (!$this->isGroupSet($groupName)) {
                        // Throw the exception here
-                       throw new NoListGroupException(array($this, $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
+                       throw new BadMethodCallException(sprintf('groupName=%s is not a valid group', $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
                }
 
                // Then clear this group list
@@ -453,16 +455,17 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
         *
         * @param       $groupName      The group name to get a list for
         * @return      $entries        The array with all entries
-        * @throws      NoListGroupException    If the specified group is invalid
+        * @throws      BadMethodCallException  If the specified group is invalid
         */
        public function getArrayFromProtocolInstance (string $groupName) {
                // Is the group valid?
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('BASE-LIST: groupName=%s - CALLED!', $groupName));
                if (empty($groupName)) {
                        // Throw IAE
                        throw new InvalidArgumentException('Parameter "groupName" is empty');
                } elseif (!$this->isGroupSet($groupName)) {
                        // Throw the exception here
-                       throw new NoListGroupException(array($this, $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
+                       throw new BadMethodCallException(sprintf('groupName=%s is not a valid group', $groupName), self::EXCEPTION_GROUP_NOT_FOUND);
                }
 
                // Init the entries' array
@@ -482,10 +485,8 @@ abstract class BaseList extends BaseFrameworkSystem implements IteratorAggregate
                        // ... and the final entry which is the stored instance
                        $entry = $this->getEntry($entryIndex);
 
-                       // Debug message
-                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('LIST: Adding entry ' . $entry . ' ...');
-
                        // Add it to the list
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BASE-LIST: Adding entry ' . $entry . ' ...');
                        $entries[$iteratorInstance->current()] = $entry;
 
                        // Skip to next one
index 639686bf9101688ce82b0887d17e080b8e4d754e..21602931f847716c17f27b1f91071ecb07556f90 100644 (file)
@@ -41,11 +41,11 @@ interface Listable extends FrameworkInterface, IteratorAggregate {
        function isGroupSet (string $groupName);
 
        /**
-        * Adds the given group or if already added issues a ListGroupAlreadyAddedException
+        * Adds the given group or if already added issues a BadMethodCallException
         *
         * @param       $groupName      Group to add
         * @return      void
-        * @throws      ListGroupAlreadyAddedException  If the given group is already added
+        * @throws      BadMethodCallException  If the given group is already added
         */
        function addGroup (string $groupName);
 
@@ -56,7 +56,7 @@ interface Listable extends FrameworkInterface, IteratorAggregate {
         * @param       $subGroup                       Sub group to add instance to
         * @param       $visitableInstance      An instance of Visitable
         * @return      void
-        * @throws      NoListGroupException    If the given group is not found
+        * @throws      BadMethodCallException  If the given group is not found
         */
        function addInstance (string $groupName, string $subGroup, Visitable $visitableInstance);
 
@@ -66,7 +66,7 @@ interface Listable extends FrameworkInterface, IteratorAggregate {
         * @param       $groupName      Group to add instance to
         * @param       $entry          An entry of any type
         * @return      void
-        * @throws      NoListGroupException    If the given group is not found
+        * @throws      BadMethodCallException  If the given group is not found
         */
        function addEntry (string $groupName, $entry);