protected function checkBuildConditions()
    {
        /**
         * If the resolver is not shared, we need to build the instance
         */
        if ($this->shared === false) {
            /**
             * The build conditions are met
             */
            return true;
        }

        /**
         * If the resolver is shared, but the instance is not yet built,
         * we need to build it
         */
        if (!is_object($this->instance) || null === $this->instance) {
            /**
             * The build conditions are met
             */
            return true;
        }

        return false;
    }