// ----------------------------------------------------------------------
        /// Extracts all public constructors/fields/functions from the given type.
        ///
        /// @param type The type from which to extract the members.
        ///
        static void ExtractType(LibraryChildNamespace parentNamespace, Type type)
        {
            var libraryType = new LibraryType(type);

            parentNamespace.AddChild(libraryType);
            ExtractConstructors(libraryType, type);
            ExtractFields(libraryType, type);
            ExtractFunctions(libraryType, type);
        }
        // ======================================================================
        // UTILITIES
        // ----------------------------------------------------------------------
        /// Returns the child namespace library object with the given name.
        ///
        /// @param name The name of the child namespace to search for.
        /// @return The found or created child namespace library object.
        ///
        public LibraryChildNamespace GetChildNamespace(string name)
        {
            var node = GetChild <LibraryChildNamespace>(t => t.GetRawName() == name);

            if (node == null)
            {
                node = new LibraryChildNamespace(name);
                AddChild(node);
            }
            return(node);
        }