{"version":3,"sources":["namespace.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IACpB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAEpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM;IAMvD;;;;;;OAMG;IACI,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAO/B,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOnD,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAU7C;;OAEG;IACI,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIjE,6EAA6E;IACtE,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI/C;;;;;OAKG;IACI,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAGrD","file":"namespace.d.ts","sourcesContent":["export class Namespace {\n  readonly abbreviationPrefix: string;\n\n  readonly baseIri: string;\n\n  constructor(baseIri: string, abbreviationPrefix: string) {\n    this.abbreviationPrefix = abbreviationPrefix;\n    this.baseIri = baseIri;\n    Object.freeze(this);\n  }\n\n  /**\n   * Returns an abbreviated IRI if the specified iri starts with the baseIri; the unchanged input\n   * String otherwise;\n   *\n   * @param iri\n   * @return\n   */\n  public abbreviate(iri: string): string {\n    if (this.isFullNamespaceIri(iri)) {\n      return this.abbreviationPrefix + \":\" + iri.substring(this.baseIri.length);\n    }\n    return iri;\n  }\n\n  public getLocalnameIfFullNamespaceIri(iri: string): string {\n    if (this.isFullNamespaceIri(iri)) {\n      return iri.substring(this.baseIri.length);\n    }\n    return iri;\n  }\n\n  public expand(abbreviatedIri: string): string {\n    if (this.isAbbreviatedNamespaceIri(abbreviatedIri)) {\n      return (\n        this.baseIri +\n        abbreviatedIri.substring(this.abbreviationPrefix.length + 1)\n      );\n    }\n    return abbreviatedIri;\n  }\n\n  /**\n   * Returns true if the specified abbreviatedIri starts with the namespace's abbreviation prefix.\n   */\n  public isAbbreviatedNamespaceIri(abbreviatedIri: string): boolean {\n    return abbreviatedIri.startsWith(this.abbreviationPrefix + \":\");\n  }\n\n  /** Returns true if the specified iri starts with the namespace's baseIri. */\n  public isFullNamespaceIri(iri: string): boolean {\n    return iri.startsWith(this.baseIri);\n  }\n\n  /**\n   * Prepends the namespace's baseIri to the specified localName.\n   *\n   * @param localName\n   * @return\n   */\n  public makeIriInNamespace(localName: string): string {\n    return this.baseIri + localName;\n  }\n}\n"]}