001package org.hl7.fhir.utilities;
002
003/**
004 * This enumeration is special, and hand crafted. It only supports a subset of the actual published FHIR versions, those that are still supported.
005 * @author graha
006 *
007 */
008public enum FhirPublication {
009  NULL,
010  DSTU1,
011  DSTU2,
012  DSTU2016May,
013  STU3,
014  R4,
015  R4B,
016  R5;
017
018  public static FhirPublication fromCode(String v) {
019    if (VersionUtilities.isR2Ver(v))
020      return FhirPublication.DSTU2;
021    if (VersionUtilities.isR2BVer(v))
022      return FhirPublication.DSTU2016May;
023    if (VersionUtilities.isR3Ver(v))
024      return FhirPublication.STU3;
025    if (VersionUtilities.isR4Ver(v))
026      return FhirPublication.R4;
027    if (VersionUtilities.isR4BVer(v))
028      return FhirPublication.R4B;
029    if (VersionUtilities.isR5Ver(v))
030      return FhirPublication.R5; 
031    return null;
032  }
033
034  public String toCode() {
035    switch (this) {
036    case DSTU1: return "0.01";
037    case DSTU2: return "1.0.2";
038    case DSTU2016May: return "1.4.0";
039    case STU3: return "3.0.1";
040    case R4: return "4.0.1";
041    case R4B: return "4.3.0";
042    case R5: return "5.0.0";
043    default:
044      return "??";
045    }
046  }
047
048
049}