/// <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);
     }
 }
예제 #3
0
        /// <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;
 }
예제 #5
0
 /// <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;
 }
예제 #6
0
 /// <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;   
 }