Exemple #1
0
        public static bool DoCompare(Agent pAgent, VariableComparator comparator, Property opl, CMethodBase opl_m, Property opr)
        {
            bool bResult = false;

            if (opl != null)
            {
                Agent      agent_left = pAgent;
                ParentType pt         = opl.GetParentType();
                if (pt == ParentType.PT_INSTANCE)
                {
                    agent_left = Agent.GetInstance(opl.GetInstanceNameString(), agent_left.GetContextId());
                    Debug.Check(agent_left != null || Utils.IsStaticClass(opl.GetInstanceNameString()));
                }

                Agent agent_right = pAgent;
                pt = opr.GetParentType();
                if (pt == ParentType.PT_INSTANCE)
                {
                    agent_right = Agent.GetInstance(opr.GetInstanceNameString(), agent_left.GetContextId());
                    Debug.Check(agent_right != null || Utils.IsStaticClass(opr.GetInstanceNameString()));
                }

                bResult = comparator.Execute(agent_left, agent_right);
            }
            else if (opl_m != null)
            {
                ParentType pt         = opl_m.GetParentType();
                Agent      agent_left = pAgent;
                if (pt == ParentType.PT_INSTANCE)
                {
                    agent_left = Agent.GetInstance(opl_m.GetInstanceNameString(), agent_left.GetContextId());
                    Debug.Check(agent_left != null || Utils.IsStaticClass(opl_m.GetInstanceNameString()));
                }

                object returnValue = opl_m.run(agent_left, pAgent);

                Agent agent_right = pAgent;
                pt = opr.GetParentType();
                if (pt == ParentType.PT_INSTANCE)
                {
                    agent_right = Agent.GetInstance(opr.GetInstanceNameString(), agent_right.GetContextId());
                    Debug.Check(agent_right != null || Utils.IsStaticClass(opr.GetInstanceNameString()));
                }

                bResult = comparator.Execute(returnValue, agent_left, agent_right);
            }

            return(bResult);
        }
Exemple #2
0
        public static bool DoCompare(Agent pAgent, VariableComparator comparator, Property opl, CMethodBase opl_m, Property opr)
        {
            bool result = false;

            if (opl != null)
            {
                Agent      agent      = pAgent;
                ParentType parentType = opl.GetParentType();
                if (parentType == ParentType.PT_INSTANCE)
                {
                    agent = Agent.GetInstance(opl.GetInstanceNameString(), agent.GetContextId());
                }
                Agent agentR = pAgent;
                parentType = opr.GetParentType();
                if (parentType == ParentType.PT_INSTANCE)
                {
                    agentR = Agent.GetInstance(opr.GetInstanceNameString(), agent.GetContextId());
                }
                result = comparator.Execute(agent, agentR);
            }
            else if (opl_m != null)
            {
                ParentType parentType2 = opl_m.GetParentType();
                Agent      agent2      = pAgent;
                if (parentType2 == ParentType.PT_INSTANCE)
                {
                    agent2 = Agent.GetInstance(opl_m.GetInstanceNameString(), agent2.GetContextId());
                }
                object lhs    = opl_m.run(agent2, pAgent);
                Agent  agent3 = pAgent;
                parentType2 = opr.GetParentType();
                if (parentType2 == ParentType.PT_INSTANCE)
                {
                    agent3 = Agent.GetInstance(opr.GetInstanceNameString(), agent3.GetContextId());
                }
                result = comparator.Execute(lhs, agent2, agent3);
            }
            return(result);
        }
Exemple #3
0
        public static bool DoCompare(Agent pAgent, VariableComparator comparator, Property opl, CMethodBase opl_m, Property opr)
        {
            bool flag = false;

            if (opl != null)
            {
                Agent agentL = pAgent;
                if (opl.GetParentType() == ParentType.PT_INSTANCE)
                {
                    agentL = Agent.GetInstance(opl.GetInstanceNameString(), agentL.GetContextId());
                }
                Agent instance = pAgent;
                if (opr.GetParentType() == ParentType.PT_INSTANCE)
                {
                    instance = Agent.GetInstance(opr.GetInstanceNameString(), agentL.GetContextId());
                }
                return(comparator.Execute(agentL, instance));
            }
            if (opl_m == null)
            {
                return(flag);
            }
            ParentType parentType = opl_m.GetParentType();
            Agent      parent     = pAgent;

            if (parentType == ParentType.PT_INSTANCE)
            {
                parent = Agent.GetInstance(opl_m.GetInstanceNameString(), parent.GetContextId());
            }
            object lhs    = opl_m.run(parent, pAgent);
            Agent  agentR = pAgent;

            if (opr.GetParentType() == ParentType.PT_INSTANCE)
            {
                agentR = Agent.GetInstance(opr.GetInstanceNameString(), agentR.GetContextId());
            }
            return(comparator.Execute(lhs, parent, agentR));
        }
Exemple #4
0
        public static bool DoCompare(Agent pAgent, VariableComparator comparator, Property opl, CMethodBase opl_m, Property opr, CMethodBase opr_m)
        {
            bool bResult = false;

            if (opl != null)
            {
                Agent agent_left  = opl.GetParentAgent(pAgent);
                Agent agent_right = opr != null?opr.GetParentAgent(pAgent) : opr_m.GetParentAgent(pAgent);

                bResult = comparator.Execute(agent_left, agent_right);
            }
            else if (opl_m != null)
            {
                Agent agent_left = opl_m.GetParentAgent(pAgent);

                object returnValue = opl_m.Invoke(agent_left, pAgent);

                Agent agent_right = opr != null?opr.GetParentAgent(pAgent) : opr_m.GetParentAgent(pAgent);

                bResult = comparator.Execute(returnValue, agent_left, agent_right);
            }

            return(bResult);
        }