Merge branch 'task/multiple-arbiters' into develop

This commit is contained in:
Jeroen De Meerleer 2019-09-26 14:59:04 +02:00
commit 3282e18058
Signed by: JeroenED
GPG Key ID: 28CCCB8F62BFADD6
6 changed files with 53 additions and 13 deletions

View File

@ -2,7 +2,9 @@
## v1.2 (Release: aa-bbb-cccc) ## v1.2 (Release: aa-bbb-cccc)
* NEW READER: `swar-4` for reading out files created with Swar version 4. * 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 * 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 * BUGFIX: `Player:GetId` returns elo instead of id
## v1.1.2 (Release: 21-jun-2019) ## v1.1.2 (Release: 21-jun-2019)

View File

@ -27,7 +27,8 @@ echo "Name: " . $reader->getTournament()->getName() . PHP_EOL;
echo "Organiser: " . $reader->getTournament()->getOrganiser(). PHP_EOL; echo "Organiser: " . $reader->getTournament()->getOrganiser(). PHP_EOL;
echo "Tempo: " . $reader->getTournament()->getTempo() . PHP_EOL; echo "Tempo: " . $reader->getTournament()->getTempo() . PHP_EOL;
echo "Country: " . $reader->getTournament()->getOrganiserCountry() . 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 "Rounds: " . $reader->getTournament()->getNoOfRounds() . PHP_EOL;
echo "Participants: " . $reader->getTournament()->getParticipants() . PHP_EOL; echo "Participants: " . $reader->getTournament()->getParticipants() . PHP_EOL;
echo "Fidehomol: " . $reader->getTournament()->getFideHomol() . PHP_EOL; echo "Fidehomol: " . $reader->getTournament()->getFideHomol() . PHP_EOL;

View File

@ -571,7 +571,7 @@ class Pairtwo6 implements ReaderInterface
// Arbiters // Arbiters
$length = 128; $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; $offset += $length;
// Rounds // Rounds

View File

@ -128,9 +128,8 @@ class Swar4 implements ReaderInterface
$this->getTournament()->setOrganiserClub($this->readData('String', $swshandle)); $this->getTournament()->setOrganiserClub($this->readData('String', $swshandle));
$this->getTournament()->setOrganiserPlace($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), 0);
$this->getTournament()->setArbiter($this->readData('String', $swshandle)); $this->getTournament()->setArbiter($this->readData('String', $swshandle), 1);
$this->getTournament()->setBinaryData('Arbiter2', $this->readData('String', $swshandle));
$this->getTournament()->setStartDate($this->readData('Date', $swshandle)); $this->getTournament()->setStartDate($this->readData('Date', $swshandle));
$this->getTournament()->setEndDate($this->readData('Date', $swshandle)); $this->getTournament()->setEndDate($this->readData('Date', $swshandle));

View File

@ -57,8 +57,8 @@ class Tournament
/** @var DateTime */ /** @var DateTime */
private $EndDate; private $EndDate;
/** @var string */ /** @var string[] */
private $Arbiter; private $Arbiters;
/** @var int */ /** @var int */
private $NoOfRounds; private $NoOfRounds;
@ -198,6 +198,21 @@ class Tournament
return $this; 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 * Converts pairings into games with a black and white player
* *
@ -999,20 +1014,42 @@ class Tournament
* *
* @return string * @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 * Sets the arbiter of the tournament
* *
* @param string $Arbiter * @param string[] $Arbiter
* @return Tournament * @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; return $this;
} }

View File

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