// @SuppressWarnings("deprecation") private void testBoolean(Model.Resource resource, Model.Base focus, String focusType, String expression, boolean value) { var input = focus.ToTypedElement(); var container = resource?.ToTypedElement(); Assert.True(input.IsBoolean(expression, value, new EvaluationContext(container))); }
// @SuppressWarnings("deprecation") private void testBoolean(Model.Resource resource, Model.Base focus, String focusType, String expression, boolean value) { var input = new PocoNavigator(focus); var container = resource != null ? new PocoNavigator(resource) : null; Assert.True(input.IsBoolean(expression, value, container)); }
internal Base Deserialize(Type elementType, Base existing = null) { var mapping = _inspector.FindClassMappingByType(elementType); if (mapping == null) throw Error.Format("Asked to deserialize unknown type '" + elementType.Name + "'", _current); return Deserialize(mapping, existing); }
internal Base Deserialize(ClassMapping mapping, Base existing=null) { if (mapping == null) throw Error.ArgumentNull("mapping"); if (existing == null) { var fac = new DefaultModelFactory(); existing = (Base)fac.Create(mapping.NativeType); } else { if (mapping.NativeType != existing.GetType()) throw Error.Argument("existing", "Existing instance is of type {0}, but data indicates resource is a {1}", existing.GetType().Name, mapping.NativeType.Name); } IEnumerable<Tuple<string, IFhirReader>> members = null; if (_current.CurrentToken == TokenType.Object) { members = _current.GetMembers(); } else if(_current.IsPrimitive()) { // Ok, we expected a complex type, but we found a primitive instead. This may happen // in Json where the value property and the other elements are separately put into // member and _member. In this case, we will parse the primitive into the Value property // of the complex type if (!mapping.HasPrimitiveValueMember) throw Error.Format("Complex object does not have a value property, yet the reader is at a primitive", _current); // Simulate this as actually receiving a member "Value" in a normal complex object, // and resume normally var valueMember = Tuple.Create(mapping.PrimitiveValueProperty.Name, _current); members = new List<Tuple<string, IFhirReader>> { valueMember }; } else throw Error.Format("Trying to read a complex object, but reader is not at the start of an object or primitive", _current); read(mapping, members, existing); return existing; }
private void read(ClassMapping mapping, IEnumerable<Tuple<string,IFhirReader>> members, Base existing) { //bool hasMember; foreach (var memberData in members) { //hasMember = true; var memberName = memberData.Item1; // tuple: first is name of member // Find a property on the instance that matches the element found in the data // NB: This function knows how to handle suffixed names (e.g. xxxxBoolean) (for choice types). var mappedProperty = mapping.FindMappedElementByName(memberName); if (mappedProperty != null) { // Message.Info("Handling member {0}.{1}", mapping.Name, memberName); object value = null; // For primitive members we can save time by not calling the getter if (!mappedProperty.IsPrimitive) value = mappedProperty.GetValue(existing); var reader = new DispatchingReader(memberData.Item2); value = reader.Deserialize(mappedProperty, memberName, value); mappedProperty.SetValue(existing, value); } else { if (SerializationConfig.AcceptUnknownMembers == false) throw Error.Format("Encountered unknown member '{0}' while de-serializing", _current, memberName); else Message.Info("Skipping unknown member " + memberName); } } }
internal Base Deserialize(ClassMapping mapping, Base existing=null) { if (mapping == null) throw Error.ArgumentNull("mapping"); if (existing == null) { var fac = new DefaultModelFactory(); existing = (Base)fac.Create(mapping.NativeType); } else { if (mapping.NativeType != existing.GetType()) throw Error.Argument("existing", "Existing instance is of type {0}, but data indicates resource is a {1}", existing.GetType().Name, mapping.NativeType.Name); } IEnumerable<Tuple<string, IFhirReader>> members = null; members = _current.GetMembers(); read(mapping, members, existing); return existing; }
public string ResourceToString(Hl7.Fhir.Model.Base resource) { return(FhirSerializer.SerializeToJson(resource)); }
internal static void Serialize(Base instance, IFhirWriter writer, bool summary = false, string root = null) { new ResourceWriter(writer).Serialize(instance, summary, root: root); }
public static byte[] SerializeToJsonBytes(Base instance, bool summary = false, string root = null) { return jsonWriterToBytes(jw => Serialize(instance, new JsonDomFhirWriter(jw), summary, root)); }
public static byte[] SerializeToXmlBytes(Base instance, bool summary = false, string root = null) { return xmlWriterToBytes(xw => Serialize(instance, new XmlFhirWriter(xw), summary, root)); }
public static string SerializeToXml(Base data, bool summary = false, string root = null) { return xmlWriterToString(xw => Serialize(data, new XmlFhirWriter(xw), summary, root)); }