示例#1
0
 private void CollectIndexedNodes(IEnumerator qcons)
 {
     while (qcons.MoveNext())
     {
         QCon qcon = (QCon)qcons.Current;
         if (IsCached(qcon))
         {
             continue;
         }
         if (IsLeaf(qcon))
         {
             if (qcon.CanLoadByIndex() && qcon.CanBeIndexLeaf())
             {
                 QConObject conObject = (QConObject)qcon;
                 if (conObject.HasJoins())
                 {
                     CollectJoinedNode(conObject);
                 }
                 else
                 {
                     CollectStandaloneNode(conObject);
                 }
             }
         }
         else
         {
             if (!qcon.HasJoins())
             {
                 CollectIndexedNodes(qcon.IterateChildren());
             }
         }
     }
 }
        private bool HasJoins(QCon con)
        {
            if (con.HasJoins())
            {
                return(true);
            }
            IEnumerator childIter = con.IterateChildren();

            while (childIter.MoveNext())
            {
                if (HasJoins((QCon)childIter.Current))
                {
                    return(true);
                }
            }
            return(false);
        }