mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Math
synced 2024-11-24 23:46:39 +00:00
946a18d14c
This change implements all components to use the datatype 'Math' in Wikidata. Because 'String 'is used as value type, only the Formatter and Validator are needed to be implemended. The components are: * hooks * Formatter class * Validator class * Test cases Bug: T67397 Change-Id: Ic64fd6c8560f48052e2db24ae1f013d48a82b5e9
51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
<?php
|
|
|
|
use ValueFormatters\Exceptions\MismatchingDataValueTypeException;
|
|
use ValueValidators\Result;
|
|
use ValueValidators\ValueValidator;
|
|
use ValueValidators\Error;
|
|
use DataValues\StringValue;
|
|
|
|
// @author Duc Linh Tran, Julian Hilbig, Moritz Schubotz
|
|
|
|
class MathValidator implements ValueValidator {
|
|
|
|
/**
|
|
* Validates a value with MathInputCheckRestbase
|
|
*
|
|
* @param mixed $value The value to validate
|
|
*
|
|
* @return \ValueValidators\Result
|
|
* @throws ValueFormatters\Exceptions\MismatchingDataValueTypeException
|
|
*/
|
|
public function validate( $value ) {
|
|
if ( !( $value instanceof StringValue ) ) {
|
|
throw new MismatchingDataValueTypeException( 'StringValue', get_class( $value ) );
|
|
}
|
|
|
|
// get input String from value
|
|
$tex = $value->getValue();
|
|
|
|
$checker = new MathInputCheckRestbase( $tex );
|
|
if ( $checker->isValid() ) {
|
|
return Result::newSuccess();
|
|
}
|
|
|
|
// TeX string is not valid
|
|
return Result::newError(
|
|
array(
|
|
Error::newError( null, null, 'malformed-value', $checker->getError() )
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @see ValueValidator::setOptions()
|
|
*
|
|
* @param array $options
|
|
*/
|
|
public function setOptions( array $options ) {
|
|
// Do nothing. This method shouldn't even be in the interface.
|
|
}
|
|
}
|