public function generateSubclass($methods)
    {
        if (! $this->reflection->classOrInterfaceExists()) {
            return false;
        }
        $mock_class = "";
        if (!empty($this->namespace)) {
            $mock_class .= $this->namespace . '\\';
        }
        $mock_class .= $this->mock_class;
        $mock_reflection = new SimpleReflection($mock_class);
        if ($mock_reflection->classExistsWithoutAutoload()) {
            return false;
        }
        if ($this->reflection->isInterface() || $this->reflection->hasFinal()) {
            $code = $this->createCodeForClass($methods ? $methods : array());

            return eval("$code return \$code;");
        } else {
            $code = $this->createCodeForSubclass($methods ? $methods : array());

            return eval("$code return \$code;");
        }
    }