private function __construct(array $data = null, $table = null, Connection $connection = null, IMapper $mapper = null)
{
$this->data = $data !== null ? $data : [self::DETACHED_ROW_ID => []];
$this->table = $table;
$this->connection = $connection;
$this->mapper = $mapper;
$this->isDetached = ($table === null or $connection === null or $mapper === null);
}