001package org.hl7.fhir.r5.utils;
002
003import java.lang.reflect.Field;
004import java.lang.reflect.Modifier;
005import java.util.HashSet;
006import java.util.Set;
007
008import org.hl7.fhir.r5.extensions.ExtensionUtilities;
009import org.hl7.fhir.utilities.MarkedToMoveToAdjunctPackage;
010
011@MarkedToMoveToAdjunctPackage
012public class BuildExtensions {
013
014  public static final String EXT_DESCRIPTION = "http://hl7.org/fhir/build/StructureDefinition/description";
015  public static final String EXT_TITLE = "http://hl7.org/fhir/build/StructureDefinition/title";
016  public static final String EXT_EXAMPLE_TYPE = "http://hl7.org/fhir/build/CodeSystem/example-type";
017  public static final String EXT_NOT_REGISTERED = "http://hl7.org/fhir/build/StructureDefinition/registered";
018  public static final String EXT_IG = "http://hl7.org/fhir/build/StructureDefinition/ig";
019  public static final String EXT_EXAMPLE_FOR = "http://hl7.org/fhir/build/StructureDefinition/example-for";
020  public static final String EXT_PATH = "http://hl7.org/fhir/build/StructureDefinition/path";
021  public static final String EXT_FOOTER = "http://hl7.org/fhir/build/StructureDefinition/footer";
022  public static final String EXT_FOOTER2 = "http://hl7.org/fhir/build/StructureDefinition/footer2";
023  public static final String EXT_ENTERED_IN_ERROR_STATUS = "http://hl7.org/fhir/build/StructureDefinition/entered-in-error-status";
024  public static final String EXT_PROPOSED_ORDER = "http://hl7.org/fhir/build/StructureDefinition/proposed-order";
025  public static final String EXT_HINT = "http://hl7.org/fhir/build/StructureDefinition/hint";
026  public static final String EXT_LAYOUT = "http://hl7.org/fhir/build/StructureDefinition/layout";
027  public static final String EXT_TODO = "http://hl7.org/fhir/build/StructureDefinition/todo";
028  public static final String EXT_COMMITTEE_NOTES = "http://hl7.org/fhir/build/StructureDefinition/committee-notes";
029  public static final String EXT_UML_DIR = "http://hl7.org/fhir/build/StructureDefinition/uml-dir";
030  public static final String EXT_UML_BREAK = "http://hl7.org/fhir/build/StructureDefinition/uml-break";
031  public static final String EXT_SVG = "http://hl7.org/fhir/build/StructureDefinition/svg";
032  public static final String EXT_OCL = "http://hl7.org/fhir/build/StructureDefinition/ocl";
033  public static final String EXT_FIXED_NAME = "http://hl7.org/fhir/build/StructureDefinition/fixed-name";
034  public static final String EXT_TURTLE = "http://hl7.org/fhir/build/StructureDefinition/turtle";
035  public static final String EXT_NAME = "http://hl7.org/fhir/build/StructureDefinition/name";
036  public static final String EXT_V2_MAP = "http://hl7.org/fhir/build/StructureDefinition/v2-map";
037  public static final String EXT_V3_MAP = "http://hl7.org/fhir/build/StructureDefinition/v3-map";
038  public static final String EXT_URI = "http://hl7.org/fhir/build/StructureDefinition/uri";
039  public static final String EXT_WEBSITE = "http://hl7.org/fhir/build/StructureDefinition/website";
040  public static final String EXT_EMAIL = "http://hl7.org/fhir/build/StructureDefinition/email";
041  public static final String EXT_COPYRIGHT = "http://hl7.org/fhir/build/StructureDefinition/copyright";
042  public static final String EXT_STATUS = "http://hl7.org/fhir/build/StructureDefinition/status";
043  public static final String EXT_INTRODUCTION = "http://hl7.org/fhir/build/StructureDefinition/introduction";
044  public static final String EXT_NOTES = "http://hl7.org/fhir/build/StructureDefinition/notes";
045  public static final String EXT_CODE = "http://hl7.org/fhir/build/StructureDefinition/code";
046  public static final String EXT_TYPE = "http://hl7.org/fhir/build/StructureDefinition/type";
047//  public static final String EXT_EXPLANATION = "http://hl7.org/fhir/build/StructureDefinition/explanation";
048  public static final String EXT_NO_BINDING = "http://hl7.org/fhir/build/StructureDefinition/no-binding";
049  public static final String EXT_OP_EXAMPLE = "http://hl7.org/fhir/build/StructureDefinition/example";
050  public static final String EXT_OP_EXAMPLE_CONTENT = "content";
051  public static final String EXT_OP_EXAMPLE_COMMENT = "comment";
052  public static final String EXT_OP_EXAMPLE_RESPONSE = "response";
053  public static final String EXT_OP_EXAMPLE_LIST = "list";
054  public static final String EXT_TEMPLATE = "http://hl7.org/fhir/build/StructureDefinition/template";
055  public static final String EXT_BINDING_NAME = "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName";
056  
057
058  private static Set<String> cachedConsts;
059  
060  public static Set<String> allConsts() {
061    if (cachedConsts == null) {
062      Set<String> list = new HashSet<>();
063      for (Field field : BuildExtensions.class.getDeclaredFields()) {
064        int modifiers = field.getModifiers();
065        if (Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers)) {
066          try {
067            list.add(field.get(field.getType()).toString());
068          } catch (Exception e) {
069          }
070        }
071      }
072      list.addAll(ExtensionUtilities.allConsts());
073      cachedConsts = list;
074    }
075    return cachedConsts;
076  }
077
078
079}