diff --git a/org.hl7.fhir.convertors/pom.xml b/org.hl7.fhir.convertors/pom.xml index 3b4a5db65..a5c8e54d6 100644 --- a/org.hl7.fhir.convertors/pom.xml +++ b/org.hl7.fhir.convertors/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.dstu2/pom.xml b/org.hl7.fhir.dstu2/pom.xml index 6da429efe..6b9f99ff2 100644 --- a/org.hl7.fhir.dstu2/pom.xml +++ b/org.hl7.fhir.dstu2/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.dstu2016may/pom.xml b/org.hl7.fhir.dstu2016may/pom.xml index 6a0956ec2..2ab6a1758 100644 --- a/org.hl7.fhir.dstu2016may/pom.xml +++ b/org.hl7.fhir.dstu2016may/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.dstu3/pom.xml b/org.hl7.fhir.dstu3/pom.xml index c8ee0651e..1b7a5287a 100644 --- a/org.hl7.fhir.dstu3/pom.xml +++ b/org.hl7.fhir.dstu3/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/formats/JsonParser.java b/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/formats/JsonParser.java index 95e63cfbc..cbe2b9f4f 100644 --- a/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/formats/JsonParser.java +++ b/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/formats/JsonParser.java @@ -610,7 +610,11 @@ public class JsonParser extends JsonParserBase { if (json.has("profile")) { JsonArray array = json.getAsJsonArray("profile"); for (int i = 0; i < array.size(); i++) { - res.getProfile().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProfile().add(new UriType()); + } else { + res.getProfile().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_profile")) { @@ -659,7 +663,11 @@ public class JsonParser extends JsonParserBase { if (json.has("line")) { JsonArray array = json.getAsJsonArray("line"); for (int i = 0; i < array.size(); i++) { - res.getLine().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLine().add(new StringType()); + } else { + res.getLine().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_line")) { @@ -757,7 +765,11 @@ public class JsonParser extends JsonParserBase { if (json.has("profile")) { JsonArray array = json.getAsJsonArray("profile"); for (int i = 0; i < array.size(); i++) { - res.getProfile().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProfile().add(new UriType()); + } else { + res.getProfile().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_profile")) { @@ -772,7 +784,11 @@ public class JsonParser extends JsonParserBase { if (json.has("mustSupport")) { JsonArray array = json.getAsJsonArray("mustSupport"); for (int i = 0; i < array.size(); i++) { - res.getMustSupport().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getMustSupport().add(new StringType()); + } else { + res.getMustSupport().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_mustSupport")) { @@ -816,7 +832,11 @@ public class JsonParser extends JsonParserBase { if (json.has("valueCode")) { JsonArray array = json.getAsJsonArray("valueCode"); for (int i = 0; i < array.size(); i++) { - res.getValueCode().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getValueCode().add(new CodeType()); + } else { + res.getValueCode().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_valueCode")) { @@ -983,7 +1003,11 @@ public class JsonParser extends JsonParserBase { if (json.has("given")) { JsonArray array = json.getAsJsonArray("given"); for (int i = 0; i < array.size(); i++) { - res.getGiven().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getGiven().add(new StringType()); + } else { + res.getGiven().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_given")) { @@ -998,7 +1022,11 @@ public class JsonParser extends JsonParserBase { if (json.has("prefix")) { JsonArray array = json.getAsJsonArray("prefix"); for (int i = 0; i < array.size(); i++) { - res.getPrefix().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPrefix().add(new StringType()); + } else { + res.getPrefix().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_prefix")) { @@ -1013,7 +1041,11 @@ public class JsonParser extends JsonParserBase { if (json.has("suffix")) { JsonArray array = json.getAsJsonArray("suffix"); for (int i = 0; i < array.size(); i++) { - res.getSuffix().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSuffix().add(new StringType()); + } else { + res.getSuffix().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_suffix")) { @@ -1083,7 +1115,11 @@ public class JsonParser extends JsonParserBase { if (json.has("event")) { JsonArray array = json.getAsJsonArray("event"); for (int i = 0; i < array.size(); i++) { - res.getEvent().add(parseDateTime(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getEvent().add(new DateTimeType()); + } else { + res.getEvent().add(parseDateTime(array.get(i).getAsString())); + } } }; if (json.has("_event")) { @@ -1155,7 +1191,11 @@ public class JsonParser extends JsonParserBase { if (json.has("dayOfWeek")) { JsonArray array = json.getAsJsonArray("dayOfWeek"); for (int i = 0; i < array.size(); i++) { - res.getDayOfWeek().add(parseEnumeration(array.get(i).getAsString(), Timing.DayOfWeek.NULL, new Timing.DayOfWeekEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getDayOfWeek().add(new Enumeration()); + } else { + res.getDayOfWeek().add(parseEnumeration(array.get(i).getAsString(), Timing.DayOfWeek.NULL, new Timing.DayOfWeekEnumFactory())); + } } }; if (json.has("_dayOfWeek")) { @@ -1170,7 +1210,11 @@ public class JsonParser extends JsonParserBase { if (json.has("timeOfDay")) { JsonArray array = json.getAsJsonArray("timeOfDay"); for (int i = 0; i < array.size(); i++) { - res.getTimeOfDay().add(parseTime(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getTimeOfDay().add(new TimeType()); + } else { + res.getTimeOfDay().add(parseTime(array.get(i).getAsString())); + } } }; if (json.has("_timeOfDay")) { @@ -1185,7 +1229,11 @@ public class JsonParser extends JsonParserBase { if (json.has("when")) { JsonArray array = json.getAsJsonArray("when"); for (int i = 0; i < array.size(); i++) { - res.getWhen().add(parseEnumeration(array.get(i).getAsString(), Timing.EventTiming.NULL, new Timing.EventTimingEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getWhen().add(new Enumeration()); + } else { + res.getWhen().add(parseEnumeration(array.get(i).getAsString(), Timing.EventTiming.NULL, new Timing.EventTimingEnumFactory())); + } } }; if (json.has("_when")) { @@ -1218,7 +1266,11 @@ public class JsonParser extends JsonParserBase { if (json.has("representation")) { JsonArray array = json.getAsJsonArray("representation"); for (int i = 0; i < array.size(); i++) { - res.getRepresentation().add(parseEnumeration(array.get(i).getAsString(), ElementDefinition.PropertyRepresentation.NULL, new ElementDefinition.PropertyRepresentationEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getRepresentation().add(new Enumeration()); + } else { + res.getRepresentation().add(parseEnumeration(array.get(i).getAsString(), ElementDefinition.PropertyRepresentation.NULL, new ElementDefinition.PropertyRepresentationEnumFactory())); + } } }; if (json.has("_representation")) { @@ -1265,7 +1317,11 @@ public class JsonParser extends JsonParserBase { if (json.has("alias")) { JsonArray array = json.getAsJsonArray("alias"); for (int i = 0; i < array.size(); i++) { - res.getAlias().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getAlias().add(new StringType()); + } else { + res.getAlias().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_alias")) { @@ -1333,7 +1389,11 @@ public class JsonParser extends JsonParserBase { if (json.has("condition")) { JsonArray array = json.getAsJsonArray("condition"); for (int i = 0; i < array.size(); i++) { - res.getCondition().add(parseId(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getCondition().add(new IdType()); + } else { + res.getCondition().add(parseId(array.get(i).getAsString())); + } } }; if (json.has("_condition")) { @@ -1464,7 +1524,11 @@ public class JsonParser extends JsonParserBase { if (json.has("aggregation")) { JsonArray array = json.getAsJsonArray("aggregation"); for (int i = 0; i < array.size(); i++) { - res.getAggregation().add(parseEnumeration(array.get(i).getAsString(), ElementDefinition.AggregationMode.NULL, new ElementDefinition.AggregationModeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getAggregation().add(new Enumeration()); + } else { + res.getAggregation().add(parseEnumeration(array.get(i).getAsString(), ElementDefinition.AggregationMode.NULL, new ElementDefinition.AggregationModeEnumFactory())); + } } }; if (json.has("_aggregation")) { @@ -2113,7 +2177,11 @@ public class JsonParser extends JsonParserBase { if (json.has("category")) { JsonArray array = json.getAsJsonArray("category"); for (int i = 0; i < array.size(); i++) { - res.getCategory().add(parseEnumeration(array.get(i).getAsString(), AllergyIntolerance.AllergyIntoleranceCategory.NULL, new AllergyIntolerance.AllergyIntoleranceCategoryEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getCategory().add(new Enumeration()); + } else { + res.getCategory().add(parseEnumeration(array.get(i).getAsString(), AllergyIntolerance.AllergyIntoleranceCategory.NULL, new AllergyIntolerance.AllergyIntoleranceCategoryEnumFactory())); + } } }; if (json.has("_category")) { @@ -2463,7 +2531,11 @@ public class JsonParser extends JsonParserBase { if (json.has("policy")) { JsonArray array = json.getAsJsonArray("policy"); for (int i = 0; i < array.size(); i++) { - res.getPolicy().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPolicy().add(new UriType()); + } else { + res.getPolicy().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_policy")) { @@ -2912,7 +2984,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiates")) { JsonArray array = json.getAsJsonArray("instantiates"); for (int i = 0; i < array.size(); i++) { - res.getInstantiates().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiates().add(new UriType()); + } else { + res.getInstantiates().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiates")) { @@ -2939,7 +3015,11 @@ public class JsonParser extends JsonParserBase { if (json.has("format")) { JsonArray array = json.getAsJsonArray("format"); for (int i = 0; i < array.size(); i++) { - res.getFormat().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getFormat().add(new CodeType()); + } else { + res.getFormat().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_format")) { @@ -2954,7 +3034,11 @@ public class JsonParser extends JsonParserBase { if (json.has("patchFormat")) { JsonArray array = json.getAsJsonArray("patchFormat"); for (int i = 0; i < array.size(); i++) { - res.getPatchFormat().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPatchFormat().add(new CodeType()); + } else { + res.getPatchFormat().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_patchFormat")) { @@ -2969,7 +3053,11 @@ public class JsonParser extends JsonParserBase { if (json.has("implementationGuide")) { JsonArray array = json.getAsJsonArray("implementationGuide"); for (int i = 0; i < array.size(); i++) { - res.getImplementationGuide().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getImplementationGuide().add(new UriType()); + } else { + res.getImplementationGuide().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_implementationGuide")) { @@ -3092,7 +3180,11 @@ public class JsonParser extends JsonParserBase { if (json.has("compartment")) { JsonArray array = json.getAsJsonArray("compartment"); for (int i = 0; i < array.size(); i++) { - res.getCompartment().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getCompartment().add(new UriType()); + } else { + res.getCompartment().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_compartment")) { @@ -3209,7 +3301,11 @@ public class JsonParser extends JsonParserBase { if (json.has("referencePolicy")) { JsonArray array = json.getAsJsonArray("referencePolicy"); for (int i = 0; i < array.size(); i++) { - res.getReferencePolicy().add(parseEnumeration(array.get(i).getAsString(), CapabilityStatement.ReferenceHandlingPolicy.NULL, new CapabilityStatement.ReferenceHandlingPolicyEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getReferencePolicy().add(new Enumeration()); + } else { + res.getReferencePolicy().add(parseEnumeration(array.get(i).getAsString(), CapabilityStatement.ReferenceHandlingPolicy.NULL, new CapabilityStatement.ReferenceHandlingPolicyEnumFactory())); + } } }; if (json.has("_referencePolicy")) { @@ -3224,7 +3320,11 @@ public class JsonParser extends JsonParserBase { if (json.has("searchInclude")) { JsonArray array = json.getAsJsonArray("searchInclude"); for (int i = 0; i < array.size(); i++) { - res.getSearchInclude().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSearchInclude().add(new StringType()); + } else { + res.getSearchInclude().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_searchInclude")) { @@ -3239,7 +3339,11 @@ public class JsonParser extends JsonParserBase { if (json.has("searchRevInclude")) { JsonArray array = json.getAsJsonArray("searchRevInclude"); for (int i = 0; i < array.size(); i++) { - res.getSearchRevInclude().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSearchRevInclude().add(new StringType()); + } else { + res.getSearchRevInclude().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_searchRevInclude")) { @@ -3764,7 +3868,11 @@ public class JsonParser extends JsonParserBase { if (json.has("definition")) { JsonArray array = json.getAsJsonArray("definition"); for (int i = 0; i < array.size(); i++) { - res.getDefinition().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDefinition().add(new UriType()); + } else { + res.getDefinition().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_definition")) { @@ -4140,7 +4248,11 @@ public class JsonParser extends JsonParserBase { if (json.has("preAuthRef")) { JsonArray array = json.getAsJsonArray("preAuthRef"); for (int i = 0; i < array.size(); i++) { - res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPreAuthRef().add(new StringType()); + } else { + res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_preAuthRef")) { @@ -4190,7 +4302,11 @@ public class JsonParser extends JsonParserBase { if (json.has("careTeamLinkId")) { JsonArray array = json.getAsJsonArray("careTeamLinkId"); for (int i = 0; i < array.size(); i++) { - res.getCareTeamLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getCareTeamLinkId().add(new PositiveIntType()); + } else { + res.getCareTeamLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_careTeamLinkId")) { @@ -4205,7 +4321,11 @@ public class JsonParser extends JsonParserBase { if (json.has("diagnosisLinkId")) { JsonArray array = json.getAsJsonArray("diagnosisLinkId"); for (int i = 0; i < array.size(); i++) { - res.getDiagnosisLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDiagnosisLinkId().add(new PositiveIntType()); + } else { + res.getDiagnosisLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_diagnosisLinkId")) { @@ -4220,7 +4340,11 @@ public class JsonParser extends JsonParserBase { if (json.has("procedureLinkId")) { JsonArray array = json.getAsJsonArray("procedureLinkId"); for (int i = 0; i < array.size(); i++) { - res.getProcedureLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProcedureLinkId().add(new PositiveIntType()); + } else { + res.getProcedureLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_procedureLinkId")) { @@ -4235,7 +4359,11 @@ public class JsonParser extends JsonParserBase { if (json.has("informationLinkId")) { JsonArray array = json.getAsJsonArray("informationLinkId"); for (int i = 0; i < array.size(); i++) { - res.getInformationLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInformationLinkId().add(new PositiveIntType()); + } else { + res.getInformationLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_informationLinkId")) { @@ -4516,7 +4644,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -4577,7 +4709,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -4618,7 +4754,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -4649,7 +4789,11 @@ public class JsonParser extends JsonParserBase { if (json.has("sequenceLinkId")) { JsonArray array = json.getAsJsonArray("sequenceLinkId"); for (int i = 0; i < array.size(); i++) { - res.getSequenceLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSequenceLinkId().add(new PositiveIntType()); + } else { + res.getSequenceLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_sequenceLinkId")) { @@ -4678,7 +4822,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -4729,7 +4877,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -4844,7 +4996,11 @@ public class JsonParser extends JsonParserBase { if (json.has("preAuthRef")) { JsonArray array = json.getAsJsonArray("preAuthRef"); for (int i = 0; i < array.size(); i++) { - res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPreAuthRef().add(new StringType()); + } else { + res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_preAuthRef")) { @@ -4914,7 +5070,11 @@ public class JsonParser extends JsonParserBase { if (json.has("protocol")) { JsonArray array = json.getAsJsonArray("protocol"); for (int i = 0; i < array.size(); i++) { - res.getProtocol().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProtocol().add(new UriType()); + } else { + res.getProtocol().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_protocol")) { @@ -5136,7 +5296,11 @@ public class JsonParser extends JsonParserBase { if (json.has("operator")) { JsonArray array = json.getAsJsonArray("operator"); for (int i = 0; i < array.size(); i++) { - res.getOperator().add(parseEnumeration(array.get(i).getAsString(), CodeSystem.FilterOperator.NULL, new CodeSystem.FilterOperatorEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getOperator().add(new Enumeration()); + } else { + res.getOperator().add(parseEnumeration(array.get(i).getAsString(), CodeSystem.FilterOperator.NULL, new CodeSystem.FilterOperatorEnumFactory())); + } } }; if (json.has("_operator")) { @@ -5597,7 +5761,11 @@ public class JsonParser extends JsonParserBase { if (json.has("param")) { JsonArray array = json.getAsJsonArray("param"); for (int i = 0; i < array.size(); i++) { - res.getParam().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getParam().add(new StringType()); + } else { + res.getParam().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_param")) { @@ -5694,7 +5862,11 @@ public class JsonParser extends JsonParserBase { if (json.has("mode")) { JsonArray array = json.getAsJsonArray("mode"); for (int i = 0; i < array.size(); i++) { - res.getMode().add(parseEnumeration(array.get(i).getAsString(), Composition.CompositionAttestationMode.NULL, new Composition.CompositionAttestationModeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getMode().add(new Enumeration()); + } else { + res.getMode().add(parseEnumeration(array.get(i).getAsString(), Composition.CompositionAttestationMode.NULL, new Composition.CompositionAttestationModeEnumFactory())); + } } }; if (json.has("_mode")) { @@ -8235,7 +8407,11 @@ public class JsonParser extends JsonParserBase { if (json.has("payloadMimeType")) { JsonArray array = json.getAsJsonArray("payloadMimeType"); for (int i = 0; i < array.size(); i++) { - res.getPayloadMimeType().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPayloadMimeType().add(new CodeType()); + } else { + res.getPayloadMimeType().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_payloadMimeType")) { @@ -8254,7 +8430,11 @@ public class JsonParser extends JsonParserBase { if (json.has("header")) { JsonArray array = json.getAsJsonArray("header"); for (int i = 0; i < array.size(); i++) { - res.getHeader().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getHeader().add(new StringType()); + } else { + res.getHeader().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_header")) { @@ -8941,7 +9121,11 @@ public class JsonParser extends JsonParserBase { if (json.has("preAuthRef")) { JsonArray array = json.getAsJsonArray("preAuthRef"); for (int i = 0; i < array.size(); i++) { - res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPreAuthRef().add(new StringType()); + } else { + res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_preAuthRef")) { @@ -8989,7 +9173,11 @@ public class JsonParser extends JsonParserBase { if (json.has("careTeamLinkId")) { JsonArray array = json.getAsJsonArray("careTeamLinkId"); for (int i = 0; i < array.size(); i++) { - res.getCareTeamLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getCareTeamLinkId().add(new PositiveIntType()); + } else { + res.getCareTeamLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_careTeamLinkId")) { @@ -9004,7 +9192,11 @@ public class JsonParser extends JsonParserBase { if (json.has("diagnosisLinkId")) { JsonArray array = json.getAsJsonArray("diagnosisLinkId"); for (int i = 0; i < array.size(); i++) { - res.getDiagnosisLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDiagnosisLinkId().add(new PositiveIntType()); + } else { + res.getDiagnosisLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_diagnosisLinkId")) { @@ -9019,7 +9211,11 @@ public class JsonParser extends JsonParserBase { if (json.has("procedureLinkId")) { JsonArray array = json.getAsJsonArray("procedureLinkId"); for (int i = 0; i < array.size(); i++) { - res.getProcedureLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProcedureLinkId().add(new PositiveIntType()); + } else { + res.getProcedureLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_procedureLinkId")) { @@ -9034,7 +9230,11 @@ public class JsonParser extends JsonParserBase { if (json.has("informationLinkId")) { JsonArray array = json.getAsJsonArray("informationLinkId"); for (int i = 0; i < array.size(); i++) { - res.getInformationLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInformationLinkId().add(new PositiveIntType()); + } else { + res.getInformationLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_informationLinkId")) { @@ -9103,7 +9303,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -9200,7 +9404,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -9277,7 +9485,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -9308,7 +9520,11 @@ public class JsonParser extends JsonParserBase { if (json.has("sequenceLinkId")) { JsonArray array = json.getAsJsonArray("sequenceLinkId"); for (int i = 0; i < array.size(); i++) { - res.getSequenceLinkId().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSequenceLinkId().add(new PositiveIntType()); + } else { + res.getSequenceLinkId().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_sequenceLinkId")) { @@ -9337,7 +9553,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -9388,7 +9608,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -10136,7 +10360,11 @@ public class JsonParser extends JsonParserBase { if (json.has("programName")) { JsonArray array = json.getAsJsonArray("programName"); for (int i = 0; i < array.size(); i++) { - res.getProgramName().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProgramName().add(new StringType()); + } else { + res.getProgramName().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_programName")) { @@ -10199,7 +10427,11 @@ public class JsonParser extends JsonParserBase { if (json.has("daysOfWeek")) { JsonArray array = json.getAsJsonArray("daysOfWeek"); for (int i = 0; i < array.size(); i++) { - res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), HealthcareService.DaysOfWeek.NULL, new HealthcareService.DaysOfWeekEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getDaysOfWeek().add(new Enumeration()); + } else { + res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), HealthcareService.DaysOfWeek.NULL, new HealthcareService.DaysOfWeekEnumFactory())); + } } }; if (json.has("_daysOfWeek")) { @@ -10892,7 +11124,11 @@ public class JsonParser extends JsonParserBase { if (json.has("binary")) { JsonArray array = json.getAsJsonArray("binary"); for (int i = 0; i < array.size(); i++) { - res.getBinary().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getBinary().add(new UriType()); + } else { + res.getBinary().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_binary")) { @@ -11020,7 +11256,11 @@ public class JsonParser extends JsonParserBase { if (json.has("type")) { JsonArray array = json.getAsJsonArray("type"); for (int i = 0; i < array.size(); i++) { - res.getType().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getType().add(new CodeType()); + } else { + res.getType().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_type")) { @@ -11035,7 +11275,11 @@ public class JsonParser extends JsonParserBase { if (json.has("package")) { JsonArray array = json.getAsJsonArray("package"); for (int i = 0; i < array.size(); i++) { - res.getPackage().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPackage().add(new StringType()); + } else { + res.getPackage().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_package")) { @@ -11332,7 +11576,11 @@ public class JsonParser extends JsonParserBase { if (json.has("alias")) { JsonArray array = json.getAsJsonArray("alias"); for (int i = 0; i < array.size(); i++) { - res.getAlias().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getAlias().add(new StringType()); + } else { + res.getAlias().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_alias")) { @@ -11551,7 +11799,11 @@ public class JsonParser extends JsonParserBase { if (json.has("definition")) { JsonArray array = json.getAsJsonArray("definition"); for (int i = 0; i < array.size(); i++) { - res.getDefinition().add(parseMarkdown(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDefinition().add(new MarkdownType()); + } else { + res.getDefinition().add(parseMarkdown(array.get(i).getAsString())); + } } }; if (json.has("_definition")) { @@ -13381,7 +13633,11 @@ public class JsonParser extends JsonParserBase { if (json.has("resource")) { JsonArray array = json.getAsJsonArray("resource"); for (int i = 0; i < array.size(); i++) { - res.getResource().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getResource().add(new CodeType()); + } else { + res.getResource().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_resource")) { @@ -13495,7 +13751,11 @@ public class JsonParser extends JsonParserBase { if (json.has("parameterName")) { JsonArray array = json.getAsJsonArray("parameterName"); for (int i = 0; i < array.size(); i++) { - res.getParameterName().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getParameterName().add(new StringType()); + } else { + res.getParameterName().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_parameterName")) { @@ -13554,7 +13814,11 @@ public class JsonParser extends JsonParserBase { if (json.has("location")) { JsonArray array = json.getAsJsonArray("location"); for (int i = 0; i < array.size(); i++) { - res.getLocation().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLocation().add(new StringType()); + } else { + res.getLocation().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_location")) { @@ -13569,7 +13833,11 @@ public class JsonParser extends JsonParserBase { if (json.has("expression")) { JsonArray array = json.getAsJsonArray("expression"); for (int i = 0; i < array.size(); i++) { - res.getExpression().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getExpression().add(new StringType()); + } else { + res.getExpression().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_expression")) { @@ -13614,7 +13882,11 @@ public class JsonParser extends JsonParserBase { if (json.has("alias")) { JsonArray array = json.getAsJsonArray("alias"); for (int i = 0; i < array.size(); i++) { - res.getAlias().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getAlias().add(new StringType()); + } else { + res.getAlias().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_alias")) { @@ -14284,7 +14556,11 @@ public class JsonParser extends JsonParserBase { if (json.has("goalId")) { JsonArray array = json.getAsJsonArray("goalId"); for (int i = 0; i < array.size(); i++) { - res.getGoalId().add(parseId(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getGoalId().add(new IdType()); + } else { + res.getGoalId().add(parseId(array.get(i).getAsString())); + } } }; if (json.has("_goalId")) { @@ -14639,7 +14915,11 @@ public class JsonParser extends JsonParserBase { if (json.has("daysOfWeek")) { JsonArray array = json.getAsJsonArray("daysOfWeek"); for (int i = 0; i < array.size(); i++) { - res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), PractitionerRole.DaysOfWeek.NULL, new PractitionerRole.DaysOfWeekEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getDaysOfWeek().add(new Enumeration()); + } else { + res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), PractitionerRole.DaysOfWeek.NULL, new PractitionerRole.DaysOfWeekEnumFactory())); + } } }; if (json.has("_daysOfWeek")) { @@ -15031,7 +15311,11 @@ public class JsonParser extends JsonParserBase { if (json.has("include")) { JsonArray array = json.getAsJsonArray("include"); for (int i = 0; i < array.size(); i++) { - res.getInclude().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInclude().add(new StringType()); + } else { + res.getInclude().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_include")) { @@ -15046,7 +15330,11 @@ public class JsonParser extends JsonParserBase { if (json.has("exclude")) { JsonArray array = json.getAsJsonArray("exclude"); for (int i = 0; i < array.size(); i++) { - res.getExclude().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getExclude().add(new StringType()); + } else { + res.getExclude().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_exclude")) { @@ -15173,7 +15461,11 @@ public class JsonParser extends JsonParserBase { if (json.has("policy")) { JsonArray array = json.getAsJsonArray("policy"); for (int i = 0; i < array.size(); i++) { - res.getPolicy().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPolicy().add(new UriType()); + } else { + res.getPolicy().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_policy")) { @@ -15357,7 +15649,11 @@ public class JsonParser extends JsonParserBase { if (json.has("subjectType")) { JsonArray array = json.getAsJsonArray("subjectType"); for (int i = 0; i < array.size(); i++) { - res.getSubjectType().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSubjectType().add(new CodeType()); + } else { + res.getSubjectType().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_subjectType")) { @@ -16338,7 +16634,11 @@ public class JsonParser extends JsonParserBase { if (json.has("base")) { JsonArray array = json.getAsJsonArray("base"); for (int i = 0; i < array.size(); i++) { - res.getBase().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getBase().add(new CodeType()); + } else { + res.getBase().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_base")) { @@ -16377,7 +16677,11 @@ public class JsonParser extends JsonParserBase { if (json.has("target")) { JsonArray array = json.getAsJsonArray("target"); for (int i = 0; i < array.size(); i++) { - res.getTarget().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getTarget().add(new CodeType()); + } else { + res.getTarget().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_target")) { @@ -16392,7 +16696,11 @@ public class JsonParser extends JsonParserBase { if (json.has("comparator")) { JsonArray array = json.getAsJsonArray("comparator"); for (int i = 0; i < array.size(); i++) { - res.getComparator().add(parseEnumeration(array.get(i).getAsString(), SearchParameter.SearchComparator.NULL, new SearchParameter.SearchComparatorEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getComparator().add(new Enumeration()); + } else { + res.getComparator().add(parseEnumeration(array.get(i).getAsString(), SearchParameter.SearchComparator.NULL, new SearchParameter.SearchComparatorEnumFactory())); + } } }; if (json.has("_comparator")) { @@ -16407,7 +16715,11 @@ public class JsonParser extends JsonParserBase { if (json.has("modifier")) { JsonArray array = json.getAsJsonArray("modifier"); for (int i = 0; i < array.size(); i++) { - res.getModifier().add(parseEnumeration(array.get(i).getAsString(), SearchParameter.SearchModifierCode.NULL, new SearchParameter.SearchModifierCodeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getModifier().add(new Enumeration()); + } else { + res.getModifier().add(parseEnumeration(array.get(i).getAsString(), SearchParameter.SearchModifierCode.NULL, new SearchParameter.SearchModifierCodeEnumFactory())); + } } }; if (json.has("_modifier")) { @@ -16422,7 +16734,11 @@ public class JsonParser extends JsonParserBase { if (json.has("chain")) { JsonArray array = json.getAsJsonArray("chain"); for (int i = 0; i < array.size(); i++) { - res.getChain().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getChain().add(new StringType()); + } else { + res.getChain().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_chain")) { @@ -17110,7 +17426,11 @@ public class JsonParser extends JsonParserBase { if (json.has("context")) { JsonArray array = json.getAsJsonArray("context"); for (int i = 0; i < array.size(); i++) { - res.getContext().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getContext().add(new StringType()); + } else { + res.getContext().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_context")) { @@ -17125,7 +17445,11 @@ public class JsonParser extends JsonParserBase { if (json.has("contextInvariant")) { JsonArray array = json.getAsJsonArray("contextInvariant"); for (int i = 0; i < array.size(); i++) { - res.getContextInvariant().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getContextInvariant().add(new StringType()); + } else { + res.getContextInvariant().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_contextInvariant")) { @@ -17298,7 +17622,11 @@ public class JsonParser extends JsonParserBase { if (json.has("import")) { JsonArray array = json.getAsJsonArray("import"); for (int i = 0; i < array.size(); i++) { - res.getImport().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getImport().add(new UriType()); + } else { + res.getImport().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_import")) { @@ -17526,7 +17854,11 @@ public class JsonParser extends JsonParserBase { if (json.has("listMode")) { JsonArray array = json.getAsJsonArray("listMode"); for (int i = 0; i < array.size(); i++) { - res.getListMode().add(parseEnumeration(array.get(i).getAsString(), StructureMap.StructureMapTargetListMode.NULL, new StructureMap.StructureMapTargetListModeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getListMode().add(new Enumeration()); + } else { + res.getListMode().add(parseEnumeration(array.get(i).getAsString(), StructureMap.StructureMapTargetListMode.NULL, new StructureMap.StructureMapTargetListModeEnumFactory())); + } } }; if (json.has("_listMode")) { @@ -17582,7 +17914,11 @@ public class JsonParser extends JsonParserBase { if (json.has("variable")) { JsonArray array = json.getAsJsonArray("variable"); for (int i = 0; i < array.size(); i++) { - res.getVariable().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getVariable().add(new StringType()); + } else { + res.getVariable().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_variable")) { @@ -17663,7 +17999,11 @@ public class JsonParser extends JsonParserBase { if (json.has("header")) { JsonArray array = json.getAsJsonArray("header"); for (int i = 0; i < array.size(); i++) { - res.getHeader().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getHeader().add(new StringType()); + } else { + res.getHeader().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_header")) { @@ -18505,7 +18845,11 @@ public class JsonParser extends JsonParserBase { if (json.has("origin")) { JsonArray array = json.getAsJsonArray("origin"); for (int i = 0; i < array.size(); i++) { - res.getOrigin().add(parseInteger(array.get(i).getAsLong())); + if (array.get(i).isJsonNull()) { + res.getOrigin().add(new IntegerType()); + } else { + res.getOrigin().add(parseInteger(array.get(i).getAsLong())); + } } }; if (json.has("_origin")) { @@ -18524,7 +18868,11 @@ public class JsonParser extends JsonParserBase { if (json.has("link")) { JsonArray array = json.getAsJsonArray("link"); for (int i = 0; i < array.size(); i++) { - res.getLink().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLink().add(new UriType()); + } else { + res.getLink().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_link")) { @@ -19231,7 +19579,11 @@ public class JsonParser extends JsonParserBase { if (json.has("valueSet")) { JsonArray array = json.getAsJsonArray("valueSet"); for (int i = 0; i < array.size(); i++) { - res.getValueSet().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getValueSet().add(new UriType()); + } else { + res.getValueSet().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_valueSet")) { diff --git a/org.hl7.fhir.r4/pom.xml b/org.hl7.fhir.r4/pom.xml index b8df8efa3..dcf74e4dd 100644 --- a/org.hl7.fhir.r4/pom.xml +++ b/org.hl7.fhir.r4/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/formats/JsonParser.java b/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/formats/JsonParser.java index 1b7420d9b..7e6403c99 100644 --- a/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/formats/JsonParser.java +++ b/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/formats/JsonParser.java @@ -256,7 +256,11 @@ public class JsonParser extends JsonParserBase { if (json.has("profile")) { JsonArray array = json.getAsJsonArray("profile"); for (int i = 0; i < array.size(); i++) { - res.getProfile().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProfile().add(new CanonicalType()); + } else { + res.getProfile().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_profile")) { @@ -305,7 +309,11 @@ public class JsonParser extends JsonParserBase { if (json.has("line")) { JsonArray array = json.getAsJsonArray("line"); for (int i = 0; i < array.size(); i++) { - res.getLine().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLine().add(new StringType()); + } else { + res.getLine().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_line")) { @@ -432,7 +440,11 @@ public class JsonParser extends JsonParserBase { if (json.has("profile")) { JsonArray array = json.getAsJsonArray("profile"); for (int i = 0; i < array.size(); i++) { - res.getProfile().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProfile().add(new CanonicalType()); + } else { + res.getProfile().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_profile")) { @@ -450,7 +462,11 @@ public class JsonParser extends JsonParserBase { if (json.has("mustSupport")) { JsonArray array = json.getAsJsonArray("mustSupport"); for (int i = 0; i < array.size(); i++) { - res.getMustSupport().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getMustSupport().add(new StringType()); + } else { + res.getMustSupport().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_mustSupport")) { @@ -663,7 +679,11 @@ public class JsonParser extends JsonParserBase { if (json.has("given")) { JsonArray array = json.getAsJsonArray("given"); for (int i = 0; i < array.size(); i++) { - res.getGiven().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getGiven().add(new StringType()); + } else { + res.getGiven().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_given")) { @@ -678,7 +698,11 @@ public class JsonParser extends JsonParserBase { if (json.has("prefix")) { JsonArray array = json.getAsJsonArray("prefix"); for (int i = 0; i < array.size(); i++) { - res.getPrefix().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPrefix().add(new StringType()); + } else { + res.getPrefix().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_prefix")) { @@ -693,7 +717,11 @@ public class JsonParser extends JsonParserBase { if (json.has("suffix")) { JsonArray array = json.getAsJsonArray("suffix"); for (int i = 0; i < array.size(); i++) { - res.getSuffix().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSuffix().add(new StringType()); + } else { + res.getSuffix().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_suffix")) { @@ -1257,7 +1285,11 @@ public class JsonParser extends JsonParserBase { if (json.has("event")) { JsonArray array = json.getAsJsonArray("event"); for (int i = 0; i < array.size(); i++) { - res.getEvent().add(parseDateTime(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getEvent().add(new DateTimeType()); + } else { + res.getEvent().add(parseDateTime(array.get(i).getAsString())); + } } }; if (json.has("_event")) { @@ -1329,7 +1361,11 @@ public class JsonParser extends JsonParserBase { if (json.has("dayOfWeek")) { JsonArray array = json.getAsJsonArray("dayOfWeek"); for (int i = 0; i < array.size(); i++) { - res.getDayOfWeek().add(parseEnumeration(array.get(i).getAsString(), Timing.DayOfWeek.NULL, new Timing.DayOfWeekEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getDayOfWeek().add(new Enumeration()); + } else { + res.getDayOfWeek().add(parseEnumeration(array.get(i).getAsString(), Timing.DayOfWeek.NULL, new Timing.DayOfWeekEnumFactory())); + } } }; if (json.has("_dayOfWeek")) { @@ -1344,7 +1380,11 @@ public class JsonParser extends JsonParserBase { if (json.has("timeOfDay")) { JsonArray array = json.getAsJsonArray("timeOfDay"); for (int i = 0; i < array.size(); i++) { - res.getTimeOfDay().add(parseTime(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getTimeOfDay().add(new TimeType()); + } else { + res.getTimeOfDay().add(parseTime(array.get(i).getAsString())); + } } }; if (json.has("_timeOfDay")) { @@ -1359,7 +1399,11 @@ public class JsonParser extends JsonParserBase { if (json.has("when")) { JsonArray array = json.getAsJsonArray("when"); for (int i = 0; i < array.size(); i++) { - res.getWhen().add(parseEnumeration(array.get(i).getAsString(), Timing.EventTiming.NULL, new Timing.EventTimingEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getWhen().add(new Enumeration()); + } else { + res.getWhen().add(parseEnumeration(array.get(i).getAsString(), Timing.EventTiming.NULL, new Timing.EventTimingEnumFactory())); + } } }; if (json.has("_when")) { @@ -1404,7 +1448,11 @@ public class JsonParser extends JsonParserBase { if (json.has("color")) { JsonArray array = json.getAsJsonArray("color"); for (int i = 0; i < array.size(); i++) { - res.getColor().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getColor().add(new StringType()); + } else { + res.getColor().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_color")) { @@ -1419,7 +1467,11 @@ public class JsonParser extends JsonParserBase { if (json.has("imprint")) { JsonArray array = json.getAsJsonArray("imprint"); for (int i = 0; i < array.size(); i++) { - res.getImprint().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getImprint().add(new StringType()); + } else { + res.getImprint().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_imprint")) { @@ -1514,7 +1566,11 @@ public class JsonParser extends JsonParserBase { if (json.has("representation")) { JsonArray array = json.getAsJsonArray("representation"); for (int i = 0; i < array.size(); i++) { - res.getRepresentation().add(parseEnumeration(array.get(i).getAsString(), ElementDefinition.PropertyRepresentation.NULL, new ElementDefinition.PropertyRepresentationEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getRepresentation().add(new Enumeration()); + } else { + res.getRepresentation().add(parseEnumeration(array.get(i).getAsString(), ElementDefinition.PropertyRepresentation.NULL, new ElementDefinition.PropertyRepresentationEnumFactory())); + } } }; if (json.has("_representation")) { @@ -1565,7 +1621,11 @@ public class JsonParser extends JsonParserBase { if (json.has("alias")) { JsonArray array = json.getAsJsonArray("alias"); for (int i = 0; i < array.size(); i++) { - res.getAlias().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getAlias().add(new StringType()); + } else { + res.getAlias().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_alias")) { @@ -1633,7 +1693,11 @@ public class JsonParser extends JsonParserBase { if (json.has("condition")) { JsonArray array = json.getAsJsonArray("condition"); for (int i = 0; i < array.size(); i++) { - res.getCondition().add(parseId(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getCondition().add(new IdType()); + } else { + res.getCondition().add(parseId(array.get(i).getAsString())); + } } }; if (json.has("_condition")) { @@ -1760,7 +1824,11 @@ public class JsonParser extends JsonParserBase { if (json.has("profile")) { JsonArray array = json.getAsJsonArray("profile"); for (int i = 0; i < array.size(); i++) { - res.getProfile().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProfile().add(new CanonicalType()); + } else { + res.getProfile().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_profile")) { @@ -1775,7 +1843,11 @@ public class JsonParser extends JsonParserBase { if (json.has("targetProfile")) { JsonArray array = json.getAsJsonArray("targetProfile"); for (int i = 0; i < array.size(); i++) { - res.getTargetProfile().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getTargetProfile().add(new CanonicalType()); + } else { + res.getTargetProfile().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_targetProfile")) { @@ -1790,7 +1862,11 @@ public class JsonParser extends JsonParserBase { if (json.has("aggregation")) { JsonArray array = json.getAsJsonArray("aggregation"); for (int i = 0; i < array.size(); i++) { - res.getAggregation().add(parseEnumeration(array.get(i).getAsString(), ElementDefinition.AggregationMode.NULL, new ElementDefinition.AggregationModeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getAggregation().add(new Enumeration()); + } else { + res.getAggregation().add(parseEnumeration(array.get(i).getAsString(), ElementDefinition.AggregationMode.NULL, new ElementDefinition.AggregationModeEnumFactory())); + } } }; if (json.has("_aggregation")) { @@ -2217,7 +2293,11 @@ public class JsonParser extends JsonParserBase { if (json.has("library")) { JsonArray array = json.getAsJsonArray("library"); for (int i = 0; i < array.size(); i++) { - res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLibrary().add(new CanonicalType()); + } else { + res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_library")) { @@ -2490,7 +2570,11 @@ public class JsonParser extends JsonParserBase { if (json.has("category")) { JsonArray array = json.getAsJsonArray("category"); for (int i = 0; i < array.size(); i++) { - res.getCategory().add(parseEnumeration(array.get(i).getAsString(), AllergyIntolerance.AllergyIntoleranceCategory.NULL, new AllergyIntolerance.AllergyIntoleranceCategoryEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getCategory().add(new Enumeration()); + } else { + res.getCategory().add(parseEnumeration(array.get(i).getAsString(), AllergyIntolerance.AllergyIntoleranceCategory.NULL, new AllergyIntolerance.AllergyIntoleranceCategoryEnumFactory())); + } } }; if (json.has("_category")) { @@ -2856,7 +2940,11 @@ public class JsonParser extends JsonParserBase { if (json.has("policy")) { JsonArray array = json.getAsJsonArray("policy"); for (int i = 0; i < array.size(); i++) { - res.getPolicy().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPolicy().add(new UriType()); + } else { + res.getPolicy().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_policy")) { @@ -3445,7 +3533,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiates")) { JsonArray array = json.getAsJsonArray("instantiates"); for (int i = 0; i < array.size(); i++) { - res.getInstantiates().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiates().add(new CanonicalType()); + } else { + res.getInstantiates().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiates")) { @@ -3460,7 +3552,11 @@ public class JsonParser extends JsonParserBase { if (json.has("imports")) { JsonArray array = json.getAsJsonArray("imports"); for (int i = 0; i < array.size(); i++) { - res.getImports().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getImports().add(new CanonicalType()); + } else { + res.getImports().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_imports")) { @@ -3483,7 +3579,11 @@ public class JsonParser extends JsonParserBase { if (json.has("format")) { JsonArray array = json.getAsJsonArray("format"); for (int i = 0; i < array.size(); i++) { - res.getFormat().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getFormat().add(new CodeType()); + } else { + res.getFormat().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_format")) { @@ -3498,7 +3598,11 @@ public class JsonParser extends JsonParserBase { if (json.has("patchFormat")) { JsonArray array = json.getAsJsonArray("patchFormat"); for (int i = 0; i < array.size(); i++) { - res.getPatchFormat().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPatchFormat().add(new CodeType()); + } else { + res.getPatchFormat().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_patchFormat")) { @@ -3513,7 +3617,11 @@ public class JsonParser extends JsonParserBase { if (json.has("implementationGuide")) { JsonArray array = json.getAsJsonArray("implementationGuide"); for (int i = 0; i < array.size(); i++) { - res.getImplementationGuide().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getImplementationGuide().add(new CanonicalType()); + } else { + res.getImplementationGuide().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_implementationGuide")) { @@ -3632,7 +3740,11 @@ public class JsonParser extends JsonParserBase { if (json.has("compartment")) { JsonArray array = json.getAsJsonArray("compartment"); for (int i = 0; i < array.size(); i++) { - res.getCompartment().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getCompartment().add(new CanonicalType()); + } else { + res.getCompartment().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_compartment")) { @@ -3689,7 +3801,11 @@ public class JsonParser extends JsonParserBase { if (json.has("supportedProfile")) { JsonArray array = json.getAsJsonArray("supportedProfile"); for (int i = 0; i < array.size(); i++) { - res.getSupportedProfile().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSupportedProfile().add(new CanonicalType()); + } else { + res.getSupportedProfile().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_supportedProfile")) { @@ -3742,7 +3858,11 @@ public class JsonParser extends JsonParserBase { if (json.has("referencePolicy")) { JsonArray array = json.getAsJsonArray("referencePolicy"); for (int i = 0; i < array.size(); i++) { - res.getReferencePolicy().add(parseEnumeration(array.get(i).getAsString(), CapabilityStatement.ReferenceHandlingPolicy.NULL, new CapabilityStatement.ReferenceHandlingPolicyEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getReferencePolicy().add(new Enumeration()); + } else { + res.getReferencePolicy().add(parseEnumeration(array.get(i).getAsString(), CapabilityStatement.ReferenceHandlingPolicy.NULL, new CapabilityStatement.ReferenceHandlingPolicyEnumFactory())); + } } }; if (json.has("_referencePolicy")) { @@ -3757,7 +3877,11 @@ public class JsonParser extends JsonParserBase { if (json.has("searchInclude")) { JsonArray array = json.getAsJsonArray("searchInclude"); for (int i = 0; i < array.size(); i++) { - res.getSearchInclude().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSearchInclude().add(new StringType()); + } else { + res.getSearchInclude().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_searchInclude")) { @@ -3772,7 +3896,11 @@ public class JsonParser extends JsonParserBase { if (json.has("searchRevInclude")) { JsonArray array = json.getAsJsonArray("searchRevInclude"); for (int i = 0; i < array.size(); i++) { - res.getSearchRevInclude().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSearchRevInclude().add(new StringType()); + } else { + res.getSearchRevInclude().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_searchRevInclude")) { @@ -3985,7 +4113,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -4000,7 +4132,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -4155,7 +4291,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -4170,7 +4310,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -4431,7 +4575,11 @@ public class JsonParser extends JsonParserBase { if (json.has("definitionUri")) { JsonArray array = json.getAsJsonArray("definitionUri"); for (int i = 0; i < array.size(); i++) { - res.getDefinitionUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDefinitionUri().add(new UriType()); + } else { + res.getDefinitionUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_definitionUri")) { @@ -4446,7 +4594,11 @@ public class JsonParser extends JsonParserBase { if (json.has("definitionCanonical")) { JsonArray array = json.getAsJsonArray("definitionCanonical"); for (int i = 0; i < array.size(); i++) { - res.getDefinitionCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDefinitionCanonical().add(new CanonicalType()); + } else { + res.getDefinitionCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_definitionCanonical")) { @@ -4591,7 +4743,11 @@ public class JsonParser extends JsonParserBase { if (json.has("derivedFromUri")) { JsonArray array = json.getAsJsonArray("derivedFromUri"); for (int i = 0; i < array.size(); i++) { - res.getDerivedFromUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDerivedFromUri().add(new UriType()); + } else { + res.getDerivedFromUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_derivedFromUri")) { @@ -4606,7 +4762,11 @@ public class JsonParser extends JsonParserBase { if (json.has("partOf")) { JsonArray array = json.getAsJsonArray("partOf"); for (int i = 0; i < array.size(); i++) { - res.getPartOf().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPartOf().add(new CanonicalType()); + } else { + res.getPartOf().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_partOf")) { @@ -4621,7 +4781,11 @@ public class JsonParser extends JsonParserBase { if (json.has("replaces")) { JsonArray array = json.getAsJsonArray("replaces"); for (int i = 0; i < array.size(); i++) { - res.getReplaces().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getReplaces().add(new CanonicalType()); + } else { + res.getReplaces().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_replaces")) { @@ -5042,7 +5206,11 @@ public class JsonParser extends JsonParserBase { if (json.has("preAuthRef")) { JsonArray array = json.getAsJsonArray("preAuthRef"); for (int i = 0; i < array.size(); i++) { - res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPreAuthRef().add(new StringType()); + } else { + res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_preAuthRef")) { @@ -5092,7 +5260,11 @@ public class JsonParser extends JsonParserBase { if (json.has("careTeamSequence")) { JsonArray array = json.getAsJsonArray("careTeamSequence"); for (int i = 0; i < array.size(); i++) { - res.getCareTeamSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getCareTeamSequence().add(new PositiveIntType()); + } else { + res.getCareTeamSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_careTeamSequence")) { @@ -5107,7 +5279,11 @@ public class JsonParser extends JsonParserBase { if (json.has("diagnosisSequence")) { JsonArray array = json.getAsJsonArray("diagnosisSequence"); for (int i = 0; i < array.size(); i++) { - res.getDiagnosisSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDiagnosisSequence().add(new PositiveIntType()); + } else { + res.getDiagnosisSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_diagnosisSequence")) { @@ -5122,7 +5298,11 @@ public class JsonParser extends JsonParserBase { if (json.has("procedureSequence")) { JsonArray array = json.getAsJsonArray("procedureSequence"); for (int i = 0; i < array.size(); i++) { - res.getProcedureSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProcedureSequence().add(new PositiveIntType()); + } else { + res.getProcedureSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_procedureSequence")) { @@ -5137,7 +5317,11 @@ public class JsonParser extends JsonParserBase { if (json.has("informationSequence")) { JsonArray array = json.getAsJsonArray("informationSequence"); for (int i = 0; i < array.size(); i++) { - res.getInformationSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInformationSequence().add(new PositiveIntType()); + } else { + res.getInformationSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_informationSequence")) { @@ -5440,7 +5624,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -5501,7 +5689,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -5542,7 +5734,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -5573,7 +5769,11 @@ public class JsonParser extends JsonParserBase { if (json.has("itemSequence")) { JsonArray array = json.getAsJsonArray("itemSequence"); for (int i = 0; i < array.size(); i++) { - res.getItemSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getItemSequence().add(new PositiveIntType()); + } else { + res.getItemSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_itemSequence")) { @@ -5588,7 +5788,11 @@ public class JsonParser extends JsonParserBase { if (json.has("detailSequence")) { JsonArray array = json.getAsJsonArray("detailSequence"); for (int i = 0; i < array.size(); i++) { - res.getDetailSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDetailSequence().add(new PositiveIntType()); + } else { + res.getDetailSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_detailSequence")) { @@ -5603,7 +5807,11 @@ public class JsonParser extends JsonParserBase { if (json.has("subdetailSequence")) { JsonArray array = json.getAsJsonArray("subdetailSequence"); for (int i = 0; i < array.size(); i++) { - res.getSubdetailSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSubdetailSequence().add(new PositiveIntType()); + } else { + res.getSubdetailSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_subdetailSequence")) { @@ -5662,7 +5870,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -5717,7 +5929,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -5772,7 +5988,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -5960,7 +6180,11 @@ public class JsonParser extends JsonParserBase { if (json.has("protocol")) { JsonArray array = json.getAsJsonArray("protocol"); for (int i = 0; i < array.size(); i++) { - res.getProtocol().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProtocol().add(new UriType()); + } else { + res.getProtocol().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_protocol")) { @@ -6191,7 +6415,11 @@ public class JsonParser extends JsonParserBase { if (json.has("operator")) { JsonArray array = json.getAsJsonArray("operator"); for (int i = 0; i < array.size(); i++) { - res.getOperator().add(parseEnumeration(array.get(i).getAsString(), CodeSystem.FilterOperator.NULL, new CodeSystem.FilterOperatorEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getOperator().add(new Enumeration()); + } else { + res.getOperator().add(parseEnumeration(array.get(i).getAsString(), CodeSystem.FilterOperator.NULL, new CodeSystem.FilterOperatorEnumFactory())); + } } }; if (json.has("_operator")) { @@ -6329,7 +6557,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -6344,7 +6576,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -6670,7 +6906,11 @@ public class JsonParser extends JsonParserBase { if (json.has("param")) { JsonArray array = json.getAsJsonArray("param"); for (int i = 0; i < array.size(); i++) { - res.getParam().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getParam().add(new StringType()); + } else { + res.getParam().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_param")) { @@ -7497,7 +7737,11 @@ public class JsonParser extends JsonParserBase { if (json.has("alias")) { JsonArray array = json.getAsJsonArray("alias"); for (int i = 0; i < array.size(); i++) { - res.getAlias().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getAlias().add(new StringType()); + } else { + res.getAlias().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_alias")) { @@ -7667,7 +7911,11 @@ public class JsonParser extends JsonParserBase { if (json.has("number")) { JsonArray array = json.getAsJsonArray("number"); for (int i = 0; i < array.size(); i++) { - res.getNumber().add(parseUnsignedInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNumber().add(new UnsignedIntType()); + } else { + res.getNumber().add(parseUnsignedInt(array.get(i).getAsString())); + } } }; if (json.has("_number")) { @@ -7740,7 +7988,11 @@ public class JsonParser extends JsonParserBase { if (json.has("linkId")) { JsonArray array = json.getAsJsonArray("linkId"); for (int i = 0; i < array.size(); i++) { - res.getLinkId().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLinkId().add(new StringType()); + } else { + res.getLinkId().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_linkId")) { @@ -7755,7 +8007,11 @@ public class JsonParser extends JsonParserBase { if (json.has("securityLabelNumber")) { JsonArray array = json.getAsJsonArray("securityLabelNumber"); for (int i = 0; i < array.size(); i++) { - res.getSecurityLabelNumber().add(parseUnsignedInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSecurityLabelNumber().add(new UnsignedIntType()); + } else { + res.getSecurityLabelNumber().add(parseUnsignedInt(array.get(i).getAsString())); + } } }; if (json.has("_securityLabelNumber")) { @@ -7865,7 +8121,11 @@ public class JsonParser extends JsonParserBase { if (json.has("linkId")) { JsonArray array = json.getAsJsonArray("linkId"); for (int i = 0; i < array.size(); i++) { - res.getLinkId().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLinkId().add(new StringType()); + } else { + res.getLinkId().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_linkId")) { @@ -7886,7 +8146,11 @@ public class JsonParser extends JsonParserBase { if (json.has("securityLabelNumber")) { JsonArray array = json.getAsJsonArray("securityLabelNumber"); for (int i = 0; i < array.size(); i++) { - res.getSecurityLabelNumber().add(parseUnsignedInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSecurityLabelNumber().add(new UnsignedIntType()); + } else { + res.getSecurityLabelNumber().add(parseUnsignedInt(array.get(i).getAsString())); + } } }; if (json.has("_securityLabelNumber")) { @@ -7974,7 +8238,11 @@ public class JsonParser extends JsonParserBase { if (json.has("linkId")) { JsonArray array = json.getAsJsonArray("linkId"); for (int i = 0; i < array.size(); i++) { - res.getLinkId().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLinkId().add(new StringType()); + } else { + res.getLinkId().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_linkId")) { @@ -7989,7 +8257,11 @@ public class JsonParser extends JsonParserBase { if (json.has("securityLabelNumber")) { JsonArray array = json.getAsJsonArray("securityLabelNumber"); for (int i = 0; i < array.size(); i++) { - res.getSecurityLabelNumber().add(parseUnsignedInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSecurityLabelNumber().add(new UnsignedIntType()); + } else { + res.getSecurityLabelNumber().add(parseUnsignedInt(array.get(i).getAsString())); + } } }; if (json.has("_securityLabelNumber")) { @@ -8028,7 +8300,11 @@ public class JsonParser extends JsonParserBase { if (json.has("linkId")) { JsonArray array = json.getAsJsonArray("linkId"); for (int i = 0; i < array.size(); i++) { - res.getLinkId().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLinkId().add(new StringType()); + } else { + res.getLinkId().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_linkId")) { @@ -8047,7 +8323,11 @@ public class JsonParser extends JsonParserBase { if (json.has("contextLinkId")) { JsonArray array = json.getAsJsonArray("contextLinkId"); for (int i = 0; i < array.size(); i++) { - res.getContextLinkId().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getContextLinkId().add(new StringType()); + } else { + res.getContextLinkId().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_contextLinkId")) { @@ -8071,7 +8351,11 @@ public class JsonParser extends JsonParserBase { if (json.has("requesterLinkId")) { JsonArray array = json.getAsJsonArray("requesterLinkId"); for (int i = 0; i < array.size(); i++) { - res.getRequesterLinkId().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getRequesterLinkId().add(new StringType()); + } else { + res.getRequesterLinkId().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_requesterLinkId")) { @@ -8096,7 +8380,11 @@ public class JsonParser extends JsonParserBase { if (json.has("performerLinkId")) { JsonArray array = json.getAsJsonArray("performerLinkId"); for (int i = 0; i < array.size(); i++) { - res.getPerformerLinkId().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPerformerLinkId().add(new StringType()); + } else { + res.getPerformerLinkId().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_performerLinkId")) { @@ -8123,7 +8411,11 @@ public class JsonParser extends JsonParserBase { if (json.has("reason")) { JsonArray array = json.getAsJsonArray("reason"); for (int i = 0; i < array.size(); i++) { - res.getReason().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getReason().add(new StringType()); + } else { + res.getReason().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_reason")) { @@ -8138,7 +8430,11 @@ public class JsonParser extends JsonParserBase { if (json.has("reasonLinkId")) { JsonArray array = json.getAsJsonArray("reasonLinkId"); for (int i = 0; i < array.size(); i++) { - res.getReasonLinkId().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getReasonLinkId().add(new StringType()); + } else { + res.getReasonLinkId().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_reasonLinkId")) { @@ -8159,7 +8455,11 @@ public class JsonParser extends JsonParserBase { if (json.has("securityLabelNumber")) { JsonArray array = json.getAsJsonArray("securityLabelNumber"); for (int i = 0; i < array.size(); i++) { - res.getSecurityLabelNumber().add(parseUnsignedInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSecurityLabelNumber().add(new UnsignedIntType()); + } else { + res.getSecurityLabelNumber().add(parseUnsignedInt(array.get(i).getAsString())); + } } }; if (json.has("_securityLabelNumber")) { @@ -8404,7 +8704,11 @@ public class JsonParser extends JsonParserBase { if (json.has("purpose")) { JsonArray array = json.getAsJsonArray("purpose"); for (int i = 0; i < array.size(); i++) { - res.getPurpose().add(parseEnumeration(array.get(i).getAsString(), CoverageEligibilityRequest.EligibilityRequestPurpose.NULL, new CoverageEligibilityRequest.EligibilityRequestPurposeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getPurpose().add(new Enumeration()); + } else { + res.getPurpose().add(parseEnumeration(array.get(i).getAsString(), CoverageEligibilityRequest.EligibilityRequestPurpose.NULL, new CoverageEligibilityRequest.EligibilityRequestPurposeEnumFactory())); + } } }; if (json.has("_purpose")) { @@ -8504,7 +8808,11 @@ public class JsonParser extends JsonParserBase { if (json.has("supportingInfoSequence")) { JsonArray array = json.getAsJsonArray("supportingInfoSequence"); for (int i = 0; i < array.size(); i++) { - res.getSupportingInfoSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSupportingInfoSequence().add(new PositiveIntType()); + } else { + res.getSupportingInfoSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_supportingInfoSequence")) { @@ -8582,7 +8890,11 @@ public class JsonParser extends JsonParserBase { if (json.has("purpose")) { JsonArray array = json.getAsJsonArray("purpose"); for (int i = 0; i < array.size(); i++) { - res.getPurpose().add(parseEnumeration(array.get(i).getAsString(), CoverageEligibilityResponse.EligibilityResponsePurpose.NULL, new CoverageEligibilityResponse.EligibilityResponsePurposeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getPurpose().add(new Enumeration()); + } else { + res.getPurpose().add(parseEnumeration(array.get(i).getAsString(), CoverageEligibilityResponse.EligibilityResponsePurpose.NULL, new CoverageEligibilityResponse.EligibilityResponsePurposeEnumFactory())); + } } }; if (json.has("_purpose")) { @@ -9126,7 +9438,11 @@ public class JsonParser extends JsonParserBase { if (json.has("version")) { JsonArray array = json.getAsJsonArray("version"); for (int i = 0; i < array.size(); i++) { - res.getVersion().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getVersion().add(new StringType()); + } else { + res.getVersion().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_version")) { @@ -9407,7 +9723,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -9422,7 +9742,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -10518,7 +10842,11 @@ public class JsonParser extends JsonParserBase { if (json.has("payloadMimeType")) { JsonArray array = json.getAsJsonArray("payloadMimeType"); for (int i = 0; i < array.size(); i++) { - res.getPayloadMimeType().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPayloadMimeType().add(new CodeType()); + } else { + res.getPayloadMimeType().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_payloadMimeType")) { @@ -10537,7 +10865,11 @@ public class JsonParser extends JsonParserBase { if (json.has("header")) { JsonArray array = json.getAsJsonArray("header"); for (int i = 0; i < array.size(); i++) { - res.getHeader().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getHeader().add(new StringType()); + } else { + res.getHeader().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_header")) { @@ -11269,7 +11601,11 @@ public class JsonParser extends JsonParserBase { if (json.has("workflow")) { JsonArray array = json.getAsJsonArray("workflow"); for (int i = 0; i < array.size(); i++) { - res.getWorkflow().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getWorkflow().add(new CanonicalType()); + } else { + res.getWorkflow().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_workflow")) { @@ -11590,7 +11926,11 @@ public class JsonParser extends JsonParserBase { if (json.has("preAuthRef")) { JsonArray array = json.getAsJsonArray("preAuthRef"); for (int i = 0; i < array.size(); i++) { - res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPreAuthRef().add(new StringType()); + } else { + res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_preAuthRef")) { @@ -11847,7 +12187,11 @@ public class JsonParser extends JsonParserBase { if (json.has("preAuthRef")) { JsonArray array = json.getAsJsonArray("preAuthRef"); for (int i = 0; i < array.size(); i++) { - res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPreAuthRef().add(new StringType()); + } else { + res.getPreAuthRef().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_preAuthRef")) { @@ -11895,7 +12239,11 @@ public class JsonParser extends JsonParserBase { if (json.has("careTeamSequence")) { JsonArray array = json.getAsJsonArray("careTeamSequence"); for (int i = 0; i < array.size(); i++) { - res.getCareTeamSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getCareTeamSequence().add(new PositiveIntType()); + } else { + res.getCareTeamSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_careTeamSequence")) { @@ -11910,7 +12258,11 @@ public class JsonParser extends JsonParserBase { if (json.has("diagnosisSequence")) { JsonArray array = json.getAsJsonArray("diagnosisSequence"); for (int i = 0; i < array.size(); i++) { - res.getDiagnosisSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDiagnosisSequence().add(new PositiveIntType()); + } else { + res.getDiagnosisSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_diagnosisSequence")) { @@ -11925,7 +12277,11 @@ public class JsonParser extends JsonParserBase { if (json.has("procedureSequence")) { JsonArray array = json.getAsJsonArray("procedureSequence"); for (int i = 0; i < array.size(); i++) { - res.getProcedureSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProcedureSequence().add(new PositiveIntType()); + } else { + res.getProcedureSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_procedureSequence")) { @@ -11940,7 +12296,11 @@ public class JsonParser extends JsonParserBase { if (json.has("informationSequence")) { JsonArray array = json.getAsJsonArray("informationSequence"); for (int i = 0; i < array.size(); i++) { - res.getInformationSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInformationSequence().add(new PositiveIntType()); + } else { + res.getInformationSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_informationSequence")) { @@ -12009,7 +12369,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -12104,7 +12468,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -12179,7 +12547,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -12210,7 +12582,11 @@ public class JsonParser extends JsonParserBase { if (json.has("itemSequence")) { JsonArray array = json.getAsJsonArray("itemSequence"); for (int i = 0; i < array.size(); i++) { - res.getItemSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getItemSequence().add(new PositiveIntType()); + } else { + res.getItemSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_itemSequence")) { @@ -12225,7 +12601,11 @@ public class JsonParser extends JsonParserBase { if (json.has("detailSequence")) { JsonArray array = json.getAsJsonArray("detailSequence"); for (int i = 0; i < array.size(); i++) { - res.getDetailSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDetailSequence().add(new PositiveIntType()); + } else { + res.getDetailSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_detailSequence")) { @@ -12240,7 +12620,11 @@ public class JsonParser extends JsonParserBase { if (json.has("subDetailSequence")) { JsonArray array = json.getAsJsonArray("subDetailSequence"); for (int i = 0; i < array.size(); i++) { - res.getSubDetailSequence().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSubDetailSequence().add(new PositiveIntType()); + } else { + res.getSubDetailSequence().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_subDetailSequence")) { @@ -12299,7 +12683,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -12354,7 +12742,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -12409,7 +12801,11 @@ public class JsonParser extends JsonParserBase { if (json.has("noteNumber")) { JsonArray array = json.getAsJsonArray("noteNumber"); for (int i = 0; i < array.size(); i++) { - res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getNoteNumber().add(new PositiveIntType()); + } else { + res.getNoteNumber().add(parsePositiveInt(array.get(i).getAsString())); + } } }; if (json.has("_noteNumber")) { @@ -12562,7 +12958,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -12577,7 +12977,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -13305,7 +13709,11 @@ public class JsonParser extends JsonParserBase { if (json.has("daysOfWeek")) { JsonArray array = json.getAsJsonArray("daysOfWeek"); for (int i = 0; i < array.size(); i++) { - res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), HealthcareService.DaysOfWeek.NULL, new HealthcareService.DaysOfWeekEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getDaysOfWeek().add(new Enumeration()); + } else { + res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), HealthcareService.DaysOfWeek.NULL, new HealthcareService.DaysOfWeekEnumFactory())); + } } }; if (json.has("_daysOfWeek")) { @@ -13993,7 +14401,11 @@ public class JsonParser extends JsonParserBase { if (json.has("fhirVersion")) { JsonArray array = json.getAsJsonArray("fhirVersion"); for (int i = 0; i < array.size(); i++) { - res.getFhirVersion().add(parseEnumeration(array.get(i).getAsString(), Enumerations.FHIRVersion.NULL, new Enumerations.FHIRVersionEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getFhirVersion().add(new Enumeration()); + } else { + res.getFhirVersion().add(parseEnumeration(array.get(i).getAsString(), Enumerations.FHIRVersion.NULL, new Enumerations.FHIRVersionEnumFactory())); + } } }; if (json.has("_fhirVersion")) { @@ -14130,7 +14542,11 @@ public class JsonParser extends JsonParserBase { if (json.has("fhirVersion")) { JsonArray array = json.getAsJsonArray("fhirVersion"); for (int i = 0; i < array.size(); i++) { - res.getFhirVersion().add(parseEnumeration(array.get(i).getAsString(), Enumerations.FHIRVersion.NULL, new Enumerations.FHIRVersionEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getFhirVersion().add(new Enumeration()); + } else { + res.getFhirVersion().add(parseEnumeration(array.get(i).getAsString(), Enumerations.FHIRVersion.NULL, new Enumerations.FHIRVersionEnumFactory())); + } } }; if (json.has("_fhirVersion")) { @@ -14253,7 +14669,11 @@ public class JsonParser extends JsonParserBase { if (json.has("image")) { JsonArray array = json.getAsJsonArray("image"); for (int i = 0; i < array.size(); i++) { - res.getImage().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getImage().add(new StringType()); + } else { + res.getImage().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_image")) { @@ -14268,7 +14688,11 @@ public class JsonParser extends JsonParserBase { if (json.has("other")) { JsonArray array = json.getAsJsonArray("other"); for (int i = 0; i < array.size(); i++) { - res.getOther().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getOther().add(new StringType()); + } else { + res.getOther().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_other")) { @@ -14320,7 +14744,11 @@ public class JsonParser extends JsonParserBase { if (json.has("anchor")) { JsonArray array = json.getAsJsonArray("anchor"); for (int i = 0; i < array.size(); i++) { - res.getAnchor().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getAnchor().add(new StringType()); + } else { + res.getAnchor().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_anchor")) { @@ -14365,7 +14793,11 @@ public class JsonParser extends JsonParserBase { if (json.has("alias")) { JsonArray array = json.getAsJsonArray("alias"); for (int i = 0; i < array.size(); i++) { - res.getAlias().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getAlias().add(new StringType()); + } else { + res.getAlias().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_alias")) { @@ -15052,7 +15484,11 @@ public class JsonParser extends JsonParserBase { if (json.has("alias")) { JsonArray array = json.getAsJsonArray("alias"); for (int i = 0; i < array.size(); i++) { - res.getAlias().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getAlias().add(new StringType()); + } else { + res.getAlias().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_alias")) { @@ -15145,7 +15581,11 @@ public class JsonParser extends JsonParserBase { if (json.has("daysOfWeek")) { JsonArray array = json.getAsJsonArray("daysOfWeek"); for (int i = 0; i < array.size(); i++) { - res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), Location.DaysOfWeek.NULL, new Location.DaysOfWeekEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getDaysOfWeek().add(new Enumeration()); + } else { + res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), Location.DaysOfWeek.NULL, new Location.DaysOfWeekEnumFactory())); + } } }; if (json.has("_daysOfWeek")) { @@ -15307,7 +15747,11 @@ public class JsonParser extends JsonParserBase { if (json.has("library")) { JsonArray array = json.getAsJsonArray("library"); for (int i = 0; i < array.size(); i++) { - res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLibrary().add(new CanonicalType()); + } else { + res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_library")) { @@ -15354,7 +15798,11 @@ public class JsonParser extends JsonParserBase { if (json.has("definition")) { JsonArray array = json.getAsJsonArray("definition"); for (int i = 0; i < array.size(); i++) { - res.getDefinition().add(parseMarkdown(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDefinition().add(new MarkdownType()); + } else { + res.getDefinition().add(parseMarkdown(array.get(i).getAsString())); + } } }; if (json.has("_definition")) { @@ -15851,7 +16299,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiates")) { JsonArray array = json.getAsJsonArray("instantiates"); for (int i = 0; i < array.size(); i++) { - res.getInstantiates().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiates().add(new UriType()); + } else { + res.getInstantiates().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiates")) { @@ -16149,7 +16601,11 @@ public class JsonParser extends JsonParserBase { if (json.has("synonym")) { JsonArray array = json.getAsJsonArray("synonym"); for (int i = 0; i < array.size(); i++) { - res.getSynonym().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSynonym().add(new StringType()); + } else { + res.getSynonym().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_synonym")) { @@ -16395,7 +16851,11 @@ public class JsonParser extends JsonParserBase { if (json.has("value")) { JsonArray array = json.getAsJsonArray("value"); for (int i = 0; i < array.size(); i++) { - res.getValue().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getValue().add(new StringType()); + } else { + res.getValue().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_value")) { @@ -16629,7 +17089,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -16644,7 +17108,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -16872,7 +17340,11 @@ public class JsonParser extends JsonParserBase { if (json.has("specialMeasures")) { JsonArray array = json.getAsJsonArray("specialMeasures"); for (int i = 0; i < array.size(); i++) { - res.getSpecialMeasures().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSpecialMeasures().add(new StringType()); + } else { + res.getSpecialMeasures().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_specialMeasures")) { @@ -17852,7 +18324,11 @@ public class JsonParser extends JsonParserBase { if (json.has("replaces")) { JsonArray array = json.getAsJsonArray("replaces"); for (int i = 0; i < array.size(); i++) { - res.getReplaces().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getReplaces().add(new CanonicalType()); + } else { + res.getReplaces().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_replaces")) { @@ -17917,7 +18393,11 @@ public class JsonParser extends JsonParserBase { if (json.has("parent")) { JsonArray array = json.getAsJsonArray("parent"); for (int i = 0; i < array.size(); i++) { - res.getParent().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getParent().add(new CanonicalType()); + } else { + res.getParent().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_parent")) { @@ -17955,7 +18435,11 @@ public class JsonParser extends JsonParserBase { if (json.has("graph")) { JsonArray array = json.getAsJsonArray("graph"); for (int i = 0; i < array.size(); i++) { - res.getGraph().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getGraph().add(new CanonicalType()); + } else { + res.getGraph().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_graph")) { @@ -18345,7 +18829,11 @@ public class JsonParser extends JsonParserBase { if (json.has("score")) { JsonArray array = json.getAsJsonArray("score"); for (int i = 0; i < array.size(); i++) { - res.getScore().add(parseInteger(array.get(i).getAsLong())); + if (array.get(i).isJsonNull()) { + res.getScore().add(new IntegerType()); + } else { + res.getScore().add(parseInteger(array.get(i).getAsLong())); + } } }; if (json.has("_score")) { @@ -18360,7 +18848,11 @@ public class JsonParser extends JsonParserBase { if (json.has("numTP")) { JsonArray array = json.getAsJsonArray("numTP"); for (int i = 0; i < array.size(); i++) { - res.getNumTP().add(parseInteger(array.get(i).getAsLong())); + if (array.get(i).isJsonNull()) { + res.getNumTP().add(new IntegerType()); + } else { + res.getNumTP().add(parseInteger(array.get(i).getAsLong())); + } } }; if (json.has("_numTP")) { @@ -18375,7 +18867,11 @@ public class JsonParser extends JsonParserBase { if (json.has("numFP")) { JsonArray array = json.getAsJsonArray("numFP"); for (int i = 0; i < array.size(); i++) { - res.getNumFP().add(parseInteger(array.get(i).getAsLong())); + if (array.get(i).isJsonNull()) { + res.getNumFP().add(new IntegerType()); + } else { + res.getNumFP().add(parseInteger(array.get(i).getAsLong())); + } } }; if (json.has("_numFP")) { @@ -18390,7 +18886,11 @@ public class JsonParser extends JsonParserBase { if (json.has("numFN")) { JsonArray array = json.getAsJsonArray("numFN"); for (int i = 0; i < array.size(); i++) { - res.getNumFN().add(parseInteger(array.get(i).getAsLong())); + if (array.get(i).isJsonNull()) { + res.getNumFN().add(new IntegerType()); + } else { + res.getNumFN().add(parseInteger(array.get(i).getAsLong())); + } } }; if (json.has("_numFN")) { @@ -18405,7 +18905,11 @@ public class JsonParser extends JsonParserBase { if (json.has("precision")) { JsonArray array = json.getAsJsonArray("precision"); for (int i = 0; i < array.size(); i++) { - res.getPrecision().add(parseDecimal(array.get(i).getAsBigDecimal())); + if (array.get(i).isJsonNull()) { + res.getPrecision().add(new DecimalType()); + } else { + res.getPrecision().add(parseDecimal(array.get(i).getAsBigDecimal())); + } } }; if (json.has("_precision")) { @@ -18420,7 +18924,11 @@ public class JsonParser extends JsonParserBase { if (json.has("sensitivity")) { JsonArray array = json.getAsJsonArray("sensitivity"); for (int i = 0; i < array.size(); i++) { - res.getSensitivity().add(parseDecimal(array.get(i).getAsBigDecimal())); + if (array.get(i).isJsonNull()) { + res.getSensitivity().add(new DecimalType()); + } else { + res.getSensitivity().add(parseDecimal(array.get(i).getAsBigDecimal())); + } } }; if (json.has("_sensitivity")) { @@ -18435,7 +18943,11 @@ public class JsonParser extends JsonParserBase { if (json.has("fMeasure")) { JsonArray array = json.getAsJsonArray("fMeasure"); for (int i = 0; i < array.size(); i++) { - res.getFMeasure().add(parseDecimal(array.get(i).getAsBigDecimal())); + if (array.get(i).isJsonNull()) { + res.getFMeasure().add(new DecimalType()); + } else { + res.getFMeasure().add(parseDecimal(array.get(i).getAsBigDecimal())); + } } }; if (json.has("_fMeasure")) { @@ -18656,7 +19168,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -18671,7 +19187,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -18686,7 +19206,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiates")) { JsonArray array = json.getAsJsonArray("instantiates"); for (int i = 0; i < array.size(); i++) { - res.getInstantiates().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiates().add(new UriType()); + } else { + res.getInstantiates().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiates")) { @@ -19101,7 +19625,11 @@ public class JsonParser extends JsonParserBase { if (json.has("permittedDataType")) { JsonArray array = json.getAsJsonArray("permittedDataType"); for (int i = 0; i < array.size(); i++) { - res.getPermittedDataType().add(parseEnumeration(array.get(i).getAsString(), ObservationDefinition.ObservationDataType.NULL, new ObservationDefinition.ObservationDataTypeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getPermittedDataType().add(new Enumeration()); + } else { + res.getPermittedDataType().add(parseEnumeration(array.get(i).getAsString(), ObservationDefinition.ObservationDataType.NULL, new ObservationDefinition.ObservationDataTypeEnumFactory())); + } } }; if (json.has("_permittedDataType")) { @@ -19288,7 +19816,11 @@ public class JsonParser extends JsonParserBase { if (json.has("resource")) { JsonArray array = json.getAsJsonArray("resource"); for (int i = 0; i < array.size(); i++) { - res.getResource().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getResource().add(new CodeType()); + } else { + res.getResource().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_resource")) { @@ -19369,7 +19901,11 @@ public class JsonParser extends JsonParserBase { if (json.has("targetProfile")) { JsonArray array = json.getAsJsonArray("targetProfile"); for (int i = 0; i < array.size(); i++) { - res.getTargetProfile().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getTargetProfile().add(new CanonicalType()); + } else { + res.getTargetProfile().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_targetProfile")) { @@ -19448,7 +19984,11 @@ public class JsonParser extends JsonParserBase { if (json.has("parameterName")) { JsonArray array = json.getAsJsonArray("parameterName"); for (int i = 0; i < array.size(); i++) { - res.getParameterName().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getParameterName().add(new StringType()); + } else { + res.getParameterName().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_parameterName")) { @@ -19507,7 +20047,11 @@ public class JsonParser extends JsonParserBase { if (json.has("location")) { JsonArray array = json.getAsJsonArray("location"); for (int i = 0; i < array.size(); i++) { - res.getLocation().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLocation().add(new StringType()); + } else { + res.getLocation().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_location")) { @@ -19522,7 +20066,11 @@ public class JsonParser extends JsonParserBase { if (json.has("expression")) { JsonArray array = json.getAsJsonArray("expression"); for (int i = 0; i < array.size(); i++) { - res.getExpression().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getExpression().add(new StringType()); + } else { + res.getExpression().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_expression")) { @@ -19567,7 +20115,11 @@ public class JsonParser extends JsonParserBase { if (json.has("alias")) { JsonArray array = json.getAsJsonArray("alias"); for (int i = 0; i < array.size(); i++) { - res.getAlias().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getAlias().add(new StringType()); + } else { + res.getAlias().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_alias")) { @@ -20215,7 +20767,11 @@ public class JsonParser extends JsonParserBase { if (json.has("library")) { JsonArray array = json.getAsJsonArray("library"); for (int i = 0; i < array.size(); i++) { - res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLibrary().add(new CanonicalType()); + } else { + res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_library")) { @@ -20343,7 +20899,11 @@ public class JsonParser extends JsonParserBase { if (json.has("goalId")) { JsonArray array = json.getAsJsonArray("goalId"); for (int i = 0; i < array.size(); i++) { - res.getGoalId().add(parseId(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getGoalId().add(new IdType()); + } else { + res.getGoalId().add(parseId(array.get(i).getAsString())); + } } }; if (json.has("_goalId")) { @@ -20684,7 +21244,11 @@ public class JsonParser extends JsonParserBase { if (json.has("daysOfWeek")) { JsonArray array = json.getAsJsonArray("daysOfWeek"); for (int i = 0; i < array.size(); i++) { - res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), PractitionerRole.DaysOfWeek.NULL, new PractitionerRole.DaysOfWeekEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getDaysOfWeek().add(new Enumeration()); + } else { + res.getDaysOfWeek().add(parseEnumeration(array.get(i).getAsString(), PractitionerRole.DaysOfWeek.NULL, new PractitionerRole.DaysOfWeekEnumFactory())); + } } }; if (json.has("_daysOfWeek")) { @@ -20743,7 +21307,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -20758,7 +21326,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -20935,7 +21507,11 @@ public class JsonParser extends JsonParserBase { if (json.has("policy")) { JsonArray array = json.getAsJsonArray("policy"); for (int i = 0; i < array.size(); i++) { - res.getPolicy().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getPolicy().add(new UriType()); + } else { + res.getPolicy().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_policy")) { @@ -21054,7 +21630,11 @@ public class JsonParser extends JsonParserBase { if (json.has("derivedFrom")) { JsonArray array = json.getAsJsonArray("derivedFrom"); for (int i = 0; i < array.size(); i++) { - res.getDerivedFrom().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDerivedFrom().add(new CanonicalType()); + } else { + res.getDerivedFrom().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_derivedFrom")) { @@ -21077,7 +21657,11 @@ public class JsonParser extends JsonParserBase { if (json.has("subjectType")) { JsonArray array = json.getAsJsonArray("subjectType"); for (int i = 0; i < array.size(); i++) { - res.getSubjectType().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getSubjectType().add(new CodeType()); + } else { + res.getSubjectType().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_subjectType")) { @@ -21490,7 +22074,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -21505,7 +22093,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -21781,7 +22373,11 @@ public class JsonParser extends JsonParserBase { if (json.has("comment")) { JsonArray array = json.getAsJsonArray("comment"); for (int i = 0; i < array.size(); i++) { - res.getComment().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getComment().add(new StringType()); + } else { + res.getComment().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_comment")) { @@ -21866,7 +22462,11 @@ public class JsonParser extends JsonParserBase { if (json.has("library")) { JsonArray array = json.getAsJsonArray("library"); for (int i = 0; i < array.size(); i++) { - res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLibrary().add(new CanonicalType()); + } else { + res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_library")) { @@ -21958,7 +22558,11 @@ public class JsonParser extends JsonParserBase { if (json.has("comment")) { JsonArray array = json.getAsJsonArray("comment"); for (int i = 0; i < array.size(); i++) { - res.getComment().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getComment().add(new StringType()); + } else { + res.getComment().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_comment")) { @@ -22043,7 +22647,11 @@ public class JsonParser extends JsonParserBase { if (json.has("library")) { JsonArray array = json.getAsJsonArray("library"); for (int i = 0; i < array.size(); i++) { - res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLibrary().add(new CanonicalType()); + } else { + res.getLibrary().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_library")) { @@ -22818,7 +23426,11 @@ public class JsonParser extends JsonParserBase { if (json.has("base")) { JsonArray array = json.getAsJsonArray("base"); for (int i = 0; i < array.size(); i++) { - res.getBase().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getBase().add(new CodeType()); + } else { + res.getBase().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_base")) { @@ -22849,7 +23461,11 @@ public class JsonParser extends JsonParserBase { if (json.has("target")) { JsonArray array = json.getAsJsonArray("target"); for (int i = 0; i < array.size(); i++) { - res.getTarget().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getTarget().add(new CodeType()); + } else { + res.getTarget().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_target")) { @@ -22872,7 +23488,11 @@ public class JsonParser extends JsonParserBase { if (json.has("comparator")) { JsonArray array = json.getAsJsonArray("comparator"); for (int i = 0; i < array.size(); i++) { - res.getComparator().add(parseEnumeration(array.get(i).getAsString(), SearchParameter.SearchComparator.NULL, new SearchParameter.SearchComparatorEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getComparator().add(new Enumeration()); + } else { + res.getComparator().add(parseEnumeration(array.get(i).getAsString(), SearchParameter.SearchComparator.NULL, new SearchParameter.SearchComparatorEnumFactory())); + } } }; if (json.has("_comparator")) { @@ -22887,7 +23507,11 @@ public class JsonParser extends JsonParserBase { if (json.has("modifier")) { JsonArray array = json.getAsJsonArray("modifier"); for (int i = 0; i < array.size(); i++) { - res.getModifier().add(parseEnumeration(array.get(i).getAsString(), SearchParameter.SearchModifierCode.NULL, new SearchParameter.SearchModifierCodeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getModifier().add(new Enumeration()); + } else { + res.getModifier().add(parseEnumeration(array.get(i).getAsString(), SearchParameter.SearchModifierCode.NULL, new SearchParameter.SearchModifierCodeEnumFactory())); + } } }; if (json.has("_modifier")) { @@ -22902,7 +23526,11 @@ public class JsonParser extends JsonParserBase { if (json.has("chain")) { JsonArray array = json.getAsJsonArray("chain"); for (int i = 0; i < array.size(); i++) { - res.getChain().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getChain().add(new StringType()); + } else { + res.getChain().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_chain")) { @@ -22957,7 +23585,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesCanonical")) { JsonArray array = json.getAsJsonArray("instantiatesCanonical"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesCanonical().add(new CanonicalType()); + } else { + res.getInstantiatesCanonical().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesCanonical")) { @@ -22972,7 +23604,11 @@ public class JsonParser extends JsonParserBase { if (json.has("instantiatesUri")) { JsonArray array = json.getAsJsonArray("instantiatesUri"); for (int i = 0; i < array.size(); i++) { - res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getInstantiatesUri().add(new UriType()); + } else { + res.getInstantiatesUri().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_instantiatesUri")) { @@ -23580,7 +24216,11 @@ public class JsonParser extends JsonParserBase { if (json.has("contextInvariant")) { JsonArray array = json.getAsJsonArray("contextInvariant"); for (int i = 0; i < array.size(); i++) { - res.getContextInvariant().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getContextInvariant().add(new StringType()); + } else { + res.getContextInvariant().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_contextInvariant")) { @@ -23771,7 +24411,11 @@ public class JsonParser extends JsonParserBase { if (json.has("import")) { JsonArray array = json.getAsJsonArray("import"); for (int i = 0; i < array.size(); i++) { - res.getImport().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getImport().add(new CanonicalType()); + } else { + res.getImport().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_import")) { @@ -24003,7 +24647,11 @@ public class JsonParser extends JsonParserBase { if (json.has("listMode")) { JsonArray array = json.getAsJsonArray("listMode"); for (int i = 0; i < array.size(); i++) { - res.getListMode().add(parseEnumeration(array.get(i).getAsString(), StructureMap.StructureMapTargetListMode.NULL, new StructureMap.StructureMapTargetListModeEnumFactory())); + if (array.get(i).isJsonNull()) { + res.getListMode().add(new Enumeration()); + } else { + res.getListMode().add(parseEnumeration(array.get(i).getAsString(), StructureMap.StructureMapTargetListMode.NULL, new StructureMap.StructureMapTargetListModeEnumFactory())); + } } }; if (json.has("_listMode")) { @@ -24059,7 +24707,11 @@ public class JsonParser extends JsonParserBase { if (json.has("variable")) { JsonArray array = json.getAsJsonArray("variable"); for (int i = 0; i < array.size(); i++) { - res.getVariable().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getVariable().add(new StringType()); + } else { + res.getVariable().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_variable")) { @@ -24134,7 +24786,11 @@ public class JsonParser extends JsonParserBase { if (json.has("header")) { JsonArray array = json.getAsJsonArray("header"); for (int i = 0; i < array.size(); i++) { - res.getHeader().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getHeader().add(new StringType()); + } else { + res.getHeader().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_header")) { @@ -24358,7 +25014,11 @@ public class JsonParser extends JsonParserBase { if (json.has("modification")) { JsonArray array = json.getAsJsonArray("modification"); for (int i = 0; i < array.size(); i++) { - res.getModification().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getModification().add(new StringType()); + } else { + res.getModification().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_modification")) { @@ -24527,7 +25187,11 @@ public class JsonParser extends JsonParserBase { if (json.has("disulfideLinkage")) { JsonArray array = json.getAsJsonArray("disulfideLinkage"); for (int i = 0; i < array.size(); i++) { - res.getDisulfideLinkage().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getDisulfideLinkage().add(new StringType()); + } else { + res.getDisulfideLinkage().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_disulfideLinkage")) { @@ -24747,7 +25411,11 @@ public class JsonParser extends JsonParserBase { if (json.has("parentSubstanceName")) { JsonArray array = json.getAsJsonArray("parentSubstanceName"); for (int i = 0; i < array.size(); i++) { - res.getParentSubstanceName().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getParentSubstanceName().add(new StringType()); + } else { + res.getParentSubstanceName().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_parentSubstanceName")) { @@ -24768,7 +25436,11 @@ public class JsonParser extends JsonParserBase { if (json.has("geographicalLocation")) { JsonArray array = json.getAsJsonArray("geographicalLocation"); for (int i = 0; i < array.size(); i++) { - res.getGeographicalLocation().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getGeographicalLocation().add(new StringType()); + } else { + res.getGeographicalLocation().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_geographicalLocation")) { @@ -25803,7 +26475,11 @@ public class JsonParser extends JsonParserBase { if (json.has("language")) { JsonArray array = json.getAsJsonArray("language"); for (int i = 0; i < array.size(); i++) { - res.getLanguage().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLanguage().add(new CodeType()); + } else { + res.getLanguage().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_language")) { @@ -25824,7 +26500,11 @@ public class JsonParser extends JsonParserBase { if (json.has("property")) { JsonArray array = json.getAsJsonArray("property"); for (int i = 0; i < array.size(); i++) { - res.getProperty().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getProperty().add(new CodeType()); + } else { + res.getProperty().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_property")) { @@ -25853,7 +26533,11 @@ public class JsonParser extends JsonParserBase { if (json.has("op")) { JsonArray array = json.getAsJsonArray("op"); for (int i = 0; i < array.size(); i++) { - res.getOp().add(parseCode(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getOp().add(new CodeType()); + } else { + res.getOp().add(parseCode(array.get(i).getAsString())); + } } }; if (json.has("_op")) { @@ -26386,7 +27070,11 @@ public class JsonParser extends JsonParserBase { if (json.has("origin")) { JsonArray array = json.getAsJsonArray("origin"); for (int i = 0; i < array.size(); i++) { - res.getOrigin().add(parseInteger(array.get(i).getAsLong())); + if (array.get(i).isJsonNull()) { + res.getOrigin().add(new IntegerType()); + } else { + res.getOrigin().add(parseInteger(array.get(i).getAsLong())); + } } }; if (json.has("_origin")) { @@ -26405,7 +27093,11 @@ public class JsonParser extends JsonParserBase { if (json.has("link")) { JsonArray array = json.getAsJsonArray("link"); for (int i = 0; i < array.size(); i++) { - res.getLink().add(parseUri(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getLink().add(new UriType()); + } else { + res.getLink().add(parseUri(array.get(i).getAsString())); + } } }; if (json.has("_link")) { @@ -26922,7 +27614,11 @@ public class JsonParser extends JsonParserBase { if (json.has("valueSet")) { JsonArray array = json.getAsJsonArray("valueSet"); for (int i = 0; i < array.size(); i++) { - res.getValueSet().add(parseCanonical(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getValueSet().add(new CanonicalType()); + } else { + res.getValueSet().add(parseCanonical(array.get(i).getAsString())); + } } }; if (json.has("_valueSet")) { @@ -27120,7 +27816,11 @@ public class JsonParser extends JsonParserBase { if (json.has("targetLocation")) { JsonArray array = json.getAsJsonArray("targetLocation"); for (int i = 0; i < array.size(); i++) { - res.getTargetLocation().add(parseString(array.get(i).getAsString())); + if (array.get(i).isJsonNull()) { + res.getTargetLocation().add(new StringType()); + } else { + res.getTargetLocation().add(parseString(array.get(i).getAsString())); + } } }; if (json.has("_targetLocation")) { diff --git a/org.hl7.fhir.r5/pom.xml b/org.hl7.fhir.r5/pom.xml index c043889a7..3b7d2f38f 100644 --- a/org.hl7.fhir.r5/pom.xml +++ b/org.hl7.fhir.r5/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/CanonicalResourceManager.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/CanonicalResourceManager.java index 52ab706fb..bc93b942e 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/CanonicalResourceManager.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/CanonicalResourceManager.java @@ -227,6 +227,11 @@ public class CanonicalResourceManager { drop(n.getId()); } } + CachedCanonicalResource existing = cr.hasVersion() ? map.get(cr.getUrl()+"|"+cr.getVersion()) : map.get(cr.getUrl()+"|#0"); + if (existing != null) { + list.remove(existing); + } + list.add(cr); map.put(cr.getId(), cr); // we do this so we can drop by id @@ -234,6 +239,8 @@ public class CanonicalResourceManager { // first, this is the correct reosurce for this version (if it has a version) if (cr.hasVersion()) { map.put(cr.getUrl()+"|"+cr.getVersion(), cr); + } else { + map.put(cr.getUrl()+"|#0", cr); } updateList(cr.getUrl(), cr.getVersion()); } diff --git a/org.hl7.fhir.report/pom.xml b/org.hl7.fhir.report/pom.xml index 1f444d90f..5d5416da1 100644 --- a/org.hl7.fhir.report/pom.xml +++ b/org.hl7.fhir.report/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.utilities/pom.xml b/org.hl7.fhir.utilities/pom.xml index 766648535..b72eb5171 100644 --- a/org.hl7.fhir.utilities/pom.xml +++ b/org.hl7.fhir.utilities/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/cache/FilesystemPackageCacheManager.java b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/cache/FilesystemPackageCacheManager.java index 45fd24e84..9ee07dd02 100644 --- a/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/cache/FilesystemPackageCacheManager.java +++ b/org.hl7.fhir.utilities/src/main/java/org/hl7/fhir/utilities/cache/FilesystemPackageCacheManager.java @@ -90,6 +90,7 @@ public class FilesystemPackageCacheManager extends BasePackageCacheManager imple // private static final String SECONDARY_SERVER = "http://local.fhir.org:960/packages"; public static final String PACKAGE_REGEX = "^[a-z][a-z0-9\\_\\-]*(\\.[a-z0-9\\_\\-]+)+$"; public static final String PACKAGE_VERSION_REGEX = "^[a-z][a-z0-9\\_\\-]*(\\.[a-z0-9\\_\\-]+)+\\#[a-z0-9\\-\\_]+(\\.[a-z0-9\\-\\_]+)*$"; + public static final String PACKAGE_VERSION_REGEX_OPT = "^[a-z][a-z0-9\\_\\-]*(\\.[a-z0-9\\_\\-]+)+(\\#[a-z0-9\\-\\_]+(\\.[a-z0-9\\-\\_]+)*)$"; private static final Logger ourLog = LoggerFactory.getLogger(FilesystemPackageCacheManager.class); private static final String CACHE_VERSION = "3"; // second version - see wiki page private String cacheFolder; diff --git a/org.hl7.fhir.utilities/src/main/resources/Messages.properties b/org.hl7.fhir.utilities/src/main/resources/Messages.properties index a7b5fc594..c8837a180 100644 --- a/org.hl7.fhir.utilities/src/main/resources/Messages.properties +++ b/org.hl7.fhir.utilities/src/main/resources/Messages.properties @@ -1,26 +1,26 @@ #InstanceValidator -Bad_file_path_error = \n********************\n* The file name you passed in, '{0}', doesn't exist on the local filesystem.\n* Please verify that this is valid file location.\n********************\n\n +Bad_file_path_error = \n********************\n* The file name you passed in, ''{0}'', doesn''t exist on the local filesystem.\n* Please verify that this is valid file location.\n********************\n\n Bundle_BUNDLE_Entry_Canonical = The canonical URL ({0}) cannot match the fullUrl ({1}) unless on the canonical server itself Bundle_BUNDLE_Entry_Document = The first entry in a document must be a composition -Bundle_BUNDLE_Entry_IdUrlMismatch = Resource ID does not match the ID in the entry full URL ('{0}' vs '{1}') +Bundle_BUNDLE_Entry_IdUrlMismatch = Resource ID does not match the ID in the entry full URL (''{0}'' vs ''{1}'') Bundle_BUNDLE_Entry_MismatchIdUrl = The canonical URL ({0}) cannot match the fullUrl ({1}) unless the resource id ({2}) also matches Bundle_BUNDLE_Entry_NoFirst = Documents or Messages must contain at least one entry Bundle_BUNDLE_Entry_NoFirstResource = No resource on first entry Bundle_BUNDLE_Entry_NoFullUrl = Bundle entry missing fullUrl -Bundle_BUNDLE_Entry_NoProfile = No profile found for contained resource of type '{0}' -Bundle_BUNDLE_Entry_NotFound = Can''t find '{0}' in the bundle ({1}) +Bundle_BUNDLE_Entry_NoProfile = No profile found for contained resource of type ''{0}'' +Bundle_BUNDLE_Entry_NotFound = Can''t find ''{0}'' in the bundle ({1}) Bundle_BUNDLE_Entry_Orphan = Entry {0} isn''t reachable by traversing from first Bundle entry -Bundle_BUNDLE_Entry_Type = The type '{0}' is not valid - no resources allowed here -Bundle_BUNDLE_Entry_Type2 = The type '{0}' is not valid - must be {1} -Bundle_BUNDLE_Entry_Type3 = The type '{0}' is not valid - must be one of {1} +Bundle_BUNDLE_Entry_Type = The type ''{0}'' is not valid - no resources allowed here +Bundle_BUNDLE_Entry_Type2 = The type ''{0}'' is not valid - must be {1} +Bundle_BUNDLE_Entry_Type3 = The type ''{0}'' is not valid - must be one of {1} Bundle_BUNDLE_FullUrl_Missing = Relative Reference appears inside Bundle whose entry is missing a fullUrl Bundle_BUNDLE_FullUrl_NeedVersion = Entries matching fullURL {0} should declare meta/versionId because there are version-specific references Bundle_BUNDLE_MultipleMatches = Multiple matches in bundle for reference {0} Bundle_BUNDLE_Not_Local = URN reference is not locally contained within the bundle {0} Bundle_MSG_Event_Count = Expected {0} but found {1} event elements Bundle_Document_Date_Missing = A document must have a date -Bundle_Document_Date_Missing_html = [(type = 'document') implies (meta.lastUpdated.hasValue())] -CapabalityStatement_CS_SP_WrongType = Type mismatch - SearchParameter '{0}' type is {1}, but type here is {2} +Bundle_Document_Date_Missing_html = [(type = ''document'') implies (meta.lastUpdated.hasValue())] +CapabalityStatement_CS_SP_WrongType = Type mismatch - SearchParameter ''{0}'' type is {1}, but type here is {2} CodeSystem_CS_VS_IncludeDetails = CodeSystem {0} has an ''all system'' value set of {1}, but the include has extra details CodeSystem_CS_VS_Invalid = CodeSystem {0} has an ''all system'' value set of {1}, but doesn''t have a single include CodeSystem_CS_VS_MisMatch = CodeSystem {0} has an ''all system'' value set of {1}, but it is an expansion @@ -31,19 +31,19 @@ Extension_EXT_Count_NotFound = Extension count mismatch: unable to find extensio Extension_EXT_Fixed_Banned = No extensions allowed, as the specified fixed value doesn''t contain any extensions Extension_EXT_Modifier_MismatchN = Extension modifier mismatch: the extension element is not labelled as a modifier, but the underlying extension is Extension_EXT_Modifier_MismatchY = Extension modifier mismatch: the extension element is labelled as a modifier, but the underlying extension is not -Extension_EXT_Modifier_N = The Extension '{0}' must not be used as an extension (it''s a modifierExtension) -Extension_EXT_Modifier_Y = The Extension '{0}' must be used as a modifierExtension -Extension_EXT_Simple = The Extension '{0}' definition is for a simple extension, so it must contain a value, not extensions -Extension_EXT_SubExtension_Invalid = Sub-extension url '{0}' is not defined by the Extension {1} -Extension_EXT_Type = The Extension '{0}' definition allows for the types {1} but found type {2} +Extension_EXT_Modifier_N = The Extension ''{0}'' must not be used as an extension (it''s a modifierExtension) +Extension_EXT_Modifier_Y = The Extension ''{0}'' must be used as a modifierExtension +Extension_EXT_Simple = The Extension ''{0}'' definition is for a simple extension, so it must contain a value, not extensions +Extension_EXT_SubExtension_Invalid = Sub-extension url ''{0}'' is not defined by the Extension {1} +Extension_EXT_Type = The Extension ''{0}'' definition allows for the types {1} but found type {2} Extension_EXT_URL_Absolute = Extension.url must be an absolute URL Extension_EXT_Unknown = Unknown extension {0} Extension_EXT_Unknown_NotHere = The extension {0} is unknown, and not allowed here Extension_EXT_Url_NotFound = Extension.url is required -Extension_EXT_Version_Internal = Extension url '{0}' evaluation state illegal -Extension_EXT_Version_Invalid = Extension url '{0}' is not valid (invalid Version '{1}') -Extension_EXT_Version_InvalidId = Extension url '{0}' is not valid (invalid Element id '{1}') -Extension_EXT_Version_NoChange = Extension url '{0}' is not valid (Element id '{1}' is valid, but cannot be used in a cross-version paradigm because there has been no changes across the relevant versions) +Extension_EXT_Version_Internal = Extension url ''{0}'' evaluation state illegal +Extension_EXT_Version_Invalid = Extension url ''{0}'' is not valid (invalid Version ''{1}'') +Extension_EXT_Version_InvalidId = Extension url ''{0}'' is not valid (invalid Element id ''{1}'') +Extension_EXT_Version_NoChange = Extension url ''{0}'' is not valid (Element id ''{1}'' is valid, but cannot be used in a cross-version paradigm because there has been no changes across the relevant versions) Fixed_Type_Checks_DT_Address_Line = Expected {0} but found {1} line elements Fixed_Type_Checks_DT_Name_Family = Expected {0} but found {1} family elements Fixed_Type_Checks_DT_Name_Given = Expected {0} but found {1} given elements @@ -57,11 +57,11 @@ Language_XHTML_Lang_Missing2 = Resource has a language, but the XHTML does not h Language_XHTML_Lang_Missing3 = Resource has a language, but the XHTML does not have an xml:lang tag (needs both lang and xml:lang - see https://www.w3.org/TR/i18n-html-tech-lang/#langvalues) Meta_RES_Security_Duplicate = Duplicate Security Label {0} MustSupport_VAL_MustSupport = The element {0} is not marked as ''mustSupport'' in the profile {1}. Consider not using the element, or marking the element as must-Support in the profile -Profile_EXT_Not_Here = The extension {0} is not allowed to be used at this point (based on context invariant '{1}') -Profile_VAL_MissingElement = Missing element '{0}' - required by fixed value assigned in profile {1} +Profile_EXT_Not_Here = The extension {0} is not allowed to be used at this point (based on context invariant ''{1}'') +Profile_VAL_MissingElement = Missing element ''{0}'' - required by fixed value assigned in profile {1} Profile_VAL_NotAllowed = The element {0} is present in the instance but not allowed in the applicable {1} specified in profile Measure_MR_M_None = No Measure is identified, so no validation can be performed against the Measure -Measure_MR_M_NotFound = The Measure '{0}' could not be resolved, so no validation can be performed against the Measure +Measure_MR_M_NotFound = The Measure ''{0}'' could not be resolved, so no validation can be performed against the Measure Questionnaire_QR_Item_BadOption = The value provided ({0}::{1}) is not in the options value set in the questionnaire Questionnaire_QR_Item_Coding = Error {0} validating Coding against Questionnaire Options Questionnaire_QR_Item_CodingNoOptions = Cannot validate Coding option because no option list is provided @@ -70,7 +70,7 @@ Questionnaire_QR_Item_Display = Items not of type DISPLAY should not have items Questionnaire_QR_Item_Group = Items of type group should not have answers Questionnaire_QR_Item_GroupAnswer = Items not of type group should not have items outside answers (use answer.item not .item) Questionnaire_QR_Item_IntNoOptions = Cannot validate integer answer option because no option list is provided -Questionnaire_QR_Item_Missing = No response answer found for required item '{0}' +Questionnaire_QR_Item_Missing = No response answer found for required item ''{0}'' Questionnaire_QR_Item_NoCoding = The code {0}::{1} is not a valid option Questionnaire_QR_Item_NoDate = The date {0} is not a valid option Questionnaire_QR_Item_NoInteger = The integer {0} is not a valid option @@ -85,8 +85,8 @@ Questionnaire_QR_Item_NoString = The string {0} is not a valid option Questionnaire_QR_Item_NoTime = The time {0} is not a valid option Questionnaire_QR_Item_NoType = Definition for item {0} does not contain a type Questionnaire_QR_Item_NotEnabled = Item has answer (2), even though it is not enabled {0} -Questionnaire_QR_Item_NotEnabled2 = Item has answer, even though it is not enabled (item id = '{0}') -Questionnaire_QR_Item_NotFound = LinkId '{0}' not found in questionnaire +Questionnaire_QR_Item_NotEnabled2 = Item has answer, even though it is not enabled (item id = ''{0}'') +Questionnaire_QR_Item_NotFound = LinkId ''{0}'' not found in questionnaire Questionnaire_QR_Item_OnlyOneA = Only one response answer item with this linkId allowed Questionnaire_QR_Item_OnlyOneI = Only one response item with this linkId allowed - {0} Questionnaire_QR_Item_Order = Structural Error: items are out of order @@ -96,19 +96,19 @@ Questionnaire_QR_Item_TimeNoOptions = Cannot validate time answer option because Questionnaire_QR_Item_WrongType = Answer value must be of type {0} Questionnaire_QR_Item_WrongType2 = Answer value must be one of the types {0} Questionnaire_QR_Q_None = No questionnaire is identified, so no validation can be performed against the base questionnaire -Questionnaire_QR_Q_NotFound = The questionnaire '{0}' could not be resolved, so no validation can be performed against the base questionnaire +Questionnaire_QR_Q_NotFound = The questionnaire ''{0}'' could not be resolved, so no validation can be performed against the base questionnaire Questionnaire_Q_EnableWhen_After = The target of this enableWhen rule ({0}) comes after the question itself Questionnaire_Q_EnableWhen_IsInner = Questions with an enableWhen cannot refer to an inner question for it''s enableWhen condition Questionnaire_Q_EnableWhen_NoLink = Questions with an enableWhen must have a value for the question link -Questionnaire_Q_EnableWhen_NoTarget = Unable to find an item with the linkId '{0}' which is referenced in the enableWhen for '{1}' +Questionnaire_Q_EnableWhen_NoTarget = Unable to find an item with the linkId ''{0}'' which is referenced in the enableWhen for ''{1}'' Questionnaire_Q_EnableWhen_Self = Target for this question enableWhen can''t reference itself Reference_REF_Aggregation = Reference is {0} which isn''t supported by the specified aggregation mode(s) for the reference Reference_REF_BadTargetType = Invalid Resource target type. Found {0}, but expected one of ({1}) -Reference_REF_BadTargetType2 = The type '{0}' implied by the reference URL {1} is not a valid Target for this element (must be one of {2}) +Reference_REF_BadTargetType2 = The type ''{0}'' implied by the reference URL {1} is not a valid Target for this element (must be one of {2}) Reference_REF_CantMatchChoice = Unable to find matching profile for {0} among choices: {1} Reference_REF_CantMatchType = Unable to find matching profile for {0} (by type) among choices: {1} -Reference_REF_CantResolve = Unable to resolve resource '{0}' -Reference_REF_CantResolveProfile = Unable to resolve the profile reference '{0}' +Reference_REF_CantResolve = Unable to resolve resource ''{0}'' +Reference_REF_CantResolveProfile = Unable to resolve the profile reference ''{0}'' Reference_REF_Format1 = Relative URLs must be of the format [ResourceName]/[id], or a search URL is allowed ([type]?parameters. Encountered {0}) Reference_REF_Format2 = Relative URLs must be of the format [ResourceName]/[id]. Encountered {0} Reference_REF_MultipleMatches = Found multiple matching profiles for {0} among choices: {1} @@ -116,10 +116,10 @@ Reference_REF_NoDisplay = A Reference without an actual reference or identifier Reference_REF_NoType = Unable to determine type of target resource Reference_REF_NotFound_Bundle = Bundled or contained reference not found within the bundle/resource {0} Reference_REF_ResourceType = Matching reference for reference {0} has resourceType {1} -Reference_REF_WrongTarget = The type '{0}' is not a valid Target for this element (must be one of {1}) +Reference_REF_WrongTarget = The type ''{0}'' is not a valid Target for this element (must be one of {1}) Resource_RES_ID_Missing = Resource requires an id, but none is present Resource_RES_ID_Prohibited = Resource has an id, but none is allowed -Terminology_PassThrough_TX_Message = {0} for '{1}#{2}' +Terminology_PassThrough_TX_Message = {0} for ''{1}#{2}'' Terminology_TX_Binding_CantCheck = Binding by URI reference cannot be checked Terminology_TX_Binding_Missing = Binding for {0} missing (cc) Terminology_TX_Binding_Missing2 = Binding for {0} missing @@ -138,7 +138,7 @@ Terminology_TX_Confirm_3 = Could not confirm that the codes provided are in the Terminology_TX_Confirm_4 = Could not confirm that the codes provided are in the value set {0}, and a code from this value set is required Terminology_TX_Confirm_5 = Could not confirm that the codes provided are in the value set {0}, and a code should come from this value set unless it has no suitable code Terminology_TX_Confirm_6 = Could not confirm that the codes provided are in the value set {0}, and a code is recommended to come from this value set -Terminology_TX_Display_Wrong = Display should be '{0}' +Terminology_TX_Display_Wrong = Display should be ''{0}'' Terminology_TX_Error_CodeableConcept = Error {0} validating CodeableConcept Terminology_TX_Error_CodeableConcept_Max = Error {0} validating CodeableConcept using maxValueSet Terminology_TX_Error_Coding1 = Error {0} validating Coding @@ -149,10 +149,10 @@ Terminology_TX_NoValid_11 = The code provided is not in the maximum value set {0 Terminology_TX_NoValid_12 = The Coding provided is not in the value set {0}, and a code is required from this value set. {1} Terminology_TX_NoValid_13 = The Coding provided ({2}) is not in the value set {0}, and a code should come from this value set unless it has no suitable code. {1} Terminology_TX_NoValid_14 = The Coding provided is not in the value set {0}, and a code is recommended to come from this value set. {1} -Terminology_TX_NoValid_15 = The value provided ('{0}') could not be validated in the absence of a terminology server -Terminology_TX_NoValid_16 = The value provided ('{0}') is not in the value set {1} ({2}), and a code is required from this value set){3} -Terminology_TX_NoValid_17 = The value provided ('{0}') is not in the value set {1} ({2}), and a code should come from this value set unless it has no suitable code){3} -Terminology_TX_NoValid_18 = The value provided ('{0}') is not in the value set {1} ({2}), and a code is recommended to come from this value set){3} +Terminology_TX_NoValid_15 = The value provided (''{0}'') could not be validated in the absence of a terminology server +Terminology_TX_NoValid_16 = The value provided (''{0}'') is not in the value set {1} ({2}), and a code is required from this value set){3} +Terminology_TX_NoValid_17 = The value provided (''{0}'') is not in the value set {1} ({2}), and a code should come from this value set unless it has no suitable code){3} +Terminology_TX_NoValid_18 = The value provided (''{0}'') is not in the value set {1} ({2}), and a code is recommended to come from this value set){3} Terminology_TX_NoValid_2 = None of the codes provided are in the value set {0} ({1}), and a code should come from this value set unless it has no suitable code) (codes = {2}) Terminology_TX_NoValid_3 = None of the codes provided are in the value set {0} ({1}), and a code is recommended to come from this value set) (codes = {2}) Terminology_TX_NoValid_4 = The Coding provided is not in the value set {0}, and a code is required from this value set{1} @@ -162,37 +162,37 @@ Terminology_TX_NoValid_7 = None of the codes provided could be validated against Terminology_TX_NoValid_8 = None of the codes provided are in the maximum value set {0} ({1}), and a code from this value set is required) (codes = {2}) Terminology_TX_NoValid_9 = The code provided could not be validated against the maximum value set {0} ({1}), (error = {2}) Terminology_TX_System_Invalid = Invalid System URI: {0} -Terminology_TX_System_NotKnown = Code System URI '{0}' is unknown so the code cannot be validated +Terminology_TX_System_NotKnown = Code System URI ''{0}'' is unknown so the code cannot be validated Terminology_TX_System_Relative = Coding.system must be an absolute reference, not a local reference -Terminology_TX_System_Unknown = Unknown Code System '{0}' +Terminology_TX_System_Unknown = Unknown Code System ''{0}'' Terminology_TX_System_ValueSet = Invalid System URI: {0} - cannot use a value set URI as a system -Terminology_TX_System_ValueSet2 = The Coding references a value set, not a code system ('{0}') +Terminology_TX_System_ValueSet2 = The Coding references a value set, not a code system (''{0}'') Terminology_TX_ValueSet_NotFound = ValueSet {0} not found by validator Terminology_TX_ValueSet_NotFound2 = ValueSet {0} not found by validator -Type_Specific_Checks_DT_Base64_Valid = The value '{0}' is not a valid Base64 value +Type_Specific_Checks_DT_Base64_Valid = The value ''{0}'' is not a valid Base64 value Type_Specific_Checks_DT_Boolean_Value = boolean values must be ''true'' or ''false'' -Type_Specific_Checks_DT_Code_WS = The code '{0}' is not valid (whitespace rules) -Type_Specific_Checks_DT_DateTime_Reasonable = The value '{0}' is outside the range of reasonable years - check for data entry error -Type_Specific_Checks_DT_DateTime_Regex = The instant '{0}' is not valid (by regex) +Type_Specific_Checks_DT_Code_WS = The code ''{0}'' is not valid (whitespace rules) +Type_Specific_Checks_DT_DateTime_Reasonable = The value ''{0}'' is outside the range of reasonable years - check for data entry error +Type_Specific_Checks_DT_DateTime_Regex = The instant ''{0}'' is not valid (by regex) Type_Specific_Checks_DT_DateTime_TZ = if a date has a time, it must have a timezone Type_Specific_Checks_DT_DateTime_Valid = Not a valid date/time ({0}) Type_Specific_Checks_DT_Date_Valid = Not a valid date ({0}) -Type_Specific_Checks_DT_Decimal_Range = The value '{0}' is outside the range of commonly/reasonably supported decimals -Type_Specific_Checks_DT_Decimal_Valid = The value '{0}' is not a valid decimal -Type_Specific_Checks_DT_ID_Valid = id value '{0}' is not valid +Type_Specific_Checks_DT_Decimal_Range = The value ''{0}'' is outside the range of commonly/reasonably supported decimals +Type_Specific_Checks_DT_Decimal_Valid = The value ''{0}'' is not a valid decimal +Type_Specific_Checks_DT_ID_Valid = id value ''{0}'' is not valid Type_Specific_Checks_DT_Identifier_System = Identifier.system must be an absolute reference, not a local reference Type_Specific_Checks_DT_Instant_Valid = Not a valid instant ({0}) -Type_Specific_Checks_DT_Integer64_Valid = The value '{0}' is not a valid integer64 +Type_Specific_Checks_DT_Integer64_Valid = The value ''{0}'' is not a valid integer64 Type_Specific_Checks_DT_Integer_GT = value is greater than permitted maximum value of {0} Type_Specific_Checks_DT_Integer_LT = value is less than permitted minimum value of {0} Type_Specific_Checks_DT_Integer_LT0 = value is less than permitted minimum value of 0 Type_Specific_Checks_DT_Integer_LT1 = value is less than permitted minimum value of 1 -Type_Specific_Checks_DT_Integer_Valid = The value '{0}' is not a valid integer +Type_Specific_Checks_DT_Integer_Valid = The value ''{0}'' is not a valid integer Type_Specific_Checks_DT_OID_Start = OIDs must start with urn:oid: Type_Specific_Checks_DT_OID_Valid = OIDs must be valid Type_Specific_Checks_DT_Primitive_Length = value is longer than permitted maximum length of {0} Type_Specific_Checks_DT_Primitive_NotEmpty = @value cannot be empty -Type_Specific_Checks_DT_Primitive_Regex = Element value '{0}' does not meet regex '{1}' +Type_Specific_Checks_DT_Primitive_Regex = Element value ''{0}'' does not meet regex ''{1}'' Type_Specific_Checks_DT_Primitive_ValueExt = Primitive types must have a value or must have child extensions Type_Specific_Checks_DT_Primitive_WS = Primitive types should not only be whitespace Type_Specific_Checks_DT_String_Length = value is longer than permitted maximum length of 1 MB (1048576 bytes) @@ -200,8 +200,8 @@ Type_Specific_Checks_DT_String_WS = value should not start or finish with whites Type_Specific_Checks_DT_Time_Valid = Not a valid time ({0}) Type_Specific_Checks_DT_URI_OID = URI values cannot start with oid: Type_Specific_Checks_DT_URI_UUID = URI values cannot start with uuid: -Type_Specific_Checks_DT_URI_WS = URI values cannot have whitespace('{0}') -Type_Specific_Checks_DT_URL_Resolve = URL value '{0}' does not resolve +Type_Specific_Checks_DT_URI_WS = URI values cannot have whitespace(''{0}'') +Type_Specific_Checks_DT_URL_Resolve = URL value ''{0}'' does not resolve Type_Specific_Checks_DT_UUID_Strat = UUIDs must start with urn:uuid: Type_Specific_Checks_DT_UUID_Vaid = UUIDs must be valid ({0}) Validation_BUNDLE_Message = The first entry in a message must be a MessageHeader @@ -212,30 +212,30 @@ Validation_VAL_Profile_Maximum = {0}: max allowed = {1}, but found {2} Validation_VAL_Profile_Minimum = {0}: minimum required = {1}, but only found {2} Validation_VAL_Profile_MultipleMatches = Found multiple matching profiles among choices: {0} Validation_VAL_Profile_NoCheckMax = {0}: Unable to check max allowed ({1}) due to lack of slicing validation -Validation_VAL_Profile_NoCheckMin = {0}': Unable to check minimum required ({1}) due to lack of slicing validation -Validation_VAL_Profile_NoDefinition = No definition found for resource type '{0}' +Validation_VAL_Profile_NoCheckMin = {0}'': Unable to check minimum required ({1}) due to lack of slicing validation +Validation_VAL_Profile_NoDefinition = No definition found for resource type ''{0}'' Validation_VAL_Profile_NoMatch = Unable to find matching profile among choices: {0} Validation_VAL_Profile_NoSnapshot = StructureDefinition has no snapshot - validation is against the snapshot, so it must be provided Validation_VAL_Profile_NoType = The type of element {0} is not known, which is illegal. Valid types at this point are {1} Validation_VAL_Profile_NotAllowed = This element is not allowed by the profile {0} Validation_VAL_Profile_NotSlice = This element does not match any known slice {0} and slicing is CLOSED: {1} -Validation_VAL_Profile_OutOfOrder = As specified by profile {0}, Element '{1}' is out of order -Validation_VAL_Profile_SliceOrder = As specified by profile {0}, Element '{1}' is out of order in ordered slice -Validation_VAL_Profile_Unknown = Profile reference '{0}' could not be resolved, so has not been checked -Validation_VAL_Profile_WrongType = Specified profile type was '{0}', but found type '{1}' +Validation_VAL_Profile_OutOfOrder = As specified by profile {0}, Element ''{1}'' is out of order +Validation_VAL_Profile_SliceOrder = As specified by profile {0}, Element ''{1}'' is out of order in ordered slice +Validation_VAL_Profile_Unknown = Profile reference ''{0}'' could not be resolved, so has not been checked +Validation_VAL_Profile_WrongType = Specified profile type was ''{0}'', but found type ''{1}'' Validation_VAL_Unknown_Profile = Unknown profile {0} -XHTML_XHTML_Attribute_Illegal = Illegal attribute name in the XHTML ('{0}' on '{1}') -XHTML_XHTML_Element_Illegal = Illegal element name in the XHTML ('{0}') -XHTML_XHTML_NS_InValid = Wrong namespace on the XHTML ('{0}', should be '{1}') -XHTML_XHTML_Name_Invalid = Wrong name on the XHTML ('{0}') - must start with div -_DT_Fixed_Wrong = Value is '{0}' but must be '{1}' +XHTML_XHTML_Attribute_Illegal = Illegal attribute name in the XHTML (''{0}'' on ''{1}'') +XHTML_XHTML_Element_Illegal = Illegal element name in the XHTML (''{0}'') +XHTML_XHTML_NS_InValid = Wrong namespace on the XHTML (''{0}'', should be ''{1}'') +XHTML_XHTML_Name_Invalid = Wrong name on the XHTML (''{0}'') - must start with div +_DT_Fixed_Wrong = Value is ''{0}'' but must be ''{1}'' All_observations_should_have_an_effectiveDateTime_or_an_effectivePeriod = All observations should have an effectiveDateTime or an effectivePeriod All_observations_should_have_a_performer = All observations should have a performer All_observations_should_have_a_subject = All observations should have a subject Unable_to_resolve_slice_matching__no_fixed_value_or_required_value_set = Unable to resolve slice matching - no fixed value or required value set Unable_to_resolve_slice_matching__slice_matching_by_value_set_not_done = Unable to resolve slice matching - slice matching by value set not done Problem_processing_expression__in_profile__path__ = Problem processing expression {0} in profile {1} path {2}: {3} -Unable_to_find_element_with_id_ = Unable to find element with id '{0}' +Unable_to_find_element_with_id_ = Unable to find element with id ''{0}'' Slice_encountered_midway_through_set_path___id___ = Slice encountered midway through set (path = {0}, id = {1}); {2} Unable_to_resolve_actual_type_ = Unable to resolve actual type {0} Unsupported_version_R1 = Unsupported version R1 @@ -264,7 +264,7 @@ Unable_to_resolve_element__in_profile_ = Unable to resolve element {0} in profil Unable_to_resolve_profile_ = Unable to resolve profile {0} Resource_resolution_services_not_provided = Resource resolution services not provided Unrecognised_extension_context_ = Unrecognised extension context {0} -Unable_to_locate_the_profile__in_order_to_validate_against_it = Unable to locate the profile '{0}' in order to validate against it +Unable_to_locate_the_profile__in_order_to_validate_against_it = Unable to locate the profile ''{0}'' in order to validate against it Reference__refers_to_a__not_a_ValueSet = Reference {0} refers to a {1} not a ValueSet Not_done_yet_ValidatorHostServicesconformsToProfile_when_item_is_not_an_element = Not done yet (ValidatorHostServices.conformsToProfile), when item is not an element Not_supported_yet = Not supported yet @@ -310,7 +310,7 @@ not_done_yet__slicing__types__ = not done yet - slicing / types @ {0} Invalid_slicing__there_is_more_than_one_type_slice_at__but_one_of_them__has_min__1_so_the_other_slices_cannot_exist=Invalid slicing: there is more than one type slice at {0}, but one of them ({1}) has min = 1, so the other slices cannot exist Did_not_find_type_root_ = Did not find type root: {0} Error_at_path__Slice_for_type__has_wrong_type_ = Error at path {0}: Slice for type ''{1}'' has wrong type ''{2}'' -Error_at_path__Slice_for_type__has_more_than_one_type_ = Error at path {0}: Slice for type '{1}' has more than one type '{2}' +Error_at_path__Slice_for_type__has_more_than_one_type_ = Error at path {0}: Slice for type ''{1}'' has more than one type ''{2}'' Error_at_path__Slice_name_must_be__but_is_ = Error at path {0}: Slice name must be ''{1}'' but is ''{2}'' Error_at_path__in__Type_slicing_with_slicingdiscriminatorpath__this = Error at path {0} in {1}: Type slicing with slicing.discriminator.path != ''$this'' Error_at_path__in__Type_slicing_with_slicingdiscriminatortype__type = Error at path {0} in {1}: Type slicing with slicing.discriminator.type != ''type'' @@ -349,14 +349,14 @@ element__null_ = element = null: {0} getSliceList_should_only_be_called_when_the_element_has_slicing = getSliceList should only be called when the element has slicing Unable_to_resolve_name_reference__at_path_ = Unable to resolve name reference {0} at path {1} Details_for__matching_against_Profile_ = Details for {0} matching against Profile{1} -Does_not_match_slice_ = Does not match slice '{0}' +Does_not_match_slice_ = Does not match slice ''{0}'' Profile__does_not_match_for__because_of_the_following_profile_issues__ = Profile {0} does not match for {1} because of the following profile issues: {2} This_element_does_not_match_any_known_slice_ = This element does not match any known slice{0} defined_in_the_profile = defined in the profile -This_does_not_appear_to_be_a_FHIR_resource_unknown_name_ = This does not appear to be a FHIR resource (unknown name '{0}') +This_does_not_appear_to_be_a_FHIR_resource_unknown_name_ = This does not appear to be a FHIR resource (unknown name ''{0}'') This_cannot_be_parsed_as_a_FHIR_object_no_name = This cannot be parsed as a FHIR object (no name) -This_does_not_appear_to_be_a_FHIR_resource_unknown_namespacename_ = This does not appear to be a FHIR resource (unknown namespace/name '{0}::{1}') -This__cannot_be_parsed_as_a_FHIR_object_no_namespace = This '{0}' cannot be parsed as a FHIR object (no namespace) +This_does_not_appear_to_be_a_FHIR_resource_unknown_namespacename_ = This does not appear to be a FHIR resource (unknown namespace/name ''{0}::{1}'') +This__cannot_be_parsed_as_a_FHIR_object_no_namespace = This ''{0}'' cannot be parsed as a FHIR object (no namespace) Unable_to_find_resourceType_property = Unable to find resourceType property Error_parsing_JSON_the_primitive_value_must_be_a_string = Error parsing JSON: the primitive value must be a string Error_parsing_JSON_the_primitive_value_must_be_a_number = Error parsing JSON: the primitive value must be a number @@ -437,7 +437,7 @@ This_property_must_be_an_Array_not_a_ = This property must be an Array, not a {0 documentmsg = (document) xml_attr_value_invalid = The XML Attribute {0} has an illegal character xml_encoding_invalid = The XML encoding is invalid (must be UTF-8) -xml_stated_encoding_invalid = The XML encoding stated in the header is invalid (must be 'UTF-8' if stated) +xml_stated_encoding_invalid = The XML encoding stated in the header is invalid (must be ''UTF-8'' if stated) XHTML_URL_INVALID = The URL {0} is not valid ({1}) MEASURE_MR_GRP_NO_CODE = Group should have a code that matches the group definition in the measure MEASURE_MR_GRP_UNK_CODE = The code for this group has no match in the measure definition @@ -452,7 +452,7 @@ MEASURE_MR_GRP_POP_UNK_CODE = The code for this group population has no match in MEASURE_MR_GRP_POP_DUPL_CODE = The code for this group population is duplicated with another group MEASURE_MR_GRP_POP_MISSING_BY_CODE = The MeasureReport does not include a population group for the population group {0} MEASURE_MR_GRP_POP_COUNT_MISMATCH = Mismatch between count {0} and number of subjects {1} -MEASURE_MR_GRP_POP_NO_SUBJECTS = Reports where type is not ''subject-list'' don't have subjects listed +MEASURE_MR_GRP_POP_NO_SUBJECTS = Reports where type is not ''subject-list'' don''t have subjects listed MEASURE_MR_GRP_POP_NO_COUNT = Count should be present for reports where type is not ''subject-list'' MEASURE_M_NO_GROUPS = A measure should contain at least one group MEASURE_M_GROUP_CODE = Groups should have codes when there is more than one group @@ -490,35 +490,35 @@ TYPE_SPECIFIC_CHECKS_DT_IDENTIFIER_IETF_SYSTEM_VALUE = if identifier.system is ' TYPE_SPECIFIC_CHECKS_DT_ATT_SIZE_INVALID = Stated Attachment Size {0} is not valid TYPE_SPECIFIC_CHECKS_DT_ATT_SIZE_CORRECT = Stated Attachment Size {0} does not match actual attachment size {1} TYPE_SPECIFIC_CHECKS_DT_ATT_NO_FETCHER = Attachment size cannot be checked because the validator has not been set up to access the network (url = {0}) -TYPE_SPECIFIC_CHECKS_DT_ATT_UNKNOWN_URL_SCHEME = Attachment size cannot be checked because the validator doesn't understand how to access {0} +TYPE_SPECIFIC_CHECKS_DT_ATT_UNKNOWN_URL_SCHEME = Attachment size cannot be checked because the validator doesn''t understand how to access {0} TYPE_SPECIFIC_CHECKS_DT_ATT_URL_ERROR = Attachment size cannot be checked because there was an error accesssing {0}: {1} TYPE_SPECIFIC_CHECKS_DT_ATT_TOO_LONG = Attachment size is {0} bytes which exceeds the stated limit of {1} bytes TYPE_SPECIFIC_CHECKS_DT_ATT_NO_CONTENT = Attachments have data and/or url, or else SHOULD have either contentType and/or language TYPE_SPECIFIC_CHECKS_DT_BASE64_TOO_LONG = Base64 size is {0} bytes which exceeds the stated limit of {1} bytes TYPE_SPECIFIC_CHECKS_DT_DECIMAL_CHARS = Found {0} decimal places which exceeds the stated limit of {1} digits -Validation_VAL_Profile_WrongType = Specified profile type was '{0}', but found type '{1}' +Validation_VAL_Profile_WrongType = Specified profile type was ''{0}'', but found type ''{1}'' Validation_VAL_Profile_WrongType2 = Type mismatch processing profile {0} at path {1}: The element type is {4}, but the profile {3} is for a different type {2} VALIDATION_VAL_ILLEGAL_TYPE_CONSTRAINT = Illegal constraint in profile {0} at path {1} - cannot constrain to type {2} from base types {3} EXTENSION_EXT_CONTEXT_WRONG_XVER = The extension {0} from FHIR version {3} is not allowed to be used at this point (allowed = {1}; this element is [{2}; this is a warning since contexts may be renamed between FHIR versions) SECURITY_STRING_CONTENT_ERROR = The string value contains embedded HTML tags, which are not allowed for security reasons in this context SECURITY_STRING_CONTENT_WARNING = The string value contains embedded HTML tags. Note that all inputs should be escaped when rendered to HTML as a matter of course ALL_OK = All OK -SEARCHPARAMETER_NOTFOUND = Unable to find the base Search Parameter {0} so can't check that this SearchParameter is a proper derivation from it +SEARCHPARAMETER_NOTFOUND = Unable to find the base Search Parameter {0} so can''t check that this SearchParameter is a proper derivation from it SEARCHPARAMETER_BASE_WRONG = The resource type {1} is not listed as a base in the SearchParameter this is derived from ({0}) SEARCHPARAMETER_TYPE_WRONG = The type {1} is different to the type {0} in the derivedFrom SearchParameter -SEARCHPARAMETER_EXP_WRONG = The expression '{2}' is not compatible with the expression '{1}' in the derivedFrom SearchParameter {0}, and this likely indicates that the derivation relationship is not valid -VALUESET_NO_SYSTEM_WARNING = No System specified, so Concepts and Filters can't be checked +SEARCHPARAMETER_EXP_WRONG = The expression ''{2}'' is not compatible with the expression ''{1}'' in the derivedFrom SearchParameter {0}, and this likely indicates that the derivation relationship is not valid +VALUESET_NO_SYSTEM_WARNING = No System specified, so Concepts and Filters can''t be checked VALUESET_INCLUDE_INVALID_CONCEPT_CODE = The code {1} is not valid in the system {0} VALUESET_INCLUDE_INVALID_CONCEPT_CODE_VER = The code {2} is not valid in the system {0} version {1} -VALUESET_UNC_SYSTEM_WARNING = Unknown System specified, so Concepts and Filters can't be checked -VALUESET_UNC_SYSTEM_WARNING_VER = Unknown System/Version specified, so Concepts and Filters can't be checked -Extension_PROF_Type = The Profile '{0}' definition allows for the type {1} but found type {2} -TYPE_CHECKS_PATTERN_CC = The pattern [system {0}, code {1}, and display '{2}'] defined in the profile {3} not found. Issues: {4} -TYPE_CHECKS_PATTERN_CC_US = The pattern [system {0}, code {1}, display '{2}' and userSelected {5}] defined in the profile {3} not found. Issues: {4} -TYPE_CHECKS_FIXED_CC = The pattern [system {0}, code {1}, and display '{2}'] defined in the profile {3} not found. Issues: {4} -TYPE_CHECKS_FIXED_CC_US = The pattern [system {0}, code {1}, display '{2}' and userSelected {5}] defined in the profile {3} not found. Issues: {4} +VALUESET_UNC_SYSTEM_WARNING = Unknown System specified, so Concepts and Filters can''t be checked +VALUESET_UNC_SYSTEM_WARNING_VER = Unknown System/Version specified, so Concepts and Filters can''t be checked +Extension_PROF_Type = The Profile ''{0}'' definition allows for the type {1} but found type {2} +TYPE_CHECKS_PATTERN_CC = The pattern [system {0}, code {1}, and display ''{2}''] defined in the profile {3} not found. Issues: {4} +TYPE_CHECKS_PATTERN_CC_US = The pattern [system {0}, code {1}, display ''{2}'' and userSelected {5}] defined in the profile {3} not found. Issues: {4} +TYPE_CHECKS_FIXED_CC = The pattern [system {0}, code {1}, and display ''{2}''] defined in the profile {3} not found. Issues: {4} +TYPE_CHECKS_FIXED_CC_US = The pattern [system {0}, code {1}, display ''{2}'' and userSelected {5}] defined in the profile {3} not found. Issues: {4} Internal_error = Internal error: {0} -VALIDATION_VAL_GLOBAL_PROFILE_UNKNOWN = Global Profile reference '{0}' from IG {1} could not be resolved, so has not been checked +VALIDATION_VAL_GLOBAL_PROFILE_UNKNOWN = Global Profile reference ''{0}'' from IG {1} could not be resolved, so has not been checked VALIDATION_VAL_PROFILE_SIGNPOST = Validate resource against profile {0} VALIDATION_VAL_PROFILE_SIGNPOST_META = Validate resource against profile {0} - listed in meta VALIDATION_VAL_PROFILE_SIGNPOST_BUNDLE_PARAM = Validate resource against profile {0} - provided as bundle param @@ -548,7 +548,7 @@ FHIRPATH_NO_COLLECTION = Error evaluating FHIRPath expression: The function {0} FHIRPATH_NOT_IMPLEMENTED = Error evaluating FHIRPath expression: The function {0} is not implemented FHIRPATH_PARAM_WRONG = Error evaluating FHIRPath expression: The expression type {0} is not supported for parameter {1} on function {2} FHIRPATH_CHECK_FAILED = Error evaluating FHIRPath expression: The check {0} failed -FHIRPATH_NO_TYPE = Error evaluating FHIRPath expression: The type '{0}' is unknown or not supported at {1} +FHIRPATH_NO_TYPE = Error evaluating FHIRPath expression: The type ''{0}'' is unknown or not supported at {1} FHIRPATH_DISCRIMINATOR_NAME_ALREADY_SLICED = Error in discriminator at {0}: found a sliced element while resolving the fixed value for one of the slices FHIRPATH_DISCRIMINATOR_THIS_CANNOT_FIND = Problem with use of resolve() - profile {0} on {1} could not be resolved FHIRPATH_DISCRIMINATOR_RESOLVE_NO_TYPE = illegal use of resolve() in discriminator - no type on element {0} diff --git a/org.hl7.fhir.validation.cli/pom.xml b/org.hl7.fhir.validation.cli/pom.xml index ff48f8ec7..f466094b2 100644 --- a/org.hl7.fhir.validation.cli/pom.xml +++ b/org.hl7.fhir.validation.cli/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.validation/pom.xml b/org.hl7.fhir.validation/pom.xml index d15146ed8..1cc255b8f 100644 --- a/org.hl7.fhir.validation/pom.xml +++ b/org.hl7.fhir.validation/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir org.hl7.fhir.core - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT ../pom.xml diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java index 2cfaca357..9604df482 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java @@ -946,7 +946,7 @@ public class ValidationEngine implements IValidatorResourceFetcher, IPackageInst } public void loadIg(String src, boolean recursive) throws IOException, FHIRException { - NpmPackage npm = src.matches(FilesystemPackageCacheManager.PACKAGE_REGEX) ? pcm.loadPackage(src, null) : null; + NpmPackage npm = src.matches(FilesystemPackageCacheManager.PACKAGE_VERSION_REGEX_OPT) ? pcm.loadPackage(src, null) : null; if (npm != null) { for (String s : npm.dependencies()) { if (!context.getLoadedPackages().contains(s)) { @@ -960,11 +960,12 @@ public class ValidationEngine implements IValidatorResourceFetcher, IPackageInst String canonical = null; Map source = loadIgSource(src, recursive, true); String version = Constants.VERSION; - if (this.version != null) + if (this.version != null) { version = this.version; - if (source.containsKey("version.info")) + } + if (source.containsKey("version.info")) { version = readInfoVersion(source.get("version.info")); - + } for (Entry t : source.entrySet()) { String fn = t.getKey(); if (!exemptFile(fn)) { diff --git a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/TestLoadIg.java b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/TestLoadIg.java new file mode 100644 index 000000000..5d6dbd969 --- /dev/null +++ b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/TestLoadIg.java @@ -0,0 +1,96 @@ +package org.hl7.fhir.validation.tests; + +import java.text.NumberFormat; + +import org.hl7.fhir.r5.test.utils.TestingUtilities; +import org.hl7.fhir.utilities.TextFile; +import org.hl7.fhir.utilities.VersionUtilities; +import org.hl7.fhir.validation.ValidationEngine; +import org.junit.Test; + +import net.sf.saxon.expr.instruct.Message; + +public class TestLoadIg { + + @Test + public void testPackage() { + String id = "hl7.fhir.r4.core"; + String version = "4.0.1"; + int DO_TIMES = 3; + + try { + final String fhirSpecVersion = "4.0"; + final String definitions = VersionUtilities.packageForVersion(fhirSpecVersion) + "#" + VersionUtilities.getCurrentVersion(fhirSpecVersion); + + ValidationEngine hl7Validator = new ValidationEngine(definitions); + hl7Validator.setNative(false); + hl7Validator.setAnyExtensionsAllowed(true); + hl7Validator.prepare(); + + for (int i = 0; i < DO_TIMES; i++) { + System.gc(); + System.out.print("loading: allocated memory " + getUsedMemoryAsMbs() + " MB, "); + System.out.print("free memory " + getFreeMemoryAsMbs() + " MB, "); + System.out.println("max memory " + getTotalMemoryAsMbs() + " MB"); + + // The method under test: + hl7Validator.loadIg(id + (version != null ? "#" + version : ""), true); + } + } catch (Exception e) { + e.printStackTrace(); + } + // loadResourceByVersion + } + + @Test + public void testLoad() { + String id = "hl7.fhir.r4.core"; + String version = "4.0.1"; + int DO_TIMES = 10; + + try { + final String fhirSpecVersion = "4.0"; + final String definitions = VersionUtilities.packageForVersion(fhirSpecVersion) + "#" + VersionUtilities.getCurrentVersion(fhirSpecVersion); + + ValidationEngine hl7Validator = new ValidationEngine(definitions); + hl7Validator.setNative(false); + hl7Validator.setAnyExtensionsAllowed(true); + hl7Validator.prepare(); + + byte[] b = TextFile.streamToBytes(TestingUtilities.loadTestResourceStream("r5", "snapshot-generation", "t34-expected.xml")); // yes the choice of R5 is deliberate here - it's the same content as R4. + for (int i = 0; i < DO_TIMES; i++) { + System.gc(); + + for (int j = 0; j < 100; j++) { + hl7Validator.loadResourceByVersion("4.0.1", b, "resource.xml"); + } + System.out.print("loading: allocated memory " + getUsedMemoryAsMbs() + " MB, "); + System.out.print("free memory " + getFreeMemoryAsMbs() + " MB, "); + System.out.println("max memory " + getTotalMemoryAsMbs() + " MB"); + + // The method under test: + hl7Validator.loadIg(id + (version != null ? "#" + version : ""), true); + } + } catch (Exception e) { + e.printStackTrace(); + } + // loadResourceByVersion + } + public static String getFreeMemoryAsMbs() { + long MemoryFreeSize = Runtime.getRuntime().freeMemory(); + double MemoryFreeSizeInMb = (MemoryFreeSize / 1024.0 / 1024.0); + return NumberFormat.getIntegerInstance().format(MemoryFreeSizeInMb); + } + + public static String getUsedMemoryAsMbs() { + long MemoryUsedSize = Runtime.getRuntime().totalMemory(); + double MemoryUsedSizeInMb = (MemoryUsedSize / 1024.0 / 1024.0); + return NumberFormat.getIntegerInstance().format(MemoryUsedSizeInMb); + } + + public static String getTotalMemoryAsMbs() { + long MemoryTotalSize = Runtime.getRuntime().maxMemory(); + double MemoryTotalSizeInMb = (MemoryTotalSize / 1024.0 / 1024.0); + return NumberFormat.getIntegerInstance().format(MemoryTotalSizeInMb); + } +} diff --git a/pom.xml b/pom.xml index eb5d4d374..b6da825c9 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 4.2.0 + 5.1.0 - 5.0.23-SNAPSHOT + 5.1.1-SNAPSHOT - 5.0.0 + 5.1.0 1.1.30-SNAPSHOT 5.6.2 3.0.0-M4 @@ -131,6 +131,13 @@ + + org.apache.maven.plugins + maven-enforcer-plugin + + true + + org.apache.maven.plugins maven-compiler-plugin @@ -356,4 +363,4 @@ - \ No newline at end of file +