public static Condition onAddCompareValue(MemberData member) { MethodValidation cond = new MethodValidation(); cond.target.target = member; MemberDataUtility.UpdateMultipurposeMember(cond.target); return(cond); }
public static List <EventActionData> GetConditionBlockFromNode(Node node) { if (node is NodeSetValue) { var source = node as NodeSetValue; var action = new SetValue(); action.target = new MemberData(source.target); action.value = new MemberData(source.value); return(new List <EventActionData>() { action }); } else if (node is MultipurposeNode) { var source = node as MultipurposeNode; if (source.CanGetValue() && source.ReturnType() == typeof(bool)) { var action = new MethodValidation(); action.target = new MultipurposeMember(source.target); return(new List <EventActionData>() { action }); } } else if (node is Nodes.ComparisonNode) { var source = node as Nodes.ComparisonNode; var action = new ObjectCompare(); action.targetA = new MultipurposeMember(source.targetA); action.targetB = new MultipurposeMember(source.targetB); action.operatorType = source.operatorType; return(new List <EventActionData>() { action }); } else if (node is Nodes.MultiANDNode) { var source = node as Nodes.MultiANDNode; var result = new List <EventActionData>(); foreach (var target in source.targets) { var action = new EqualityCompare(); action.target = new MultipurposeMember(target); action.value = new MemberData(true); result.Add(action); } return(result); } else if (node is Nodes.MultiORNode) { var source = node as Nodes.MultiORNode; var result = new List <EventActionData>(); foreach (var target in source.targets) { if (result.Count > 0) { result.Add(EventActionData.OrEvent); } var action = new EqualityCompare(); action.target = new MultipurposeMember(target); action.value = new MemberData(true); result.Add(action); } return(result); } else if (node is Nodes.NotNode) { var source = node as Nodes.NotNode; var action = new EqualityCompare(); action.target = new MultipurposeMember(source.target); MemberDataUtility.UpdateMultipurposeMember(action.target); action.value = new MemberData(false); return(new List <EventActionData>() { action }); } return(new List <EventActionData>()); }