public virtual bool evaluate(IFact[] left, IFact right, Rete engine) { if (function != null) { IReturnVector rv = function.executeFunction(engine, params_Renamed); return(rv.firstReturnValue().BooleanValue); } else if (left.Length > leftrow) { if (left[leftrow] == right) { return(false); } return(Evaluate.evaluate(operator_Renamed, left[leftrow].getSlotValue(leftIndex), right.getSlotValue(rightIndex))); } else { return(false); } }
/// <summary> evaluate the node's value against the slot's value. The method /// uses Evaluate class to perform the evaluation /// </summary> /// <param name="">factInstance /// </param> /// <param name="">engine /// </param> /// <returns> /// /// </returns> public virtual bool evaluate(IFact factInstance) { return(Evaluate.evaluate(operator_Renamed, factInstance.getSlotValue(slot.Id), slot.Value)); }