Axiom.Runtime.Builtins.OOP.invoke_2.GetTypes C# (CSharp) Method

GetTypes() private method

private GetTypes ( MethodInfo mi, AbstractTerm methodStructObj, ArrayList &paramArray, AbstractTerm obj ) : void
mi System.Reflection.MethodInfo
methodStructObj Axiom.Runtime.AbstractTerm
paramArray System.Collections.ArrayList
obj Axiom.Runtime.AbstractTerm
return void
        private void GetTypes(MethodInfo mi, AbstractTerm methodStructObj, ref ArrayList paramArray, AbstractTerm obj)
        {
            AMHeap da = (AMHeap)runtime.DataArea;
            AbstractTerm methodObj = (AbstractTerm)methodStructObj.Next;

            ParameterInfo[] parms = mi.GetParameters();
            for (int i = 0; i < parms.Length; i++)
            {
                ParameterInfo par = (ParameterInfo)parms[i];
                AbstractTerm var = (AbstractTerm)methodObj;
                if (i != parms.Length - 1)
                {
                    methodObj = (AbstractTerm)methodObj.Next;
                }
                switch (par.ParameterType.ToString())
                {
                    case "System.Int32":
                        paramArray.Add(Int32.Parse(var.Data() as string));
                        break;
                    case "System.Char":
                        paramArray.Add(((string)var.Data())[0]);
                        break;
                    case "System.String":
                        paramArray.Add(var.Data() as string);
                        break;
                    case "System.Boolean":
                        paramArray.Add(Boolean.Parse(var.Data() as string));
                        break;
                    default:	// pass Variable.Object
                        paramArray.Add(var);
                        break;
                }
            }
        }