Example #1
0
        /// <summary>
        /// Method is allowed to be invoked only once. Therefore the order of loading classes into the Dictionary is
        /// quite important.
        /// </summary>
        /// <param name="host"></param>
        public static bool LoadPredefinedGenericClasses(IPexComponent host, string assemblyName)
        {
            //QuickGraph: TEdge -> Edge<int>
            TypeEx edgeTypeEx;
            PreDefinedGenericClassesStore tedgePdgc = new PreDefinedGenericClassesStore();

            predefinedClasses.Add("TEdge", tedgePdgc);
            if (MethodOrFieldAnalyzer.TryGetTypeExFromName(host, assemblyName, "QuickGraph.Edge`1", out edgeTypeEx))
            {
                tedgePdgc.AddToPredinedStore("QuickGraph.AdjacencyGraph`2", edgeTypeEx);
                tedgePdgc.AddToPredinedStore("QuickGraph.IGraph`2", edgeTypeEx);
            }

            //Dsa: TNode for BinarySearchTree -> Dsa.DataStructures.BinaryTreeNode`1
            PreDefinedGenericClassesStore tnodePdgc = new PreDefinedGenericClassesStore();

            predefinedClasses.Add("TNode", tnodePdgc);
            TypeEx binNodeEx;

            if (MethodOrFieldAnalyzer.TryGetTypeExFromName(host, assemblyName, "Dsa.DataStructures.BinaryTreeNode`1", out binNodeEx))
            {
                tnodePdgc.AddToPredinedStore("Dsa.DataStructures.BinarySearchTree`1", binNodeEx);
                tnodePdgc.AddToPredinedStore("Dsa.DataStructures.CommonBinaryTree`2", binNodeEx);
                tnodePdgc.AddToPredinedStore("System.Collections.Generic.Queue`1", binNodeEx);
            }

            TypeEx avltreeNodeEx = null;

            if (MethodOrFieldAnalyzer.TryGetTypeExFromName(host, assemblyName, "Dsa.DataStructures.AvlTreeNode`1", out avltreeNodeEx))
            {
                tnodePdgc.AddToPredinedStore("Dsa.DataStructures.AvlTree`1", avltreeNodeEx);
                tnodePdgc.AddToPredinedStore("Dsa.DataStructures.CommonBinaryTree`2", avltreeNodeEx);
                tnodePdgc.AddToPredinedStore("System.Collections.Generic.Queue`1", avltreeNodeEx);
            }

            return(true);
        }
        /// <summary>
        /// Method is allowed to be invoked only once. Therefore the order of loading classes into the Dictionary is 
        /// quite important.
        /// </summary>
        /// <param name="host"></param>
        public static bool LoadPredefinedGenericClasses(IPexComponent host, string assemblyName)
        {
            //QuickGraph: TEdge -> Edge<int>
            TypeEx edgeTypeEx;
            PreDefinedGenericClassesStore tedgePdgc = new PreDefinedGenericClassesStore();
            predefinedClasses.Add("TEdge", tedgePdgc);
            if (MethodOrFieldAnalyzer.TryGetTypeExFromName(host, assemblyName, "QuickGraph.Edge`1", out edgeTypeEx))
            {
                tedgePdgc.AddToPredinedStore("QuickGraph.AdjacencyGraph`2", edgeTypeEx);
                tedgePdgc.AddToPredinedStore("QuickGraph.IGraph`2", edgeTypeEx);
            }

            //Dsa: TNode for BinarySearchTree -> Dsa.DataStructures.BinaryTreeNode`1
            PreDefinedGenericClassesStore tnodePdgc = new PreDefinedGenericClassesStore();
            predefinedClasses.Add("TNode", tnodePdgc);
            TypeEx binNodeEx;
            if (MethodOrFieldAnalyzer.TryGetTypeExFromName(host, assemblyName, "Dsa.DataStructures.BinaryTreeNode`1", out binNodeEx))
            {
                tnodePdgc.AddToPredinedStore("Dsa.DataStructures.BinarySearchTree`1", binNodeEx);
                tnodePdgc.AddToPredinedStore("Dsa.DataStructures.CommonBinaryTree`2", binNodeEx);
                tnodePdgc.AddToPredinedStore("System.Collections.Generic.Queue`1", binNodeEx);
            }

            TypeEx avltreeNodeEx = null;
            if (MethodOrFieldAnalyzer.TryGetTypeExFromName(host, assemblyName, "Dsa.DataStructures.AvlTreeNode`1", out avltreeNodeEx))
            {
                tnodePdgc.AddToPredinedStore("Dsa.DataStructures.AvlTree`1", avltreeNodeEx);
                tnodePdgc.AddToPredinedStore("Dsa.DataStructures.CommonBinaryTree`2", avltreeNodeEx);
                tnodePdgc.AddToPredinedStore("System.Collections.Generic.Queue`1", avltreeNodeEx);
            }

            return true;
        }