/// <summary> /// Scan this assembly for datatype formatters /// </summary> public DatatypeFormatter() { this.CompatibilityMode = DatatypeFormatterCompatibilityMode.Universal; this.ValidateConformance = true; if (formatters.Count == 0) { lock (formatters) { if (formatters.Count > 0) { return; // check again once we have a lock } Assembly a = typeof(DatatypeFormatter).Assembly; foreach (Type t in a.GetTypes()) // Get all types { if (t.GetInterface("MARC.Everest.Formatters.XML.Datatypes.R1.Formatters.IDatatypeFormatter") != null) { IDatatypeFormatter fmtr = (IDatatypeFormatter)a.CreateInstance(t.FullName); if (!formatters.ContainsKey(fmtr.HandlesType)) { formatters.Add(fmtr.HandlesType, t); } if (!formatterNames.Contains(fmtr.HandlesType)) { formatterNames.Add(fmtr.HandlesType); } } } } } }
/// <summary> /// Datatype formatter parse result /// </summary> internal DatatypeFormatterParseResult(DatatypeFormatterCompatibilityMode mode, ResultCode code, IResultDetail[] details, bool validating) : this(mode) { this.Code = code; this.ValidateConformance = validating; if (details != null) { this.m_details = new List <IResultDetail>(details); } else { this.m_details = new List <IResultDetail>(10); } }
/// <summary> /// Serialize as a string /// </summary> internal static String SerializeAsString(IGraphable graph, DatatypeFormatterCompatibilityMode mode) { DatatypeFormatter fmtr = new DatatypeFormatter(mode); StringWriter sw = new StringWriter(); XmlStateWriter xsw = new XmlStateWriter(XmlWriter.Create(sw, new XmlWriterSettings() { Indent = true })); xsw.WriteStartElement("test", "urn:hl7-org:v3"); xsw.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance"); var result = fmtr.Graph(xsw, graph); xsw.WriteEndElement(); xsw.Flush(); sw.Flush(); System.Diagnostics.Trace.WriteLine(sw.ToString()); Assert.AreEqual(ResultCode.Accepted, result.Code); return(sw.ToString()); }
/// <summary> /// Creates a new instance of the data type formatter with the specified <paramref name="compatibilityMode"/> /// </summary> public DatatypeFormatter(DatatypeFormatterCompatibilityMode compatibilityMode) : this() { this.CompatibilityMode = compatibilityMode; }
/// <summary> /// Creates a new instance of the data type formatter with the specified <paramref name="compatibilityMode"/> /// </summary> public DatatypeFormatter(DatatypeFormatterCompatibilityMode compatibilityMode) : this() { this.CompatibilityMode = compatibilityMode; }
/// <summary> /// Scan this assembly for datatype formatters /// </summary> public DatatypeFormatter() { DatatypeFormatter.FormatterCulture = CultureInfo.InvariantCulture; this.CompatibilityMode = DatatypeFormatterCompatibilityMode.Universal; this.ValidateConformance = true; if (formatters.Count == 0) { lock (formatters) { if (formatters.Count > 0) return; // check again once we have a lock Assembly a = typeof(DatatypeFormatter).Assembly; foreach (Type t in a.GetTypes()) // Get all types if (t.GetInterface("MARC.Everest.Formatters.XML.Datatypes.R1.Formatters.IDatatypeFormatter", false) != null) { IDatatypeFormatter fmtr = (IDatatypeFormatter)a.CreateInstance(t.FullName); if (!formatters.ContainsKey(fmtr.HandlesType)) formatters.Add(fmtr.HandlesType, t); if (!formatterNames.Contains(fmtr.HandlesType)) formatterNames.Add(fmtr.HandlesType); } } } }
/// <summary> /// Datatype formatter parse result /// </summary> internal DatatypeFormatterParseResult(DatatypeFormatterCompatibilityMode mode) { this.CompatibilityMode = mode; }
/// <summary> /// Datatype formatter parse result /// </summary> internal DatatypeFormatterParseResult(DatatypeFormatterCompatibilityMode mode, ResultCode code, IResultDetail[] details, bool validating) :this(mode) { this.Code = code; this.ValidateConformance = validating; if (details != null) this.m_details = new List<IResultDetail>(details); else this.m_details = new List<IResultDetail>(10); }
/// <summary> /// Datatype formatter parse result /// </summary> internal DatatypeFormatterParseResult(DatatypeFormatterCompatibilityMode mode) { this.CompatibilityMode = mode; }