public override List <String> doRule(SQLElement eaElement, SQLWrapperClasses.SQLRepository repository)
        {
            List <String> results = new List <string>();

            if (eaElement.Stereotype == SDMModelingMain.StatementNodeStereotype)
            {
                StatementNode statementNode = new StatementNode(repository, eaElement);
                statementNode.loadTreeFromTaggedValue();

                if (statementNode.StatementExpression != null)
                {
                    String result = statementNode.StatementExpression.ToString();
                    if (!ConsistencyUtil.checkExpression(eaElement, statementNode.StatementExpression, repository))
                    {
                        results.Add("StatementExpression is invalid: (" + result + ")");
                    }
                }
                else
                {
                    results.Add("StatementExpression is missing");
                }

                foreach (SQLConnector outgoingCon in eaElement.Connectors)
                {
                    if (outgoingCon.ClientID == eaElement.ElementID)
                    {
                        ActivityEdge edge = new ActivityEdge(repository, outgoingCon);
                        edge.loadTreeFromTaggedValue();
                        if (edge.GuardType == EdgeGuard.FAILURE || edge.GuardType == EdgeGuard.SUCCESS)
                        {
                            if (statementNode.StatementExpression is MethodCallExpression)
                            {
                                MethodCallExpression mCe    = statementNode.StatementExpression as MethodCallExpression;
                                SQLMethod            method = repository.GetMethodByGuid(mCe.MethodGuid);

                                if (method != null && method.ReturnType != "EBoolean")
                                {
                                    results.Add("Method must be of type EBoolean if StatementNode has success/failure guards");
                                }
                            }
                        }
                    }
                }
            }
            return(results);
        }