Tournament Generator

ImportValidator

Validator for import data

Validates if the input data is a valid import object.

Tags
author

Tomáš Vojík vojik@wboy.cz

since
0.5

Table of Contents

STRUCTURE  = ['tournament' => ['type' => 'object', 'parameters' => ['type' => ['default' => 'general', 'type' => 'string', 'values' => ['general', TournamentGeneratorPresetSingleElimination::class, TournamentGeneratorPresetDoubleElimination::class, TournamentGeneratorPresetR2G::class]], 'name' => ['default' => '', 'type' => 'string'], 'skip' => ['default' => false, 'type' => 'bool'], 'timing' => ['default' => null, 'type' => 'object', 'parameters' => ['play' => ['default' => 0, 'type' => 'int'], 'gameWait' => ['default' => 0, 'type' => 'int'], 'categoryWait' => ['default' => 0, 'type' => 'int'], 'roundWait' => ['default' => 0, 'type' => 'int'], 'expectedTime' => ['default' => 0, 'type' => 'int']]], 'categories' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'categories'], 'rounds' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'rounds'], 'groups' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'groups'], 'teams' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'games' => ['default' => [], 'type' => 'array', 'subtype' => 'int', 'reference' => 'games']]], 'categories' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['default' => null, 'type' => 'id'], 'name' => ['default' => '', 'type' => 'string'], 'skip' => ['default' => false, 'type' => 'bool'], 'rounds' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'rounds'], 'groups' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'groups'], 'teams' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'games' => ['default' => [], 'type' => 'array', 'subtype' => 'int', 'reference' => 'games']]], 'rounds' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['default' => null, 'type' => 'id'], 'name' => ['default' => '', 'type' => 'string'], 'skip' => ['default' => false, 'type' => 'bool'], 'played' => ['default' => false, 'type' => 'bool'], 'groups' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'groups'], 'teams' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'games' => ['default' => [], 'type' => 'array', 'subtype' => 'int', 'reference' => 'games']]], 'groups' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['default' => null, 'type' => 'id'], 'name' => ['default' => '', 'type' => 'string'], 'type' => ['default' => TournamentGeneratorConstants::ROUND_ROBIN, 'type' => 'string', 'values' => TournamentGeneratorConstants::GroupTypes], 'skip' => ['default' => false, 'type' => 'bool'], 'points' => ['default' => null, 'type' => 'object', 'parameters' => ['win' => ['default' => 3, 'type' => 'int'], 'loss' => ['default' => 0, 'type' => 'int'], 'draw' => ['default' => 1, 'type' => 'int'], 'second' => ['default' => 2, 'type' => 'int'], 'third' => ['default' => 3, 'type' => 'int'], 'progression' => ['default' => 50, 'type' => 'int']]], 'played' => ['default' => false, 'type' => 'bool'], 'inGame' => ['default' => 2, 'type' => 'int', 'values' => [2, 3, 4]], 'maxSize' => ['default' => 4, 'type' => 'int'], 'teams' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'games' => ['default' => [], 'type' => 'array', 'subtype' => 'int', 'reference' => 'games']]], 'progressions' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['from' => ['type' => 'id', 'reference' => 'groups'], 'to' => ['type' => 'id', 'reference' => 'groups'], 'offset' => ['type' => 'int', 'default' => 0], 'length' => ['type' => 'int', 'default' => null], 'filters' => ['type' => 'array', 'subtype' => 'object', 'default' => [], 'parameters' => ['what' => ['type' => 'string', 'default' => 'points', 'values' => ['points', 'score', 'wins', 'draws', 'losses', 'second', 'third', 'team', 'not-progressed', 'progressed']], 'how' => ['type' => 'string', 'default' => '>', 'values' => ['>', '<', '>=', '<=', '=', '!=']], 'val' => ['default' => 0], 'groups' => ['type' => 'array', 'subtype' => 'id', 'reference' => 'groups']]], 'progressed' => ['type' => 'bool', 'default' => false]]], 'teams' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['type' => 'id', 'default' => null], 'name' => ['type' => 'string', 'default' => ''], 'scores' => ['type' => 'array', 'subtype' => 'object', 'keyReference' => 'groups', 'parameters' => ['points' => ['type' => 'int', 'default' => 0], 'score' => ['type' => 'int', 'default' => 0], 'wins' => ['type' => 'int', 'default' => 0], 'draws' => ['type' => 'int', 'default' => 0], 'losses' => ['type' => 'int', 'default' => 0], 'second' => ['type' => 'int', 'default' => 0], 'third' => ['type' => 'int', 'default' => 0]]]]], 'games' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['type' => 'int', 'default' => null], 'teams' => ['type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'scores' => ['type' => 'array', 'subtype' => 'object', 'keyReference' => 'teams', 'parameters' => ['score' => ['type' => 'int'], 'points' => ['type' => 'int'], 'type' => ['type' => 'string', 'values' => ['win', 'loss', 'draw', 'second', 'third']]]]]]]
$data  : array<string|int, mixed>
isObject()  : bool
Checks if a variable is object or associative array
validate()  : bool
Validates if the data is correct
validateParams()  : void
validateReference()  : void
Check if object of id exists in export data
validateType()  : void
Check type of a variable

Constants

STRUCTURE

public array<string|int, mixed> STRUCTURE = ['tournament' => ['type' => 'object', 'parameters' => ['type' => ['default' => 'general', 'type' => 'string', 'values' => ['general', TournamentGeneratorPresetSingleElimination::class, TournamentGeneratorPresetDoubleElimination::class, TournamentGeneratorPresetR2G::class]], 'name' => ['default' => '', 'type' => 'string'], 'skip' => ['default' => false, 'type' => 'bool'], 'timing' => ['default' => null, 'type' => 'object', 'parameters' => ['play' => ['default' => 0, 'type' => 'int'], 'gameWait' => ['default' => 0, 'type' => 'int'], 'categoryWait' => ['default' => 0, 'type' => 'int'], 'roundWait' => ['default' => 0, 'type' => 'int'], 'expectedTime' => ['default' => 0, 'type' => 'int']]], 'categories' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'categories'], 'rounds' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'rounds'], 'groups' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'groups'], 'teams' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'games' => ['default' => [], 'type' => 'array', 'subtype' => 'int', 'reference' => 'games']]], 'categories' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['default' => null, 'type' => 'id'], 'name' => ['default' => '', 'type' => 'string'], 'skip' => ['default' => false, 'type' => 'bool'], 'rounds' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'rounds'], 'groups' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'groups'], 'teams' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'games' => ['default' => [], 'type' => 'array', 'subtype' => 'int', 'reference' => 'games']]], 'rounds' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['default' => null, 'type' => 'id'], 'name' => ['default' => '', 'type' => 'string'], 'skip' => ['default' => false, 'type' => 'bool'], 'played' => ['default' => false, 'type' => 'bool'], 'groups' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'groups'], 'teams' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'games' => ['default' => [], 'type' => 'array', 'subtype' => 'int', 'reference' => 'games']]], 'groups' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['default' => null, 'type' => 'id'], 'name' => ['default' => '', 'type' => 'string'], 'type' => ['default' => TournamentGeneratorConstants::ROUND_ROBIN, 'type' => 'string', 'values' => TournamentGeneratorConstants::GroupTypes], 'skip' => ['default' => false, 'type' => 'bool'], 'points' => ['default' => null, 'type' => 'object', 'parameters' => ['win' => ['default' => 3, 'type' => 'int'], 'loss' => ['default' => 0, 'type' => 'int'], 'draw' => ['default' => 1, 'type' => 'int'], 'second' => ['default' => 2, 'type' => 'int'], 'third' => ['default' => 3, 'type' => 'int'], 'progression' => ['default' => 50, 'type' => 'int']]], 'played' => ['default' => false, 'type' => 'bool'], 'inGame' => ['default' => 2, 'type' => 'int', 'values' => [2, 3, 4]], 'maxSize' => ['default' => 4, 'type' => 'int'], 'teams' => ['default' => [], 'type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'games' => ['default' => [], 'type' => 'array', 'subtype' => 'int', 'reference' => 'games']]], 'progressions' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['from' => ['type' => 'id', 'reference' => 'groups'], 'to' => ['type' => 'id', 'reference' => 'groups'], 'offset' => ['type' => 'int', 'default' => 0], 'length' => ['type' => 'int', 'default' => null], 'filters' => ['type' => 'array', 'subtype' => 'object', 'default' => [], 'parameters' => ['what' => ['type' => 'string', 'default' => 'points', 'values' => ['points', 'score', 'wins', 'draws', 'losses', 'second', 'third', 'team', 'not-progressed', 'progressed']], 'how' => ['type' => 'string', 'default' => '>', 'values' => ['>', '<', '>=', '<=', '=', '!=']], 'val' => ['default' => 0], 'groups' => ['type' => 'array', 'subtype' => 'id', 'reference' => 'groups']]], 'progressed' => ['type' => 'bool', 'default' => false]]], 'teams' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['type' => 'id', 'default' => null], 'name' => ['type' => 'string', 'default' => ''], 'scores' => ['type' => 'array', 'subtype' => 'object', 'keyReference' => 'groups', 'parameters' => ['points' => ['type' => 'int', 'default' => 0], 'score' => ['type' => 'int', 'default' => 0], 'wins' => ['type' => 'int', 'default' => 0], 'draws' => ['type' => 'int', 'default' => 0], 'losses' => ['type' => 'int', 'default' => 0], 'second' => ['type' => 'int', 'default' => 0], 'third' => ['type' => 'int', 'default' => 0]]]]], 'games' => ['type' => 'array', 'subtype' => 'object', 'parameters' => ['id' => ['type' => 'int', 'default' => null], 'teams' => ['type' => 'array', 'subtype' => 'id', 'reference' => 'teams'], 'scores' => ['type' => 'array', 'subtype' => 'object', 'keyReference' => 'teams', 'parameters' => ['score' => ['type' => 'int'], 'points' => ['type' => 'int'], 'type' => ['type' => 'string', 'values' => ['win', 'loss', 'draw', 'second', 'third']]]]]]]

Properties

Methods

isObject()

Checks if a variable is object or associative array

public static isObject( $data) : bool
Parameters
$data :
Return values
bool

validate()

Validates if the data is correct

public static validate(array<string|int, mixed> &$data[, bool $throwOnError = false ]) : bool

Checks the data

Parameters
$data : array<string|int, mixed>

Data to check - can be modified (type casted from array to object)

$throwOnError : bool = false

If true, throw a InvalidImportDataException

Tags
throws
InvalidImportDataException
Return values
bool

validateParams()

public static validateParams( &$data, array<string|int, mixed> $keys, array<string|int, mixed> $setting) : void
Parameters
$data :
$keys : array<string|int, mixed>
$setting : array<string|int, mixed>
Tags
throws
InvalidImportDataException
Return values
void

validateReference()

Check if object of id exists in export data

public static validateReference( $id, string $key) : void
Parameters
$id :
$key : string
Tags
throws
InvalidImportDataException
Return values
void

validateType()

Check type of a variable

public static validateType( $var, array<string|int, mixed> $keys, string ...$types) : void
Parameters
$var :
$keys : array<string|int, mixed>
$types : string

Expected type

Tags
throws
InvalidImportDataException
Return values
void

Search results