public static function init()
 {
     if (self::$initialized) {
         return;
     }
     self::$s_referenceWriter = new ReferenceWriter();
     self::$m_defaultWriter = new ObjectWriter();
     self::$m_nullWriter = new NullWriter();
     self::$m_numberWriter = new NumberWriter();
     self::$m_stringWriter = new StringWriter(false);
     self::$m_arrayWriter = new ArrayWriter();
     self::$m_dateWriter = new DateWriter(FALSE);
     self::$m_booleanWriter = new BooleanWriter();
     self::$m_messageWriter = new AMFMessageWriter();
     self::$m_headerWriter = new AMFHeaderWriter();
     self::$m_bodyWriter = new AMFBodyWriter();
     self::$m_mapWriter = new BoundPropertyBagWriter();
     self::$m_bodyHolderWriter = new BodyHolderWriter();
     self::$m_stdClassWriter = new StdClassWriter();
     self::$m_resourceWriter = new ResourceWriter();
     self::$m_dataTableAsListWriter = new DataTableAsListWriter();
     self::$m_orbdateWriter = new ORBDateTimeWriter(FALSE);
     self::$m_arrayObjectWriter = new ArrayObjectWriter();
     self::$m_xmlWriter = new ORBXMLWriter();
     self::$m_writers['NULL'] = self::$m_nullWriter;
     self::$m_writers['integer'] = self::$m_numberWriter;
     self::$m_writers['double'] = self::$m_numberWriter;
     self::$m_writers['boolean'] = self::$m_booleanWriter;
     self::$m_writers['string'] = self::$m_stringWriter;
     self::$m_writers['Request'] = self::$m_messageWriter;
     self::$m_writers['Header'] = self::$m_headerWriter;
     self::$m_writers['Body'] = self::$m_bodyWriter;
     self::$m_writers['DateTime'] = self::$m_dateWriter;
     self::$m_writers['ORBDateTime'] = self::$m_orbdateWriter;
     self::$m_writers['array'] = self::$m_arrayWriter;
     self::$m_writers['object'] = self::$m_defaultWriter;
     self::$m_writers['BodyHolder'] = self::$m_bodyHolderWriter;
     self::$m_writers['stdClass'] = self::$m_stdClassWriter;
     self::$m_writers['DataTable'] = self::$m_dataTableAsListWriter;
     self::$m_writers['ArrayObject'] = self::$m_arrayObjectWriter;
     self::$m_writers['DOMDocument'] = self::$m_xmlWriter;
     self::$m_writers['DOMElement'] = self::$m_xmlWriter;
     self::$m_writers['DOMNode'] = self::$m_xmlWriter;
     self::$initialized = true;
 }