private function getCodegenClass()

in src/RouterCodegenBuilder.hack [82:105]


  private function getCodegenClass(
    string $classname,
  ): CodegenClass {
    return $this->cg->codegenClass($classname)
      ->setIsAbstract($this->createAbstract)
      ->setIsFinal(!$this->createAbstract)
      ->setExtends(\sprintf(
        '\\%s<classname<\\%s>>',
        BaseRouter::class,
        $this->responderClass,
      ))
      ->addMethod(
        $this->cg->codegenMethod('getRoutes')
          // method should be final only if the class is not already final
          ->setIsFinal($this->createAbstract)
          ->setIsOverride(true)
          ->setReturnTypef(
            'ImmMap<\\%s, ImmMap<string, classname<\\%s>>>',
            HttpMethod::class,
            $this->responderClass,
          )
          ->setBody($this->getUriMapBody())
      );
  }