Inheritance: DataDictionary.Namable
 public void copyTo(Case other)
 {
     base.copyTo(other);
     other.aPreConditions = aPreConditions;
     other.aExpression = aExpression;
     other.aComment = aComment;
 }
 public virtual void visit(Case obj, bool visitSubNodes)
 {
     visit ((Namable) obj, false);
     if (visitSubNodes){
     IXmlBBase[] Subs  = acceptor.subElements((IXmlBBase)obj);
     if (Subs != null){
     for (int i=0; i<Subs.Length; i++) {
       dispatch(Subs[i], true);
     } // If
     } // If
     }
 }
 public virtual void visit(Case obj)
 {
     visit(obj, true);
 }
 public void insertCases(int idx, Case el,Lock aLock)
 {
     __setDirty(true);
       allCases().Insert (idx, el);
     NotifyControllers(aLock);
 }
 public void appendCases(Lock aLock,Case el)
 {
     __setDirty(true);
       el.__setDirty(true);
       allCases().Add(el);
       acceptor.connectSon (this, el);
     NotifyControllers(aLock);
 }
        public override void visit(Case obj, bool visitSubNodes)
        {
            Functions.Case cas = obj as Functions.Case;

            try
            {
                Expression expression = cas.Expression;
                if (expression != null)
                {
                    expression.CheckExpression();
                    Type expressionType = cas.Expression.GetExpressionType();
                    if (expressionType != null && cas.EnclosingFunction != null &&
                        cas.EnclosingFunction.ReturnType != null)
                    {
                        if (!cas.EnclosingFunction.ReturnType.Match(expressionType))
                        {
                            cas.AddError("Expression type (" + expressionType.FullName +
                                         ") does not match function return type (" +
                                         cas.EnclosingFunction.ReturnType.Name + ")");
                        }
                    }
                    else
                    {
                        cas.AddError("Cannot determine expression type (6) for " + cas.Expression.ToString());
                    }
                }
                else
                {
                    cas.AddError("Cannot evaluate expression " + cas.ExpressionText);
                }
            }
            catch (Exception e)
            {
                cas.AddException(e);
            }

            base.visit(obj, visitSubNodes);
        }