diff --git a/src/template/ast/Collections.tt b/src/template/ast/Collections.tt index dda5d29c0cb19d245d93f8c8c7b5064edd4fcfcb..b9e44fe5ff8cd7ad2f377bdaaf5f01c903f49f1e 100644 --- a/src/template/ast/Collections.tt +++ b/src/template/ast/Collections.tt @@ -234,15 +234,17 @@ $endif ]] CollEq.contributeStatement [[ -$include(CollEq.traceContributionBegin) + $include(CollEq.traceContributionBegin) $if(#hasCondition) if (#getCondition) { $include(CollEq.addValueToCollection) + $include(CollEq.traceContributionEnd) } $else $include(CollEq.addValueToCollection) + $include(CollEq.traceContributionEnd) $endif -$include(CollEq.traceContributionEnd) + $include(CollEq.traceContributionEnd) ]] CollEq.addValueToCollection [[ diff --git a/src/template/trace/TraceHooks.tt b/src/template/trace/TraceHooks.tt index e99d06e2dcb7847ca91ae034e7eecca5c359891c..3140582bd09ce7e1c0818dcaac02d9f020cae199 100644 --- a/src/template/trace/TraceHooks.tt +++ b/src/template/trace/TraceHooks.tt @@ -323,14 +323,20 @@ state().trace().flushAttr(this, "#hostClassName.#signatureJavaStyle", "", #(sign $endif ]] -CollEq.traceContributionBegin [[ +CollEq.traceContributionCheckBegin [[ $if (TraceColl) -state().trace().contributionBegin(this, "#collectionId"); +state().trace().contributionCheckBegin(this, "#collectionId", "#getCondition"); $endif ]] -CollEq.traceContributionEnd [[ +CollEq.traceContributionCheckEnd [[ $if (TraceColl) -state().trace().contributionEnd(this, "#collectionId"); +state().trace().contributionCheckEnd(this, "#collectionId", "#getCondition"); +$endif +]] + +CollEq.traceContributionCheckMatch [[ +$if (TraceColl) +state().trace().contributionCheckMatch(this, "#collectionId", "#getCondition", "#getValue"); $endif ]] diff --git a/src/template/trace/Tracer.tt b/src/template/trace/Tracer.tt index ee3b37d304ab987e5ad521b23d42339467b51003..7346ed001353445587eaaa57f98938e54b21901b 100644 --- a/src/template/trace/Tracer.tt +++ b/src/template/trace/Tracer.tt @@ -82,8 +82,9 @@ public static class Trace { INC_FLUSH_ATTR, // Flag: --tracing=coll - CONTRIBUTION_BEGIN, - CONTRIBUTION_END; + CONTRIBUTION_CHECK_BEGIN, + CONTRIBUTION_CHECK_MATCH, + CONTRIBUTION_CHECK_END; } /** @@ -338,18 +339,26 @@ public static class Trace { } /** - * Trace that a contribution to a collection attribute begun. + * Trace that a contribution check to a collection attribute begun. */ - public void contributionBegin($ASTNode node, String attr) { - receiver.accept($StateClass.Trace.Event.CONTRIBUTION_BEGIN, node, attr, "", ""); + public void contributioniCheckBegin($ASTNode node, String attr, String check) { + receiver.accept($StateClass.Trace.Event.CONTRIBUTION_CHECK_BEGIN, node, attr, check, ""); } /** - * Trace that a contribution to a collection attribute ended. + * Trace that a contribution check to a collection attribute ended. */ - public void contributionEnd($ASTNode node, String attr) { - receiver.accept($StateClass.Trace.Event.CONTRIBUTION_END, node, attr, "", ""); + public void contributionCheckEnd($ASTNode node, String attr, String check) { + receiver.accept($StateClass.Trace.Event.CONTRIBUTION_CHECK_END, node, attr, check, ""); } + + /** + * Trace that a contribution check to a collection attribute found a match. + */ + public void contributionCheckMatch($ASTNode node, String attr, String check, Object value) { + receiver.accept($StateClass.Trace.Event.CONTRIBUTION_CHECK_MATCH, node, attr, check, value); + } + } $endif ]]