mirror of
https://github.com/halaxa/json-machine.git
synced 2025-01-17 21:18:23 +01:00
3 separate decoding result objects
This commit is contained in:
parent
8cdfe92ae7
commit
9e27e03f4d
@ -6,9 +6,18 @@ namespace JsonMachine\JsonDecoder;
|
|||||||
|
|
||||||
interface ChunkDecoder
|
interface ChunkDecoder
|
||||||
{
|
{
|
||||||
public function decodeInternalKey($jsonScalarKey): ChunkDecodingStringResult;
|
/**
|
||||||
|
* @return InvalidResult|ValidStringResult
|
||||||
|
*/
|
||||||
|
public function decodeInternalKey($jsonScalarKey);
|
||||||
|
|
||||||
public function decodeKey($jsonScalarKey): ChunkDecodingResult;
|
/**
|
||||||
|
* @return InvalidResult|ValidResult
|
||||||
|
*/
|
||||||
|
public function decodeKey($jsonScalarKey);
|
||||||
|
|
||||||
public function decodeValue($jsonValue): ChunkDecodingResult;
|
/**
|
||||||
|
* @return InvalidResult|ValidResult
|
||||||
|
*/
|
||||||
|
public function decodeValue($jsonValue);
|
||||||
}
|
}
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace JsonMachine\JsonDecoder;
|
|
||||||
|
|
||||||
class ChunkDecodingResult
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var bool
|
|
||||||
*/
|
|
||||||
private $isOk;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var mixed
|
|
||||||
*/
|
|
||||||
private $value;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string|null
|
|
||||||
*/
|
|
||||||
private $errorMessage;
|
|
||||||
|
|
||||||
public function __construct(bool $isOk, $value, string $errorMessage = null)
|
|
||||||
{
|
|
||||||
$this->isOk = $isOk;
|
|
||||||
$this->value = $value;
|
|
||||||
$this->errorMessage = $errorMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function isOk(): bool
|
|
||||||
{
|
|
||||||
return $this->isOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function getValue()
|
|
||||||
{
|
|
||||||
return $this->value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string|null
|
|
||||||
*/
|
|
||||||
public function getErrorMessage()
|
|
||||||
{
|
|
||||||
return $this->errorMessage;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,46 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace JsonMachine\JsonDecoder;
|
|
||||||
|
|
||||||
class ChunkDecodingStringResult
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var bool
|
|
||||||
*/
|
|
||||||
private $isOk;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $value;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string|null
|
|
||||||
*/
|
|
||||||
private $errorMessage;
|
|
||||||
|
|
||||||
public function __construct(bool $isOk, string $value, string $errorMessage = null)
|
|
||||||
{
|
|
||||||
$this->isOk = $isOk;
|
|
||||||
$this->value = $value;
|
|
||||||
$this->errorMessage = $errorMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function isOk(): bool
|
|
||||||
{
|
|
||||||
return $this->isOk;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getValue(): string
|
|
||||||
{
|
|
||||||
return $this->value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string|null
|
|
||||||
*/
|
|
||||||
public function getErrorMessage()
|
|
||||||
{
|
|
||||||
return $this->errorMessage;
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,9 +3,11 @@
|
|||||||
namespace JsonMachine\JsonDecoder;
|
namespace JsonMachine\JsonDecoder;
|
||||||
|
|
||||||
@trigger_error(sprintf(
|
@trigger_error(sprintf(
|
||||||
'Class %s is deprecated. Use %s instead.',
|
'Class %s is deprecated. Use one of %s, %s or %s instead.',
|
||||||
DecodingResult::class,
|
DecodingResult::class,
|
||||||
ChunkDecodingResult::class
|
ValidResult::class,
|
||||||
|
ValidStringResult::class,
|
||||||
|
InvalidResult::class
|
||||||
), E_USER_DEPRECATED);
|
), E_USER_DEPRECATED);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,6 +33,7 @@ class DecodingResult
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @deprecated
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function isOk()
|
public function isOk()
|
||||||
@ -39,6 +42,7 @@ class DecodingResult
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @deprecated
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function getValue()
|
public function getValue()
|
||||||
@ -47,6 +51,7 @@ class DecodingResult
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* @deprecated
|
||||||
* @return string|null
|
* @return string|null
|
||||||
*/
|
*/
|
||||||
public function getErrorMessage()
|
public function getErrorMessage()
|
||||||
|
26
src/JsonDecoder/InvalidResult.php
Normal file
26
src/JsonDecoder/InvalidResult.php
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace JsonMachine\JsonDecoder;
|
||||||
|
|
||||||
|
class InvalidResult
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $errorMessage;
|
||||||
|
|
||||||
|
public function __construct(string $errorMessage)
|
||||||
|
{
|
||||||
|
$this->errorMessage = $errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getErrorMessage(): string
|
||||||
|
{
|
||||||
|
return $this->errorMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isOk(): bool
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
29
src/JsonDecoder/ValidResult.php
Normal file
29
src/JsonDecoder/ValidResult.php
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace JsonMachine\JsonDecoder;
|
||||||
|
|
||||||
|
class ValidResult
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var mixed
|
||||||
|
*/
|
||||||
|
private $value;
|
||||||
|
|
||||||
|
public function __construct($value)
|
||||||
|
{
|
||||||
|
$this->value = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function getValue()
|
||||||
|
{
|
||||||
|
return $this->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isOk(): bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
26
src/JsonDecoder/ValidStringResult.php
Normal file
26
src/JsonDecoder/ValidStringResult.php
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace JsonMachine\JsonDecoder;
|
||||||
|
|
||||||
|
class ValidStringResult
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var mixed
|
||||||
|
*/
|
||||||
|
private $value;
|
||||||
|
|
||||||
|
public function __construct(string $value)
|
||||||
|
{
|
||||||
|
$this->value = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getValue(): string
|
||||||
|
{
|
||||||
|
return $this->value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isOk(): bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -155,7 +155,7 @@ class Parser implements \IteratorAggregate, PositionAware
|
|||||||
$key = $token;
|
$key = $token;
|
||||||
if ($this->jsonDecoder instanceof ChunkDecoder) {
|
if ($this->jsonDecoder instanceof ChunkDecoder) {
|
||||||
$keyResult = $this->jsonDecoder->decodeInternalKey($token);
|
$keyResult = $this->jsonDecoder->decodeInternalKey($token);
|
||||||
} else {
|
} elseif ($this->jsonDecoder instanceof Decoder) {
|
||||||
$keyResult = $this->jsonDecoder->decodeKey($token);
|
$keyResult = $this->jsonDecoder->decodeKey($token);
|
||||||
}
|
}
|
||||||
if (! $keyResult->isOk()) {
|
if (! $keyResult->isOk()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user