From 7e84448a2304e4cc7d9a8f12c595cc1ff1ba969a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emma=20S=C3=B6derberg?= <emma.m.soderberg@gmail.com> Date: Wed, 9 Dec 2020 15:53:35 +0100 Subject: [PATCH] Add more precise tracing of collection contributions --- src/template/ast/Collections.tt | 6 ++++-- src/template/trace/TraceHooks.tt | 14 ++++++++++---- src/template/trace/Tracer.tt | 25 +++++++++++++++++-------- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/template/ast/Collections.tt b/src/template/ast/Collections.tt index dda5d29c..b9e44fe5 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 e99d06e2..3140582b 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 ee3b37d3..7346ed00 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 ]] -- GitLab