<?php



namespace PhpOffice\PhpSpreadsheet\RichText;



class TextElement implements ITextElement

{

    /**

     * Text.

     *

     * @var string

     */

    private $text;



    /**

     * Create a new TextElement instance.

     *

     * @param string $pText Text

     */

    public function __construct($pText = '')

    {

        // Initialise variables

        $this->text = $pText;

    }



    /**

     * Get text.

     *

     * @return string Text

     */

    public function getText()

    {

        return $this->text;

    }



    /**

     * Set text.

     *

     * @param $text string Text

     *

     * @return ITextElement

     */

    public function setText($text)

    {

        $this->text = $text;



        return $this;

    }



    /**

     * Get font.

     *

     * @return \PhpOffice\PhpSpreadsheet\Style\Font

     */

    public function getFont()

    {

        return null;

    }



    /**

     * Get hash code.

     *

     * @return string Hash code

     */

    public function getHashCode()

    {

        return md5(

            $this->text .

            __CLASS__

        );

    }



    /**

     * Implement PHP __clone to create a deep clone, not just a shallow copy.

     */

    public function __clone()

    {

        $vars = get_object_vars($this);

        foreach ($vars as $key => $value) {

            if (is_object($value)) {

                $this->$key = clone $value;

            } else {

                $this->$key = $value;

            }

        }

    }

}

