public function generateCommandProxy($className)
    {
        $classMeta = $this->reflectionService->getClassMetaReflection($className);
        $proxies = [];

        $cachePath = $this->getRaptorCachePath();
        $this->createDirectory($cachePath);
        $thisNode = new Variable('this');

        foreach ($classMeta->getMethods() as $methodMeta) {

            // skip if method is not a command or an inherited command
            if (!stristr($methodMeta->getName(), self::COMMAND_SUFFIX) ||
                $methodMeta->getDeclaringClass() !== $classMeta) {
                continue;
            }

            $proxies[] = $this->generateProxyForMethod($cachePath, $thisNode, $methodMeta, $classMeta);
        }

        return $proxies;
    }