public ThenClauseComposite CreateBy(ParseNode clauseSubtree)
		{
			var result = new ThenClauseComposite();
			foreach (var whenClause in _thenClauses.Keys)
			{
				var clause = FindRecursive(whenClause, clauseSubtree.Nodes.ToArray());
				if (clause == null)
				{
					continue;
				}

				result.Add(_thenClauses[whenClause](clause));
			}
			return result;
		}
		public MailRule(WhenClauseComposite whenClause, ThenClauseComposite thenClause, string ruleLine)
		{
			_whenClause = whenClause;
			_thenClause = thenClause;
			_ruleLine = ruleLine;
		}
 public MailRule(WhenClauseComposite whenClause, ThenClauseComposite thenClause)
 {
     _whenClause = whenClause;
     _thenClause = thenClause;
 }