Current File : /home/jvzmxxx/wiki1/vendor/data-values/validators/src/TitleValidator.php
<?php

namespace ValueValidators;

use Title;

/**
 * ValueValidator that validates a Title object.
 *
 * @since 0.1
 *
 * @licence GNU GPL v2+
 * @author Jeroen De Dauw < jeroendedauw@gmail.com >
 */
class TitleValidator extends ValueValidatorObject {

	/**
	 * @since 0.1
	 * @var boolean
	 */
	protected $hasToExist = true;

	/**
	 * @since 0.1
	 * @param boolean $hasToExist
	 */
	public function setHasToExist( $hasToExist ) {
		$this->hasToExist = $hasToExist;
	}

	/**
	 * @see ValueValidatorObject::doValidation
	 *
	 * @since 0.1
	 *
	 * @param mixed $value
	 */
	public function doValidation( $value ) {
		/**
		 * @var Title $value
		 */
		if ( !$value instanceof Title ) {
			$this->addErrorMessage( 'Not a title' );
		}
		elseif( $this->hasToExist && !$value->exists() ) {
			$this->addErrorMessage( 'Title does not exist' );
		}
	}

	/**
	 * @see ValueValidator::setOptions
	 *
	 * @since 0.1
	 *
	 * @param array $options
	 */
	public function setOptions( array $options ) {
		parent::setOptions( $options );

		if ( array_key_exists( 'hastoexist', $options ) ) {
			$this->setHasToExist( $options['hastoexist'] );
		}
	}

}