예제 #1
0
        public bool LoadClass(string className, Chilkat.Log log)
        {
            m_methods.Clear();
            m_props.Clear();
            m_events.Clear();
            m_methodList.Clear();
            m_propList.Clear();
            m_eventList.Clear();

            string strClassXml = AppData.GetAppData("appData/apiDef2/" + className + ".xml");

            //string path = GenBase.m_xmlApiDefPath + @"/" + className + ".xml";
            //if (!m_xml.LoadXmlFile(path))
            if (!m_xml.LoadXml(strClassXml))
            {
                log.LogData("failedToLoadClass", className);
                return(false);
            }
            // Always indicate the source of the XML in the root node.
            // This makes it possible to save the entire XML document from any node
            // by getting the root XML node, then getting the sourceXmlPath, ...
            // No longer need this..
            //m_xml.AddOrUpdateAttribute("sourceXmlPath", path);

            addClassEntries(m_xml);

            if (!this.DnEventArgs)
            {
                // The base entries never actually get added to the m_xml. They are present in the
                // m_methods, m_props, and m_events.
                if (!loadBaseEntries(log))
                {
                    log.LogError("Failed to add base entries.");
                    return(false);
                }
            }

            if (!integrateCommonLinks(log))
            {
                log.LogError("Failed to integrate common links.");
                return(false);
            }

            if (HasEvents)
            {
                if (!loadStandardEvents(log))
                {
                    log.LogError("Failed to add standard events.");
                    return(false);
                }
            }

            m_methodList.Sort();
            m_propList.Sort();
            m_eventList.Sort();

            // Just to be sure..
            string genericName = GenericName;

            if (genericName.Equals("CkString") || genericName.Equals("CkByteData"))
            {
                m_hasWideCharClass = false;
            }

            return(true);
        }