<commit_before><?php
declare(strict_types=1);

namespace Comely\IO\Database\Schema;

use Comely;
use Comely\IO\Database\Database;
use Comely\IO\Database\Exception\SchemaException;
use Comely\IO\Database\Schema;
use Comely\IO\Database\Schema\Table\Column;
use Comely\IO\Database\Schema\Table\Constants;
use Comely\IO\Database\Schema\Table\TableBuilder;

/**
 * Class AbstractTable
 * @package Comely\IO\Database\Schema
 */
abstract class AbstractTable implements Constants
{
    private $db;
    private $dbDriver;
    private $columns;
    private $columnsKeys;
    private $constraints;
    private $tableId;
    private $tableName;
    private $tableEngine;
    private $primaryKey;

    /**
     * AbstractTable constructor.
     * @param Database $db
     * @throws SchemaException
     */
    final public function __construct(Database $db)
    {
        // Bootstrap
        $this->db   =   $db;
        $this->dbDriver =   $this->db->driver();
        $this->columns  =   [];
        $this->columnsKeys  =   [];
        $this->constraints  =   [];
        $this->primaryKey   =   null;

        // Check if necessary constants are defined
        if(!defined("static::SCHEMA_TABLE")) {
            throw SchemaException::tableInitConstant("SCHEMA_TABLE");
        } elseif(!defined("static::SCHEMA_MODEL")) {
            throw SchemaException::tableInitConstant("SCHEMA_MODEL");
        }
<commit_msg>AbstractTable: Props. visibility correction and PHPDocs<commit_after><?php
declare(strict_types=1);

namespace Comely\IO\Database\Schema;

use Comely;
use Comely\IO\Database\Database;
use Comely\IO\Database\Exception\SchemaException;
use Comely\IO\Database\Schema;
use Comely\IO\Database\Schema\Table\Column;
use Comely\IO\Database\Schema\Table\Constants;
use Comely\IO\Database\Schema\Table\TableBuilder;

/**
 * Class AbstractTable
 * @package Comely\IO\Database\Schema
 */
abstract class AbstractTable implements Constants
{
    /** @var Database */
    protected $db;
    /** @var string */
    protected $dbDriver;
    /** @var array */
    private $columns;
    /** @var array */
    private $columnsKeys;
    /** @var array */
    private $constraints;
    /** @var string */
    private $tableId;
    /** @var string */
    private $tableName;
    /** @var string */
    private $tableEngine;
    /** @var null|string */
    private $primaryKey;

    /**
     * AbstractTable constructor.
     * @param Database $db
     * @throws SchemaException
     */
    final public function __construct(Database $db)
    {
        // Bootstrap
        $this->db   =   $db;
        $this->dbDriver =   $this->db->driver();
        $this->columns  =   [];
        $this->columnsKeys  =   [];
        $this->constraints  =   [];
        $this->primaryKey   =   null;

        // Check if necessary constants are defined
        if(!defined("static::SCHEMA_TABLE")) {
            throw SchemaException::tableInitConstant("SCHEMA_TABLE");
        } elseif(!defined("static::SCHEMA_MODEL")) {
            throw SchemaException::tableInitConstant("SCHEMA_MODEL");
        }

{'fraction_non_alphanumeric': 0.13244386592905955, 'fraction_numerical': 0.0006508298080052066, 'mean_word_length': 2.7625458996328027, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3426607', 'n_tokens_mistral': 902, 'n_tokens_neox': 902, 'n_words': 181}