deep-web-solutions/wordpress-framework-foundations

View on GitHub
src/includes/Hierarchy/ChildTrait.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace DeepWebSolutions\Framework\Foundations\Hierarchy;

\defined( 'ABSPATH' ) || exit;

/**
 * Basic implementation of the child interface.
 *
 * @since   1.0.0
 * @version 1.4.4
 * @author  Antonius Hegyes <a.hegyes@deep-web-solutions.com>
 * @package DeepWebSolutions\WP-Framework\Foundations\Hierarchy
 */
trait ChildTrait {
    // region FIELDS AND CONSTANTS

    /**
     * The parent of the using instance, if it exists.
     *
     * @since   1.0.0
     * @version 1.0.0
     *
     * @access  protected
     * @var     ParentInterface|null
     */
    protected ?ParentInterface $parent = null;

    // endregion

    // region GETTERS

    /**
     * Returns whether the using instance has a parent or not.
     *
     * @since   1.0.0
     * @version 1.4.4
     *
     * @return  bool
     */
    public function has_parent(): bool {
        return null !== $this->get_parent();
    }

    /**
     * Returns the parent of the using instance.
     *
     * @since   1.0.0
     * @version 1.0.0
     *
     * @return  ParentInterface|null
     */
    public function get_parent(): ?ParentInterface {
        return $this->parent;
    }

    // endregion

    // region SETTERS

    /**
     * Sets the parent of the using node instance.
     *
     * @since   1.0.0
     * @version 1.0.0
     *
     * @param   ParentInterface     $parent     The parent of the using instance.
     */
    public function set_parent( ParentInterface $parent ) {
        $this->parent = $parent;
    }

    // endregion
}