Skip to content
Snippets Groups Projects
Commit ad2fb7c6 authored by Emma Söderberg's avatar Emma Söderberg
Browse files

Merged in feature-trace-coll-contribution (pull request #13)


Feature trace coll contribution

Approved-by: default avatarJesper Öqvist <jesper.oqvist@cs.lth.se>
parents 37e9b066 6b05365f
Branches
No related tags found
No related merge requests found
...@@ -99,6 +99,8 @@ aspect Trace { ...@@ -99,6 +99,8 @@ aspect Trace {
syn String AttrDecl.traceBeginAttr() = trace("begin " + traceSignature()); syn String AttrDecl.traceBeginAttr() = trace("begin " + traceSignature());
syn String AttrDecl.traceEndAttr() = trace("end " + traceSignature()); syn String AttrDecl.traceEndAttr() = trace("end " + traceSignature());
syn String AttrDecl.traceEndCachedAttr() = trace("end cached " + traceSignature()); syn String AttrDecl.traceEndCachedAttr() = trace("end cached " + traceSignature());
syn String CollEq.escapeConditionForTemplate() = getCondition().replace("\n", " ").replace("\"", "\\\"");
} }
aspect NewTrace { aspect NewTrace {
......
...@@ -234,7 +234,7 @@ $endif ...@@ -234,7 +234,7 @@ $endif
]] ]]
CollEq.contributeStatement [[ CollEq.contributeStatement [[
$include(CollEq.traceContributionBegin) $include(CollEq.traceContributionCheckBegin)
$if(#hasCondition) $if(#hasCondition)
if (#getCondition) { if (#getCondition) {
$include(CollEq.addValueToCollection) $include(CollEq.addValueToCollection)
...@@ -242,16 +242,18 @@ $if(#hasCondition) ...@@ -242,16 +242,18 @@ $if(#hasCondition)
$else $else
$include(CollEq.addValueToCollection) $include(CollEq.addValueToCollection)
$endif $endif
$include(CollEq.traceContributionEnd) $include(CollEq.traceContributionCheckEnd)
]] ]]
CollEq.addValueToCollection [[ CollEq.addValueToCollection [[
$if(#iterableValue) $if(#iterableValue)
for (#elementType value : #getValue) { for (#elementType value : #getValue) {
collection.$CombOp(value); collection.$CombOp(value);
$include(CollEq.traceContributionCheckMatch)
} }
$else $else
collection.$CombOp(#getValue); collection.$CombOp(#getValue);
$include(CollEq.traceContributionCheckMatch)
$endif $endif
]] ]]
......
...@@ -323,14 +323,24 @@ state().trace().flushAttr(this, "#hostClassName.#signatureJavaStyle", "", #(sign ...@@ -323,14 +323,24 @@ state().trace().flushAttr(this, "#hostClassName.#signatureJavaStyle", "", #(sign
$endif $endif
]] ]]
CollEq.traceContributionBegin [[ CollEq.traceContributionCheckBegin [[
$if (TraceColl) $if (TraceColl)
state().trace().contributionBegin(this, "#collectionId"); state().trace().contributionCheckBegin(this, "#collectionId", "#escapeConditionForTemplate");
$endif $endif
]] ]]
CollEq.traceContributionEnd [[ CollEq.traceContributionCheckEnd [[
$if (TraceColl) $if (TraceColl)
state().trace().contributionEnd(this, "#collectionId"); state().trace().contributionCheckEnd(this, "#collectionId", "#escapeConditionForTemplate");
$endif
]]
CollEq.traceContributionCheckMatch [[
$if (TraceColl)
$if(#iterableValue)
state().trace().contributionCheckMatch(this, "#collectionId", "#escapeConditionForTemplate", value);
$else
state().trace().contributionCheckMatch(this, "#collectionId", "#escapeConditionForTemplate", #getValue);
$endif
$endif $endif
]] ]]
...@@ -82,8 +82,9 @@ public static class Trace { ...@@ -82,8 +82,9 @@ public static class Trace {
INC_FLUSH_ATTR, INC_FLUSH_ATTR,
// Flag: --tracing=coll // Flag: --tracing=coll
CONTRIBUTION_BEGIN, CONTRIBUTION_CHECK_BEGIN,
CONTRIBUTION_END; CONTRIBUTION_CHECK_MATCH,
CONTRIBUTION_CHECK_END;
} }
/** /**
...@@ -338,18 +339,26 @@ public static class Trace { ...@@ -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) { public void contributionCheckBegin($ASTNode node, String attr, String check) {
receiver.accept($StateClass.Trace.Event.CONTRIBUTION_BEGIN, node, attr, "", ""); 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) { public void contributionCheckEnd($ASTNode node, String attr, String check) {
receiver.accept($StateClass.Trace.Event.CONTRIBUTION_END, node, attr, "", ""); 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 $endif
]] ]]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment