public override object Eval(object obj, MdaExprCtx ctx)
 {
     // parameter is ignored... this statement is rather an expression!!
     // find corresponding class to instanciate..
     System.Type typ = factoryMdaClass.getModelClass(); // TODO TOCHECK
     // instanciate new object
     object newElt;
     try
     {
         newElt = System.Activator.CreateInstance(typ);
     }
     catch (System.Exception)
     {
         throw new System.Exception("failed to instanciante object: " + typ);
     }
     return newElt;
 }
 public override object Eval(object obj, MdaExprCtx ctx)
 {
     IList<object> listObj = (IList<object>) obj;
     object res = listObj[index];
     return res;
 }
 public override object Eval(object obj, MdaExprCtx ctx)
 {
     return obj;
 }
 public override object Eval(object obj, MdaExprCtx ctx)
 {
     System.Collections.Generic.IDictionary<object, object> mapObj = (System.Collections.Generic.IDictionary
         <object, object>)obj;
     object res = mapObj[key];
     return res;
 }
 public override object Eval(object obj, MdaExprCtx ctx)
 {
     return field.GetValue(obj);
 }
 public override object Eval(object obj, MdaExprCtx ctx)
 {
     throw new System.NotSupportedException("NOT SUPPORTED / NOT IMPLEMENTED YET");
 }
 public override object Eval(object obj, MdaExprCtx ctx)
 {
     return ctx.GetObjectByName(objectName);
 }
 public override object Eval(object obj, MdaExprCtx ctx)
 {
     return constValue;
 }
 public override object Eval(object obj, MdaExprCtx ctx)
 {
     object thisObj = (thisExpr != null) ? thisExpr.Eval(obj, ctx) : null;
     int size = (paramsExpr != null) ? paramsExpr.Length : 0;
     object[] paramsObj = new object[size];
     for (int i = 0; i < size; i++)
     {
         paramsObj[i] = (paramsExpr[i] != null) ? paramsExpr[i].Eval(obj, ctx) : null;
     }
     object res = method.Invoke(thisObj, paramsObj);
     return res;
 }
 public abstract object Eval(object arg, MdaExprCtx ctx);
 public override object Eval(object obj, MdaExprCtx ctx)
 {
     object res;
     object childObj = parentExpr.Eval(obj, ctx);
     if (childObj != null)
     {
         res = subExpr.Eval(childObj, ctx);
     }
     else
     {
         res = null;
     }
     return res;
 }