NEW FEATURE: `Tournament::getArbiters` for multiple arbiters

This commit is contained in:
Jeroen De Meerleer 2019-09-26 14:32:51 +02:00
parent fefb089018
commit 3cdb4f8e5f
Signed by: JeroenED
GPG Key ID: 28CCCB8F62BFADD6
6 changed files with 54 additions and 14 deletions

View File

@ -2,7 +2,9 @@
## v1.2 (Release: aa-bbb-cccc)
* NEW READER: `swar-4` for reading out files created with Swar version 4.
* NEW FEATURE: `Tournament::getArbiters` for multiple arbiters in 1 tournament
* ENHANCEMENT: `Class::getBinaryData` methods return null if field is non-existent
* CHANGE: `Tournament::getArbiter` accepts a `int` parameter representing the order of the arbiters
* BUGFIX: `Player:GetId` returns elo instead of id
## v1.1.2 (Release: 21-jun-2019)

View File

@ -8,7 +8,7 @@ require_once 'vendor/autoload.php';
// EDIT ME!
$pairingfile = 'your pairing-file.sws';
$fileformat = 'Pairtwo-6'; // Possible values: Pairtwo-5, Pairtwo-6
$fileformat = 'Pairtwo-6'; // Possible values: Pairtwo-5, Pairtwo-6, Swar-4
if (!file_exists($pairingfile)) {
@ -27,7 +27,8 @@ echo "Name: " . $reader->getTournament()->getName() . PHP_EOL;
echo "Organiser: " . $reader->getTournament()->getOrganiser(). PHP_EOL;
echo "Tempo: " . $reader->getTournament()->getTempo() . PHP_EOL;
echo "Country: " . $reader->getTournament()->getOrganiserCountry() . PHP_EOL;
echo "Arbiter: " . $reader->getTournament()->getArbiter() . PHP_EOL;
echo "Arbiter 1: " . $reader->getTournament()->getArbiter(0) . PHP_EOL;
echo "Arbiter 2: " . $reader->getTournament()->getArbiter(1) . PHP_EOL;
echo "Rounds: " . $reader->getTournament()->getNoOfRounds() . PHP_EOL;
echo "Participants: " . $reader->getTournament()->getParticipants() . PHP_EOL;
echo "Fidehomol: " . $reader->getTournament()->getFideHomol() . PHP_EOL;

View File

@ -571,7 +571,7 @@ class Pairtwo6 implements ReaderInterface
// Arbiters
$length = 128;
$this->getTournament()->setArbiter($this->readData('String', substr($swscontents, $offset, $length)));
$this->getTournament()->setArbiter($this->readData('String', substr($swscontents, $offset, $length)), 0);
$offset += $length;
// Rounds

View File

@ -128,9 +128,8 @@ class Swar4 implements ReaderInterface
$this->getTournament()->setOrganiserClub($this->readData('String', $swshandle));
$this->getTournament()->setOrganiserPlace($this->readData('String', $swshandle));
// @todo: Make arbiter an array to set multiple arbiters
$this->getTournament()->setArbiter($this->readData('String', $swshandle));
$this->getTournament()->setBinaryData('Arbiter2', $this->readData('String', $swshandle));
$this->getTournament()->setArbiter($this->readData('String', $swshandle), 0);
$this->getTournament()->setArbiter($this->readData('String', $swshandle), 1);
$this->getTournament()->setStartDate($this->readData('Date', $swshandle));
$this->getTournament()->setEndDate($this->readData('Date', $swshandle));

View File

@ -57,8 +57,8 @@ class Tournament
/** @var DateTime */
private $EndDate;
/** @var string */
private $Arbiter;
/** @var string[] */
private $Arbiters;
/** @var int */
private $NoOfRounds;
@ -198,6 +198,21 @@ class Tournament
return $this;
}
/**
* Adds an arbiter to the tournament
*
* @param string $Arbiter
* @return Tournament
*/
public function addArbiter(string $Arbiter): Tournament
{
$newArray = $this->getArbiters();
$newArray[] = $Arbiter;
$this->setArbiters($newArray);
return $this;
}
/**
* Converts pairings into games with a black and white player
*
@ -999,20 +1014,42 @@ class Tournament
*
* @return string
*/
public function getArbiter(): string
public function getArbiter(int $order = 0): string
{
return $this->Arbiter;
return $this->Arbiters[$order];
}
/**
* Returns the arbiters of the tournament
*
* @return string
*/
public function getArbiters(): array
{
return $this->Arbiters;
}
/**
* Sets the arbiter of the tournament
*
* @param string $Arbiter
* @param string[] $Arbiter
* @return Tournament
*/
public function setArbiter(string $Arbiter): Tournament
public function setArbiter(string $Arbiter, int $order = 0): Tournament
{
$this->Arbiter = $Arbiter;
$this->Arbiters[$order] = $Arbiter;
return $this;
}
/**
* Sets the arbiters of the tournament
*
* @param string[] $Arbiters
* @return Tournament
*/
public function setArbiters(array $Arbiters): Tournament
{
$this->Arbiters = $Arbiters;
return $this;
}

View File

@ -37,7 +37,8 @@ echo "TempoIndex: " . $sws->getTournament()->getBinaryData('TempoIndex') . PHP
echo "TempoType: " . $sws->getTournament()->getBinaryData('TournoiStd') . PHP_EOL;
echo "Tempo: " . $sws->getTournament()->getTempo() . PHP_EOL;
echo "Place: " . $sws->getTournament()->getOrganiserPlace() . PHP_EOL;
echo "Arbiter: " . $sws->getTournament()->getArbiter() . PHP_EOL;
echo "Arbiter 1: " . $sws->getTournament()->getArbiter(0) . PHP_EOL;
echo "Arbiter 2: " . $sws->getTournament()->getArbiter(1) . PHP_EOL;
echo "Rounds: " . $sws->getTournament()->getNoOfRounds() . PHP_EOL;
echo "Fidehomol: " . $sws->getTournament()->getFideHomol() . PHP_EOL;
echo "Start-Date: " . $sws->getTournament()->getStartDate()->format('d/m/Y') . PHP_EOL;