public function configureByConfigString($configString)
    {
        $successsfullyConfigured = false;
        
        if (true === is_string($configString)
            && '' !== $configString
            && 3 === mb_substr_count($configString, self::FEATURE_CONFIGSTRING_SECTION_DELIMITER)
        ) {

            list($percentageString, $usersString, $rolesString, $groupsString) = explode(
                self::FEATURE_CONFIGSTRING_SECTION_DELIMITER,
                $configString
            );
            
            $this->setPercentage((integer) 0);
            if (true === is_numeric($percentageString)) {
                $this->setPercentage((integer) $percentageString);
            }

            $this->setUsers(array());
            if (true === is_string($usersString) && '' !== $usersString) {
                $userIds = explode(self::FEATURE_CONFIGSTRING_ENTRY_DELIMITER, $usersString);
                $this->setUsers($userIds);
            }

            $this->setRoles(array());
            if (true === is_string($rolesString) && '' !== $rolesString) {
                $roleNames = explode(self::FEATURE_CONFIGSTRING_ENTRY_DELIMITER, $rolesString);
                $this->setRoles($roleNames);
            }

            $this->setGroups(array());
            if (true === is_string($groupsString) && '' !== $groupsString) {
                $groupNames = explode(self::FEATURE_CONFIGSTRING_ENTRY_DELIMITER, $groupsString);
                $this->setGroups($groupNames);
            }

            $successsfullyConfigured = true;
        }
        
        return $successsfullyConfigured;
    }