public constructor()

in tsdoc/src/nodes/DocLinkTag.ts [62:128]


  public constructor(parameters: IDocLinkTagParameters | IDocLinkTagParsedParameters) {
    super(parameters);

    if (this.tagNameWithUpperCase !== '@LINK') {
      throw new Error('DocLinkTag requires the tag name to be "{@link}"');
    }

    this._codeDestination = parameters.codeDestination;

    if (DocNode.isParsedParameters(parameters)) {
      if (parameters.codeDestination !== undefined && parameters.urlDestinationExcerpt !== undefined) {
        throw new Error('Either the codeDestination or the urlDestination may be specified, but not both');
      }

      if (parameters.urlDestinationExcerpt) {
        this._urlDestinationExcerpt = new DocExcerpt({
          configuration: this.configuration,
          excerptKind: ExcerptKind.LinkTag_UrlDestination,
          content: parameters.urlDestinationExcerpt
        });
      }
      if (parameters.spacingAfterDestinationExcerpt) {
        this._spacingAfterDestinationExcerpt = new DocExcerpt({
          configuration: this.configuration,
          excerptKind: ExcerptKind.Spacing,
          content: parameters.spacingAfterDestinationExcerpt
        });
      }

      if (parameters.pipeExcerpt) {
        this._pipeExcerpt = new DocExcerpt({
          configuration: this.configuration,
          excerptKind: ExcerptKind.LinkTag_Pipe,
          content: parameters.pipeExcerpt
        });
      }
      if (parameters.spacingAfterPipeExcerpt) {
        this._spacingAfterPipeExcerpt = new DocExcerpt({
          configuration: this.configuration,
          excerptKind: ExcerptKind.Spacing,
          content: parameters.spacingAfterPipeExcerpt
        });
      }

      if (parameters.linkTextExcerpt) {
        this._linkTextExcerpt = new DocExcerpt({
          configuration: this.configuration,
          excerptKind: ExcerptKind.LinkTag_LinkText,
          content: parameters.linkTextExcerpt
        });
      }
      if (parameters.spacingAfterLinkTextExcerpt) {
        this._spacingAfterLinkTextExcerpt = new DocExcerpt({
          configuration: this.configuration,
          excerptKind: ExcerptKind.Spacing,
          content: parameters.spacingAfterLinkTextExcerpt
        });
      }
    } else {
      if (parameters.codeDestination !== undefined && parameters.urlDestination !== undefined) {
        throw new Error('Either the codeDestination or the urlDestination may be specified, but not both');
      }

      this._urlDestination = parameters.urlDestination;
      this._linkText = parameters.linkText;
    }
  }