001package org.hl7.fhir.utilities; 002 003import org.hl7.fhir.exceptions.FHIRException; 004 005public enum StandardsStatus { 006 007 EXTERNAL, INFORMATIVE, DRAFT, TRIAL_USE, DEPRECATED, NORMATIVE; 008 009 public String toDisplay() { 010 switch (this) { 011 case DRAFT : 012 return "Draft"; 013 case NORMATIVE : 014 return "Normative"; 015 case TRIAL_USE : 016 return "Trial Use"; 017 case INFORMATIVE: 018 return "Informative"; 019 case EXTERNAL: 020 return "External"; 021 case DEPRECATED: 022 return "Deprecated"; 023 } 024 return "?"; 025 } 026 027 public String toCode() { 028 switch (this) { 029 case DRAFT : 030 return "draft"; 031 case NORMATIVE : 032 return "normative"; 033 case TRIAL_USE : 034 return "trial-use"; 035 case INFORMATIVE: 036 return "informative"; 037 case DEPRECATED: 038 return "deprecated"; 039 case EXTERNAL: 040 return "external"; 041 } 042 return "?"; 043 } 044 045 046 public static StandardsStatus fromCode(String value) throws FHIRException { 047 if (Utilities.noString(value)) 048 return null; 049 if (value.equalsIgnoreCase("draft")) 050 return DRAFT; 051 if (value.equalsIgnoreCase("NORMATIVE")) 052 return NORMATIVE; 053 if (value.equalsIgnoreCase("TRIAL_USE")) 054 return TRIAL_USE; 055 if (value.equalsIgnoreCase("TRIAL-USE")) 056 return TRIAL_USE; 057 if (value.equalsIgnoreCase("TRIAL USE")) 058 return TRIAL_USE; 059 if (value.equalsIgnoreCase("INFORMATIVE")) 060 return INFORMATIVE; 061 if (value.equalsIgnoreCase("EXTERNAL")) 062 return EXTERNAL; 063 if (value.equalsIgnoreCase("DEPRECATED")) 064 return DEPRECATED; 065 throw new FHIRException("Incorrect Standards Status '"+value+"'"); 066 } 067 068 public String getAbbrev() { 069 switch (this) { 070 case DRAFT : 071 return "D"; 072 case NORMATIVE : 073 return "N"; 074 case TRIAL_USE : 075 return "TU"; 076 case INFORMATIVE: 077 return "I"; 078 case DEPRECATED: 079 return "XD"; 080 case EXTERNAL: 081 return "X"; 082 } 083 return "?"; 084 } 085 086 public String getColor() { 087 switch (this) { 088 case DRAFT : 089 return "#efefef"; 090 case NORMATIVE : 091 return "#e6ffe6"; 092 case TRIAL_USE : 093 return "#fff5e6"; 094 case INFORMATIVE: 095 return "#ffffe6"; 096 case DEPRECATED: 097 return "#ffcccc"; 098 case EXTERNAL: 099 return "#e6ffff"; 100 } 101 return "?"; 102 } 103 104 public String getColorSvg() { 105 switch (this) { 106 case DRAFT : 107 return "#f6f6f6"; 108 case NORMATIVE : 109 return "#ecffec"; 110 case TRIAL_USE : 111 return "#fff9ec"; 112 case INFORMATIVE: 113 return "#ffffec"; 114 case DEPRECATED: 115 return "#ffcccc"; 116 case EXTERNAL: 117 return "#ecffff"; 118 } 119 return "?"; 120 } 121 122 public boolean canDependOn(StandardsStatus tgtSS) { 123 if (this == DRAFT || this == INFORMATIVE || this == EXTERNAL) 124 return true; 125 if (this == TRIAL_USE) 126 return (tgtSS != DRAFT); 127 if (this == NORMATIVE) 128 return (tgtSS == NORMATIVE || tgtSS == EXTERNAL ); 129 if (this == DEPRECATED) 130 return (tgtSS == DEPRECATED ); 131 return false; 132 } 133 134 public boolean isLowerThan(StandardsStatus status) { 135 return this.compareTo(status) <0; 136 } 137}