001package org.hl7.fhir.r5.model;
002
003import java.util.ArrayList;
004import java.util.Date;
005import java.util.List;
006
007import org.hl7.fhir.utilities.npm.NpmPackage;
008
009public class PackageInformation {
010  private String id;
011  private String version;
012  private Date date;
013
014  private String name;
015  private String canonical;
016  private String web;
017
018  private List<String> dependencies = new ArrayList<>();
019
020  public PackageInformation(String id, String version, Date date, String name, String canonical, String web) {
021    super();
022    this.id = id;
023    this.version = version;
024    this.date = date;
025    this.name = name;
026    this.canonical = canonical;
027    this.web = web;
028  }
029
030  public PackageInformation(String src, Date date) {
031    super();
032    this.id = src;
033    this.date = date;
034  }
035
036  public PackageInformation(NpmPackage pi) {
037    super();
038    this.id = pi.name();
039    this.version = pi.version();
040    this.date = pi.dateAsDate();
041    this.name = pi.title();
042    this.canonical = pi.canonical();
043    this.web = pi.getWebLocation();
044    dependencies.addAll(pi.dependencies());
045  }
046
047  public PackageInformation(String id, String version, Date date) {
048    super();
049    this.id = id;
050    this.version = version;
051    this.date = date;
052  }
053
054  public String getId() {
055    return id;
056  }
057
058  public String getVersion() {
059    return version;
060  }
061
062  public Date getDate() {
063    return date;
064  }
065
066  public String getName() {
067    return name;
068  }
069
070  public String getCanonical() {
071    return canonical;
072  }
073
074  public String getWeb() {
075    return web;
076  }
077
078  public List<String> getDependencies() {
079    return dependencies;
080  }
081
082  public boolean isExamplesPackage() {
083    boolean b = id.startsWith("hl7.fhir.") && id.endsWith(".examples");
084    return b;
085  }
086
087  public boolean isHTO() {
088    boolean b = id.startsWith("hl7.terminology.r");
089    return b;
090  }
091
092  public String getVID() {
093    return id+"#"+version;
094  }
095
096  public String toString() {
097    return getVID();
098  }
099}