private function isX()
    {
        $arguments = func_get_args();
        $x = $arguments[0];
        
        if (count($arguments) < 2) {
            return false;
        }

        if (empty($this->$x->name)) {
            return false;
        }
    
        if ($this->$x->name != $arguments[1]) {
            return false;
        }
    
        if (count($arguments) >= 4) {
            if (empty($this->$x->version)) {
                return false;
            }

            if (!$this->$x->version->is($arguments[2], $arguments[3])) {
                return false;
            }
        }

        return true;
    }