Skip to content
Snippets Groups Projects

Resolve "Refactorings/Clean-Up"

Merged René Schöne requested to merge 39-refactorings-clean-up into dev
3 files
+ 285
274
Compare changes
  • Side-by-side
  • Inline
Files
3
aspect EvaluationCounter {
public String ASTNode.{{evaluationCounterSummaryMethodName}}() {
{{#configEvaluationCounter}}
return {{evaluationCounterVariable}}.summary();
{{/configEvaluationCounter}}
{{^configEvaluationCounter}}
String message = "Option --evaluationCounter was not set. No Summary available";
{{logWarn}}(message);
return message;
{{/configEvaluationCounter}}
}
{{#configEvaluationCounter}}
static EvaluationCounter ASTNode.{{evaluationCounterVariable}} = new EvaluationCounter();
public void {{parentTypeName}}.ragconnectResetEvaluationCounter() {
{{#configEvaluationCounter}}
{{evaluationCounterVariable}}.reset();
{{/configEvaluationCounter}}
{{^configEvaluationCounter}}
{{logWarn}}("Option --evaluationCounter was not set. Nothing to reset!");
{{/configEvaluationCounter}}
}
public class EvaluationCounter {
private java.util.Map<String, java.util.Map<String, {{evaluationCounterInnerClass}}>> counters = new java.util.HashMap<>();
private final java.util.function.Function<? super String, ? extends java.util.Map<String, {{evaluationCounterInnerClass}}>> parentAbsent = key -> {
return new java.util.HashMap<>();
};
private final java.util.function.Function<? super String, ? extends {{evaluationCounterInnerClass}}> entityAbsent = key -> {
return new {{evaluationCounterInnerClass}}();
};
public void incrementReceive(String parentTypeName, String entityName) {
getCounter(parentTypeName, entityName).receive += 1;
}
public void incrementSend(String parentTypeName, String entityName) {
getCounter(parentTypeName, entityName).send += 1;
}
public void incrementCall(String parentTypeName, String entityName) {
getCounter(parentTypeName, entityName).call += 1;
}
public void incrementFirstNull(String parentTypeName, String entityName) {
getCounter(parentTypeName, entityName).firstNull += 1;
}
public void incrementSkip(String parentTypeName, String entityName) {
getCounter(parentTypeName, entityName).skip += 1;
}
public void incrementException(String parentTypeName, String entityName) {
getCounter(parentTypeName, entityName).exception += 1;
}
public void incrementReject(String parentTypeName, String entityName) {
getCounter(parentTypeName, entityName).reject += 1;
}
public String summary() {
StringBuilder sb = new StringBuilder();
// header
sb.append("parentTypeName,entityName,receive,send,call,firstNull,skip,exception,reject").append("\n");
// values
java.util.Set<String> sortedParentTypes = new java.util.TreeSet<>(counters.keySet());
for (String parentType : sortedParentTypes) {
java.util.Set<String> sortedEntityNames = new java.util.TreeSet<>(counters.get(parentType).keySet());
for (String entityName : sortedEntityNames) {
{{evaluationCounterInnerClass}} count = getCounter(parentType, entityName);
java.util.StringJoiner sj = new java.util.StringJoiner(",", "", "\n");
sj.add(parentType)
.add(entityName)
.add(Integer.toString(count.receive))
.add(Integer.toString(count.send))
.add(Integer.toString(count.call))
.add(Integer.toString(count.firstNull))
.add(Integer.toString(count.skip))
.add(Integer.toString(count.exception))
.add(Integer.toString(count.reject))
;
sb.append(sj);
}
}
return sb.toString();
}
private {{evaluationCounterInnerClass}} getCounter(String parentTypeName, String entityName) {
return counters.computeIfAbsent(parentTypeName, parentAbsent).computeIfAbsent(entityName, entityAbsent);
}
public void reset() {
counters = new java.util.HashMap<>();
}
}
class {{evaluationCounterInnerClass}} {
int receive = 0;
int send = 0;
int call = 0;
int firstNull = 0;
int skip = 0;
int exception = 0;
int reject = 0;
}
{{/configEvaluationCounter}}
}
Loading