Microsoft.Zing.Checker.VisitJoinStatement C# (CSharp) Méthode

VisitJoinStatement() private méthode

private VisitJoinStatement ( JoinStatement joinstmt ) : JoinStatement
joinstmt JoinStatement
Résultat JoinStatement
        private JoinStatement VisitJoinStatement(JoinStatement joinstmt)
        {
            if (joinstmt == null) return null;

            JoinPatternList newJoinPatternList = new JoinPatternList();

            for (int i = 0, n = joinstmt.joinPatternList.Length; i < n; i++)
            {
                if (joinstmt.joinPatternList[i] is TimeoutPattern && n != 1)
                {
                    // If we've already see a timeout in this join statement, then
                    // skip any subsequent ones and report an error
                    HandleError(joinstmt.joinPatternList[i], Error.TimeoutNotAlone);
                    return null;
                }

                JoinPattern newJoinPattern = (JoinPattern)this.Visit(joinstmt.joinPatternList[i]);

                if (newJoinPattern != null)
                    newJoinPatternList.Add(newJoinPattern);
            }

            joinstmt.joinPatternList = newJoinPatternList;
            joinstmt.statement = (Statement)this.Visit(joinstmt.statement);
            joinstmt.attributes = this.VisitAttributeList(joinstmt.attributes);

            if (joinstmt.joinPatternList.Length == 0 || joinstmt.statement == null)
                return null;

            return joinstmt;
        }