Example #1
0
        getAllClassElements(ArrayList forwardClasses, ArrayList classes)
        {
            if (null == m_elements)
            {
                return;
            }

//			Debug.WriteLine("Type: " + this.GetType().Name);
//			Debug.Indent();
            for (int i = 0; i < m_elements.Count; i++)
            {
                ILClassElement classElement = m_elements[i] as ILClassElement;
                if (classElement != null)
                {
#if NET20
                    classes.Add(classElement);
#else
                    string classname = classElement.getClassFullName();
//					Debug.Write(classname + " -> ");
                    for (int j = 0; j < forwardClasses.Count; j++)
                    {
                        ILClassElement forwardClassElement = forwardClasses[j] as ILClassElement;
                        string         forwardClassname    = forwardClassElement.getClassFullName();

                        if (classname.Equals(forwardClassname))
                        {
                            forwardClasses.RemoveAt(j);
                            classElement.setForwardClassElement(forwardClassElement);
//							Debug.WriteLine(forwardClassname);

                            break;
                        }
                    }

                    if (null == classElement.getForwardClassElement())
                    {
//						Debug.WriteLine("nix");
                        forwardClasses.Add(classElement);
                    }
                    else
                    {
                        classes.Add(classElement);
                    }
#endif
                }

                (m_elements[i] as ILElement).getAllClassElements(forwardClasses, classes);
            }
//			Debug.Unindent();
        }