diff --git a/src/jastadd/ast/Trace.jrag b/src/jastadd/ast/Trace.jrag index b22c6cc053d6bfd7b21cb2851695b2a64617c546..0e3da31b33bc80d90d74612af2599d1c4ebc13c7 100644 --- a/src/jastadd/ast/Trace.jrag +++ b/src/jastadd/ast/Trace.jrag @@ -100,7 +100,8 @@ aspect Trace { syn String AttrDecl.traceEndAttr() = trace("end " + traceSignature()); syn String AttrDecl.traceEndCachedAttr() = trace("end cached " + traceSignature()); - syn String CollEq.escapeConditionForTemplate() = getCondition().replace("\n", " ").replace("\"", "\\\""); + syn String CollEq.escapeConditionForTemplate() = + getCondition().replace("\n", " ").replace("\r", " ").replace("\"", "\\\""); } aspect NewTrace { diff --git a/src/template/concurrent/Trace.tt b/src/template/concurrent/Trace.tt index eb9646e0dd5061ec6e4bf958e0610f0183200af5..5158c550d9b3d28a0809c89cb03c537d0f03268e 100644 --- a/src/template/concurrent/Trace.tt +++ b/src/template/concurrent/Trace.tt @@ -3,15 +3,15 @@ AttrDecl.traceComputeEnd [[ $if (TraceCompute) $if(#isParameterized) $if(#isCircular) -state().trace().computeEnd(this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); +state().trace().computeEnd("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); $else -state().trace().computeEnd(this, "#hostClassName.#signatureJavaStyle", _parameters, _result); +state().trace().computeEnd("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _result); $endif $else $if(#isCircular) -state().trace().computeEnd(this, "#hostClassName.#signatureJavaStyle", "", _previous); +state().trace().computeEnd("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous); $else -state().trace().computeEnd(this, "#hostClassName.#signatureJavaStyle", "", _result); +state().trace().computeEnd("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _result); $endif $endif $endif @@ -21,18 +21,18 @@ AttrDecl.traceCircularCase1Change [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().circularNTACase1Change(this, "#hostClassName.#signatureJavaStyle", _parameters, +state().trace().circularNTACase1Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous.value + "->" + _next); $else -state().trace().circularNTACase1Change(this, "#hostClassName.#signatureJavaStyle", "", +state().trace().circularNTACase1Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous.value + "->" + _next); $endif $else $if(#isParameterized) -state().trace().circularCase1Change(this, "#hostClassName.#signatureJavaStyle", _parameters, +state().trace().circularCase1Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous.value + "->" + _next); $else -state().trace().circularCase1Change(this, "#hostClassName.#signatureJavaStyle", "", +state().trace().circularCase1Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous.value + "->" + _next); $endif $endif @@ -43,18 +43,18 @@ AttrDecl.traceCircularCase2Change [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().circularNTACase2Change(this, "#hostClassName.#signatureJavaStyle", _parameters, +state().trace().circularNTACase2Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous.value + "->" + _next); $else -state().trace().circularNTACase2Change(this, "#hostClassName.#signatureJavaStyle", "", +state().trace().circularNTACase2Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous.value + "->" + _next); $endif $else $if(#isParameterized) -state().trace().circularCase2Change(this, "#hostClassName.#signatureJavaStyle", _parameters, +state().trace().circularCase2Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous.value + "->" + _next); $else -state().trace().circularCase2Change(this, "#hostClassName.#signatureJavaStyle", "", +state().trace().circularCase2Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous.value + "->" + _next); $endif $endif @@ -65,15 +65,15 @@ AttrDecl.traceCircularExitCase2 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().exitCircularNTACase2(this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); +state().trace().exitCircularNTACase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); $else -state().trace().exitCircularNTACase2(this, "#hostClassName.#signatureJavaStyle", "", _previous); +state().trace().exitCircularNTACase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous); $endif $else $if(#isParameterized) -state().trace().exitCircularCase2(this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); +state().trace().exitCircularCase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); $else -state().trace().exitCircularCase2(this, "#hostClassName.#signatureJavaStyle", "", _previous); +state().trace().exitCircularCase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous); $endif $endif $endif @@ -83,15 +83,15 @@ AttrDecl.traceCircularExitCase3 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().exitCircularNTACase3(this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); +state().trace().exitCircularNTACase3("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); $else -state().trace().exitCircularNTACase3(this, "#hostClassName.#signatureJavaStyle", "", _previous); +state().trace().exitCircularNTACase3("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous); $endif $else $if(#isParameterized) -state().trace().exitCircularCase3(this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); +state().trace().exitCircularCase3("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); $else -state().trace().exitCircularCase3(this, "#hostClassName.#signatureJavaStyle", "", _previous); +state().trace().exitCircularCase3("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous); $endif $endif $endif @@ -101,15 +101,15 @@ AttrDecl.traceCircularEnterCase2 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().enterCircularNTACase2(this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters).value); +state().trace().enterCircularNTACase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters).value); $else -state().trace().enterCircularNTACase2(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value.get().value); +state().trace().enterCircularNTACase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value.get().value); $endif $else $if(#isParameterized) -state().trace().enterCircularCase2(this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters).value); +state().trace().enterCircularCase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters).value); $else -state().trace().enterCircularCase2(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value.get().value); +state().trace().enterCircularCase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value.get().value); $endif $endif $endif @@ -119,15 +119,15 @@ AttrDecl.traceCircularEnterCase1 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().enterCircularNTACase1(this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters).value); +state().trace().enterCircularNTACase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters).value); $else -state().trace().enterCircularNTACase1(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value.get().value); +state().trace().enterCircularNTACase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value.get().value); $endif $else $if(#isParameterized) -state().trace().enterCircularCase1(this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters).value); +state().trace().enterCircularCase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters).value); $else -state().trace().enterCircularCase1(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value.get().value); +state().trace().enterCircularCase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value.get().value); $endif $endif $endif @@ -137,15 +137,15 @@ AttrDecl.traceCircularExitCase1 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().exitCircularNTACase1(this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); +state().trace().exitCircularNTACase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); $else -state().trace().exitCircularNTACase1(this, "#hostClassName.#signatureJavaStyle", "", _previous); +state().trace().exitCircularNTACase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous); $endif $else $if(#isParameterized) -state().trace().exitCircularCase1(this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); +state().trace().exitCircularCase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _previous); $else -state().trace().exitCircularCase1(this, "#hostClassName.#signatureJavaStyle", "", _previous); +state().trace().exitCircularCase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _previous); $endif $endif $endif @@ -156,12 +156,12 @@ $if (TraceCache) $if(#isMemoized) $if(#isParameterized) $if(#isCircular) -state().trace().cacheRead(this, "#hostClassName.#signatureJavaStyle", _parameters, _value); +state().trace().cacheRead("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value); $else -state().trace().cacheRead(this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters)); +state().trace().cacheRead("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters)); $endif $else -state().trace().cacheRead(this, "#hostClassName.#signatureJavaStyle", "", _value); +state().trace().cacheRead("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", _value); $endif $endif $endif diff --git a/src/template/incremental/Notification.tt b/src/template/incremental/Notification.tt index 480c4c9ff0c7e612010c2156863f1c619e9da330..ef4359c97ad9f46ddf83a7689fb1b0c48ef53384 100644 --- a/src/template/incremental/Notification.tt +++ b/src/template/incremental/Notification.tt @@ -234,9 +234,7 @@ $endif #resetVisit #resetCache #(signature)_handler.notifyDependencies(); - $if (TraceFlush) - $HostClass.this.state().trace().flushIncAttr($HostClass.this, "#signature", "", ""); - $endif + $include(AttrDecl.traceFlushIncAttr) } $endif $endif diff --git a/src/template/trace/TraceHooks.tt b/src/template/trace/TraceHooks.tt index 46bd522c0f287824ea46cb025f1c7cb2b510bf40..31090ec4998e0d27036c3eca54d79a7cd2c8e1b4 100644 --- a/src/template/trace/TraceHooks.tt +++ b/src/template/trace/TraceHooks.tt @@ -37,7 +37,7 @@ AttrDecl.traceComputeBegin [[ $if (TraceCompute) $if(#isParameterized) $if(#isCircular) -state().trace().computeBegin(this, "#hostClassName.#signatureJavaStyle", _parameters, ""); +state().trace().computeBegin("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, ""); $else $if(!#isMemoized) $if(!VisitCheckEnabled) @@ -48,10 +48,10 @@ Object _parameters = java.util.Arrays.asList(#parameters); $endif $endif $endif -state().trace().computeBegin(this, "#hostClassName.#signatureJavaStyle", _parameters, ""); +state().trace().computeBegin("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, ""); $endif $else -state().trace().computeBegin(this, "#hostClassName.#signatureJavaStyle", "", ""); +state().trace().computeBegin("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", ""); $endif $endif ]] @@ -60,12 +60,12 @@ AttrDecl.traceComputeEnd [[ $if (TraceCompute) $if(#isParameterized) $if(#isCircular) -state().trace().computeEnd(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().computeEnd("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().computeEnd(this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_value); +state().trace().computeEnd("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_value); $endif $else -state().trace().computeEnd(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().computeEnd("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif ]] @@ -73,9 +73,9 @@ $endif AttrDecl.traceComputeEndInline [[ $if (TraceCompute) $if(#isParameterized) -state().trace().computeEnd(this, "#hostClassName.#signatureJavaStyle", _parameters, ""); +state().trace().computeEnd("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, ""); $else -state().trace().computeEnd(this, "#hostClassName.#signatureJavaStyle", "", ""); +state().trace().computeEnd("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", ""); $endif $endif ]] @@ -85,12 +85,12 @@ $if (TraceCache) $if(#isMemoized) $if(#isParameterized) $if(#isCircular) -state().trace().cacheRead(this, "#hostClassName.#signatureJavaStyle", _parameters, _cache); +state().trace().cacheRead("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _cache); $else -state().trace().cacheRead(this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters)); +state().trace().cacheRead("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_values.get(_parameters)); $endif $else -state().trace().cacheRead(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().cacheRead("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif $endif @@ -101,12 +101,12 @@ $if (TraceCache) $if(#isMemoized) $if(#isParameterized) $if(#isCircular) -state().trace().cacheWrite(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().cacheWrite("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().cacheWrite(this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_value); +state().trace().cacheWrite("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_value); $endif $else -state().trace().cacheWrite(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().cacheWrite("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif $endif @@ -117,12 +117,12 @@ $if (TraceCache) $if(#isMemoized) $if(#isParameterized) $if(#isCircular) -state().trace().cacheAbort(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().cacheAbort("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().cacheAbort(this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_value); +state().trace().cacheAbort("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, #(signature)_value); $endif $else -state().trace().cacheAbort(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().cacheAbort("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif $endif @@ -132,15 +132,15 @@ AttrDecl.traceCircularEnterCase1 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().enterCircularNTACase1(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().enterCircularNTACase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().enterCircularNTACase1(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().enterCircularNTACase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $else $if(#isParameterized) -state().trace().enterCircularCase1(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().enterCircularCase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().enterCircularCase1(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().enterCircularCase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif $endif @@ -150,18 +150,18 @@ AttrDecl.traceCircularCase1Change [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().circularNTACase1Change(this, "#hostClassName.#signatureJavaStyle", _parameters, +state().trace().circularNTACase1Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value + "->" + new_#(signature)_value); $else -state().trace().circularNTACase1Change(this, "#hostClassName.#signatureJavaStyle", "", +state().trace().circularNTACase1Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value + "->" + new_#(signature)_value); $endif $else $if(#isParameterized) -state().trace().circularCase1Change(this, "#hostClassName.#signatureJavaStyle", _parameters, +state().trace().circularCase1Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value + "->" + new_#(signature)_value); $else -state().trace().circularCase1Change(this, "#hostClassName.#signatureJavaStyle", "", +state().trace().circularCase1Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value + "->" + new_#(signature)_value); $endif $endif @@ -172,15 +172,15 @@ AttrDecl.traceCircularExitCase1 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().exitCircularNTACase1(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().exitCircularNTACase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().exitCircularNTACase1(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().exitCircularNTACase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $else $if(#isParameterized) -state().trace().exitCircularCase1(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().exitCircularCase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().exitCircularCase1(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().exitCircularCase1("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif $endif @@ -190,15 +190,15 @@ AttrDecl.traceCircularEnterCase2 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().enterCircularNTACase2(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().enterCircularNTACase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().enterCircularNTACase2(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().enterCircularNTACase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $else $if(#isParameterized) -state().trace().enterCircularCase2(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().enterCircularCase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().enterCircularCase2(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().enterCircularCase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif $endif @@ -208,18 +208,18 @@ AttrDecl.traceCircularCase2Change [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().circularNTACase2Change(this, "#hostClassName.#signatureJavaStyle", _parameters, +state().trace().circularNTACase2Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value + "->" + new_#(signature)_value); $else -state().trace().circularNTACase2Change(this, "#hostClassName.#signatureJavaStyle", "", +state().trace().circularNTACase2Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value + "->" + new_#(signature)_value); $endif $else $if(#isParameterized) -state().trace().circularCase2Change(this, "#hostClassName.#signatureJavaStyle", _parameters, +state().trace().circularCase2Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value + "->" + new_#(signature)_value); $else -state().trace().circularCase2Change(this, "#hostClassName.#signatureJavaStyle", "", +state().trace().circularCase2Change("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value + "->" + new_#(signature)_value); $endif $endif @@ -230,15 +230,15 @@ AttrDecl.traceCircularExitCase2 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().exitCircularNTACase2(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().exitCircularNTACase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().exitCircularNTACase2(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().exitCircularNTACase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $else $if(#isParameterized) -state().trace().exitCircularCase2(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().exitCircularCase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().exitCircularCase2(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().exitCircularCase2("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif $endif @@ -248,15 +248,15 @@ AttrDecl.traceCircularExitCase3 [[ $if (TraceCircular) $if(#getNTA) $if(#isParameterized) -state().trace().exitCircularNTACase3(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().exitCircularNTACase3("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().exitCircularNTACase3(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().exitCircularNTACase3("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $else $if(#isParameterized) -state().trace().exitCircularCase3(this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); +state().trace().exitCircularCase3("#getAspectName", this, "#hostClassName.#signatureJavaStyle", _parameters, _value.value); $else -state().trace().exitCircularCase3(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().exitCircularCase3("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif $endif @@ -279,13 +279,13 @@ $endif ASTNode.traceRewriteCached [[ $if (TraceRewrite) -state().trace().cacheWrite(this, "ASTNode.getChild", i, nodeToString(node)); +state().trace().cacheWrite("AST", this, "ASTNode.getChild", i, nodeToString(node)); $endif ]] ASTNode.traceRewriteCacheAbort [[ $if (TraceRewrite) -state().trace().cacheAbort(this, "ASTNode.getChild", i, nodeToString(node)); +state().trace().cacheAbort("AST", this, "ASTNode.getChild", i, nodeToString(node)); $endif ]] @@ -316,31 +316,37 @@ $endif AttrDecl.traceFlushAttr [[ $if (TraceFlush) $if(#isParameterized) -state().trace().flushAttr(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_values); +state().trace().flushAttr("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_values); $else -state().trace().flushAttr(this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); +state().trace().flushAttr("#getAspectName", this, "#hostClassName.#signatureJavaStyle", "", #(signature)_value); $endif $endif ]] +AttrDecl.traceFlushIncAttr [[ +$if (TraceFlush) +state.trace().flushIncAttr("#getAspectName", fNode, fAttrID, "", ""); +$endif +]] + CollEq.traceContributionCheckBegin [[ $if (TraceColl) -state().trace().contributionCheckBegin(this, "#collectionId", "#escapeConditionForTemplate"); +state().trace().contributionCheckBegin("#getAspectName", this, "#collectionId", "#escapeConditionForTemplate"); $endif ]] CollEq.traceContributionCheckEnd [[ $if (TraceColl) -state().trace().contributionCheckEnd(this, "#collectionId", "#escapeConditionForTemplate"); +state().trace().contributionCheckEnd("#getAspectName", this, "#collectionId", "#escapeConditionForTemplate"); $endif ]] CollEq.traceContributionCheckMatch [[ $if (TraceColl) $if(#iterableValue) -state().trace().contributionCheckMatch(this, "#collectionId", "#escapeConditionForTemplate", value); +state().trace().contributionCheckMatch("#getAspectName", this, "#collectionId", "#escapeConditionForTemplate", value); $else -state().trace().contributionCheckMatch(this, "#collectionId", "#escapeConditionForTemplate", #getValue); +state().trace().contributionCheckMatch("#getAspectName", this, "#collectionId", "#escapeConditionForTemplate", #getValue); $endif $endif ]] diff --git a/src/template/trace/Tracer.tt b/src/template/trace/Tracer.tt index 0a90a599f74e7775c12397c6386d681cac74b15c..481a03472d22de8f56758725d2a217efc1fdcd04 100644 --- a/src/template/trace/Tracer.tt +++ b/src/template/trace/Tracer.tt @@ -90,13 +90,20 @@ public static class Trace { TOKEN_READ; } + // For traced operations inherent in all ASTs, e.g., copy, or from elements + // derived from the grammar, e.g., tokens. + public static final String ASPECT_AST = "AST"; + /** * Functional interface for a trace event receiver. * This can be implemented by applications that want to trace attribute evaluation. */ public interface Receiver { - void accept($StateClass.Trace.Event event, $ASTNode node, String attribute, - Object params, Object value); + void accept($StateClass.Trace.Event event, $ASTNode node, String attribute, Object params, Object value); + default void accept($StateClass.Trace.Event event, String aspect, $ASTNode node, String attribute, + Object params, Object value) { + accept(event, node, attribute, params, value); + } } public Trace(Receiver receiver) { @@ -129,40 +136,40 @@ public static class Trace { * Trace that an attribute instance started its computation. * @param value The value of the attribute instance. */ - public void computeBegin($ASTNode node, String attr, Object params, Object value) { - receiver.accept(Event.COMPUTE_BEGIN, node, attr, params, value); + public void computeBegin(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept(Event.COMPUTE_BEGIN, aspect, node, attr, params, value); } /** * Trace that an attribute instance ended its computation. * @param value The value of the attribute instance. */ - public void computeEnd($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.COMPUTE_END, node, attr, params, value); + public void computeEnd(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.COMPUTE_END, aspect, node, attr, params, value); } /** * Trace that the cache of an attribute instances was read. * @param value The value of the attribute instance. */ - public void cacheRead($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CACHE_READ, node, attr, params, value); + public void cacheRead(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CACHE_READ, aspect, node, attr, params, value); } /** * Trace that an attribute instance was cached. * @param value The value of the attribute instance. */ - public void cacheWrite($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CACHE_WRITE, node, attr, params, value); + public void cacheWrite(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CACHE_WRITE, aspect, node, attr, params, value); } /** * Trace that the caching of an attribute instance was aborted. * @param value The value of the attribute instance. */ - public void cacheAbort($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CACHE_ABORT, node, attr, params, value); + public void cacheAbort(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CACHE_ABORT, aspect, node, attr, params, value); } /** @@ -170,7 +177,7 @@ public static class Trace { * @param value The value of the rewrite. */ public void enterRewriteCase1($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.REWRITE_CASE1_START, node, attr, params, value); + receiver.accept($StateClass.Trace.Event.REWRITE_CASE1_START, ASPECT_AST, node, attr, params, value); } /** @@ -178,7 +185,7 @@ public static class Trace { * @param value The value of the rewrite before and after. */ public void rewriteChange($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.REWRITE_CASE1_CHANGE, node, attr, params, value); + receiver.accept($StateClass.Trace.Event.REWRITE_CASE1_CHANGE, ASPECT_AST, node, attr, params, value); } /** @@ -186,7 +193,7 @@ public static class Trace { * @param value The value of the rewrite. */ public void exitRewriteCase1($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.REWRITE_CASE1_RETURN, node, attr, params, value); + receiver.accept($StateClass.Trace.Event.REWRITE_CASE1_RETURN, ASPECT_AST, node, attr, params, value); } /** @@ -194,7 +201,7 @@ public static class Trace { * @param value The value of the rewrite. */ public void exitRewriteCase2($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.REWRITE_CASE2_RETURN, node, attr, params, value); + receiver.accept($StateClass.Trace.Event.REWRITE_CASE2_RETURN, ASPECT_AST, node, attr, params, value); } /** @@ -202,119 +209,119 @@ public static class Trace { * @param value The value of the rewrite. */ public void exitRewriteCase3($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.REWRITE_CASE3_RETURN, node, attr, params, value); + receiver.accept($StateClass.Trace.Event.REWRITE_CASE3_RETURN, ASPECT_AST, node, attr, params, value); } /** * Trace that a circular attribute instance entered evaluation case 1. * @param value The value of the circular attribute instance. */ - public void enterCircularCase1($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE1_START, node, attr, params, value); + public void enterCircularCase1(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE1_START, aspect, node, attr, params, value); } /** * Trace that a circular attribute instance in evaluation case 1 changed value. * @param value The value of the circular attribute instance, before and after. */ - public void circularCase1Change($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE1_CHANGE, node, attr, params, value); + public void circularCase1Change(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE1_CHANGE, aspect, node, attr, params, value); } /** * Trace that a circular attribute instance returned from evaluation case 1. * @param value The value of the circular attribute instance. */ - public void exitCircularCase1($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE1_RETURN, node, attr, params, value); + public void exitCircularCase1(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE1_RETURN, aspect, node, attr, params, value); } /** * Trace that a circular attribute instance entered evaluation case 2. * @param value The value of the circular attribute instance. */ - public void enterCircularCase2($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE2_START, node, attr, params, value); + public void enterCircularCase2(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE2_START, aspect, node, attr, params, value); } /** * Trace that a circular attribute instance in evaluation case 2 changed value. * @param value The value of the circular attribute instance, before and after. */ - public void circularCase2Change($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE2_CHANGE, node, attr, params, value); + public void circularCase2Change(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE2_CHANGE, aspect, node, attr, params, value); } /** * Trace that a circular attribute instance returned from evaluation case 2. * @param value The value of the circular attribute instance. */ - public void exitCircularCase2($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE2_RETURN, node, attr, params, value); + public void exitCircularCase2(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE2_RETURN, aspect, node, attr, params, value); } /** * Trace that a circular attribute instance returned from evaluation case 2. * @param value The value of the circular attribute instance. */ - public void exitCircularCase3($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE3_RETURN, node, attr, params, value); + public void exitCircularCase3(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_CASE3_RETURN, aspect, node, attr, params, value); } /** * Trace that a circular NTA entered evaluation case 1. * @param value The value of the circular NTA. */ - public void enterCircularNTACase1($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE1_START, node, attr, params, value); + public void enterCircularNTACase1(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE1_START, aspect, node, attr, params, value); } /** * Trace that a circular NTA in evaluation case 1 changed value. * @param value The value of the circular NTA, before and after. */ - public void circularNTACase1Change($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE1_CHANGE, node, attr, params, value); + public void circularNTACase1Change(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE1_CHANGE, aspect, node, attr, params, value); } /** * Trace that a circular NTA returned from evaluation case 1. * @param value The value of the circular NTA. */ - public void exitCircularNTACase1($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE1_RETURN, node, attr, params, value); + public void exitCircularNTACase1(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE1_RETURN, aspect, node, attr, params, value); } /** * Trace that a circular NTA entered evaluation case 2. * @param value The value of the circular NTA. */ - public void enterCircularNTACase2($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE2_START, node, attr, params, value); + public void enterCircularNTACase2(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE2_START, aspect, node, attr, params, value); } /** * Trace that a circular NTA in evaluation case 2 changed value. * @param value The value of the circular NTA, before and after. */ - public void circularNTACase2Change($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE2_CHANGE, node, attr, params, value); + public void circularNTACase2Change(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE2_CHANGE, aspect, node, attr, params, value); } /** * Trace that a circular NTA returned from evaluation case 2. * @param value The value of the circular NTA. */ - public void exitCircularNTACase2($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE2_RETURN, node, attr, params, value); + public void exitCircularNTACase2(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE2_RETURN, aspect, node, attr, params, value); } /** * Trace that a circular NTA returned from evaluation case 2. * @param value The value of the circular NTA. */ - public void exitCircularNTACase3($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE3_RETURN, node, attr, params, value); + public void exitCircularNTACase3(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.CIRCULAR_NTA_CASE3_RETURN, aspect, node, attr, params, value); } /** @@ -323,50 +330,50 @@ public static class Trace { * @param value The value of the node. */ public void copyNode($ASTNode node, Object value) { - receiver.accept($StateClass.Trace.Event.COPY_NODE, node, "ASTNode.copy", "", value); + receiver.accept($StateClass.Trace.Event.COPY_NODE, ASPECT_AST, node, "ASTNode.copy", "", value); } /** * Trace that an attribute was flushed. * @param value The value of the attribute. */ - public void flushAttr($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.FLUSH_ATTR, node, attr, params, value); + public void flushAttr(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.FLUSH_ATTR, aspect, node, attr, params, value); } /** * Trace that an attribute was flushed by incremental evaluation. */ - public void flushIncAttr($ASTNode node, String attr, Object params, Object value) { - receiver.accept($StateClass.Trace.Event.INC_FLUSH_ATTR, node, attr, params, value); + public void flushIncAttr(String aspect, $ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.INC_FLUSH_ATTR, aspect, node, attr, params, value); } /** * Trace that a contribution check to a collection attribute begun. */ - public void contributionCheckBegin($ASTNode node, String attr, String check) { - receiver.accept($StateClass.Trace.Event.CONTRIBUTION_CHECK_BEGIN, node, attr, check, ""); + public void contributionCheckBegin(String aspect, $ASTNode node, String attr, String check) { + receiver.accept($StateClass.Trace.Event.CONTRIBUTION_CHECK_BEGIN, aspect, node, attr, check, ""); } /** * Trace that a contribution check to a collection attribute ended. */ - public void contributionCheckEnd($ASTNode node, String attr, String check) { - receiver.accept($StateClass.Trace.Event.CONTRIBUTION_CHECK_END, node, attr, check, ""); + public void contributionCheckEnd(String aspect, $ASTNode node, String attr, String check) { + receiver.accept($StateClass.Trace.Event.CONTRIBUTION_CHECK_END, aspect, 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); + public void contributionCheckMatch(String aspect, $ASTNode node, String attr, String check, Object value) { + receiver.accept($StateClass.Trace.Event.CONTRIBUTION_CHECK_MATCH, aspect, node, attr, check, value); } /** * Trace that a token was read. */ public void tokenRead($ASTNode node, String token, Object value) { - receiver.accept($StateClass.Trace.Event.TOKEN_READ, node, token, "", value); + receiver.accept($StateClass.Trace.Event.TOKEN_READ, ASPECT_AST, node, token, "", value); } }