public type()

in src/docgen/transpile/java.ts [83:114]


  public type(type: reflect.Type): transpile.TranspiledType {
    const submodule = this.findSubmodule(type);
    const moduleLike = this.moduleLike(submodule ? submodule : type.assembly);

    const fqn = [];

    let namespace = type.namespace;
    if (namespace) {
      if (submodule && moduleLike.submodule) {
        // if the type is in a submodule, submodule.name is a substring of the namespace
        // so we update that part with the language-specific submodule string
        fqn.push(namespace.replace(submodule.name, moduleLike.submodule));
      } else {
        fqn.push(moduleLike.name);
        fqn.push(namespace);
      }
    } else {
      fqn.push(moduleLike.name);
    }
    fqn.push(type.name);

    return new transpile.TranspiledType({
      fqn: fqn.join('.'),
      name: type.name,
      namespace: namespace,
      module: moduleLike.name,
      submodule: moduleLike.submodule,
      submodulePath: submodulePath(submodule),
      source: type,
      language: this.language,
    });
  }