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