コード例 #1
0
ファイル: QConJoin.cs プロジェクト: azureskydiver/db4objects
        internal virtual void EvaluatePending(IInternalCandidate root, QPending pending,
                                              int secondResult)
        {
            bool res = i_evaluator.Not(i_and ? ((pending._result + secondResult) > 0) : (pending
                                                                                         ._result + secondResult) > QPending.False);

            if (HasJoins())
            {
                IEnumerator i = IterateJoins();
                while (i.MoveNext())
                {
                    Db4objects.Db4o.Internal.Query.Processor.QConJoin qcj = (Db4objects.Db4o.Internal.Query.Processor.QConJoin
                                                                             )i.Current;
                    root.Evaluate(new QPending(qcj, this, res));
                }
            }
            else
            {
                if (!res)
                {
                    Constraint1().DoNotInclude(root);
                    Constraint2().DoNotInclude(root);
                }
            }
        }
コード例 #2
0
 internal override bool Evaluate(IInternalCandidate candidate)
 {
     try
     {
         return(candidate.Evaluate(this, i_evaluator));
     }
     catch (Exception e)
     {
         return(false);
     }
 }
コード例 #3
0
ファイル: QCon.cs プロジェクト: azureskydiver/db4objects
 internal virtual void Visit1(IInternalCandidate root, Db4objects.Db4o.Internal.Query.Processor.QCon
                              reason, bool res)
 {
     // The a_reason parameter makes it eays to distinguish
     // between calls from above (a_reason == this) and below.
     if (HasJoins())
     {
         // this should probably be on the Join
         IEnumerator i = IterateJoins();
         while (i.MoveNext())
         {
             root.Evaluate(new QPending((QConJoin)i.Current, this, res));
         }
     }
     else
     {
         if (!res)
         {
             DoNotInclude(root);
         }
     }
 }
コード例 #4
0
ファイル: QConJoin.cs プロジェクト: superyfwy/db4o
		internal virtual void EvaluatePending(IInternalCandidate root, QPending pending, 
			int secondResult)
		{
			bool res = i_evaluator.Not(i_and ? ((pending._result + secondResult) > 0) : (pending
				._result + secondResult) > QPending.False);
			if (HasJoins())
			{
				IEnumerator i = IterateJoins();
				while (i.MoveNext())
				{
					Db4objects.Db4o.Internal.Query.Processor.QConJoin qcj = (Db4objects.Db4o.Internal.Query.Processor.QConJoin
						)i.Current;
					root.Evaluate(new QPending(qcj, this, res));
				}
			}
			else
			{
				if (!res)
				{
					Constraint1().DoNotInclude(root);
					Constraint2().DoNotInclude(root);
				}
			}
		}
コード例 #5
0
ファイル: QCon.cs プロジェクト: Galigator/db4o
		internal virtual void Visit1(IInternalCandidate root, Db4objects.Db4o.Internal.Query.Processor.QCon
			 reason, bool res)
		{
			// The a_reason parameter makes it eays to distinguish
			// between calls from above (a_reason == this) and below.
			if (HasJoins())
			{
				// this should probably be on the Join
				IEnumerator i = IterateJoins();
				while (i.MoveNext())
				{
					root.Evaluate(new QPending((QConJoin)i.Current, this, res));
				}
			}
			else
			{
				if (!res)
				{
					DoNotInclude(root);
				}
			}
		}
コード例 #6
0
ファイル: QConObject.cs プロジェクト: superyfwy/db4o
		internal override bool Evaluate(IInternalCandidate candidate)
		{
			try
			{
				return candidate.Evaluate(this, i_evaluator);
			}
			catch (Exception e)
			{
				return false;
			}
		}