Skip to content

Commit 327f914

Browse files
committed
atomic -> elementary
1 parent 0a4b318 commit 327f914

40 files changed

Lines changed: 248 additions & 248 deletions

src/main/java/org/variantsync/diffdetective/analysis/AnalysisResult.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
import org.variantsync.diffdetective.diff.difftree.serialize.DiffTreeSerializeDebugData;
44
import org.variantsync.diffdetective.diff.result.DiffError;
5-
import org.variantsync.diffdetective.metadata.AtomicPatternCount;
5+
import org.variantsync.diffdetective.metadata.ElementaryPatternCount;
66
import org.variantsync.diffdetective.metadata.ExplainedFilterSummary;
77
import org.variantsync.diffdetective.metadata.Metadata;
8-
import org.variantsync.diffdetective.pattern.atomic.proposed.ProposedAtomicPatterns;
8+
import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
99
import org.variantsync.diffdetective.util.IO;
1010
import org.variantsync.functjonal.Functjonal;
1111
import org.variantsync.functjonal.category.InplaceMonoid;
@@ -40,7 +40,7 @@ public static Map.Entry<String, BiConsumer<AnalysisResult, String>> storeAsCusto
4040
a.max.set(CommitProcessTime.max(a.max, b.max));
4141
a.debugData.append(b.debugData);
4242
a.filterHits.append(b.filterHits);
43-
a.atomicPatternCounts.append(b.atomicPatternCounts);
43+
a.elementaryPatternCounts.append(b.elementaryPatternCounts);
4444
MergeMap.putAllValues(a.customInfo, b.customInfo, Semigroup.assertEquals());
4545
a.diffErrors.append(b.diffErrors);
4646
};
@@ -74,7 +74,7 @@ public static Map.Entry<String, BiConsumer<AnalysisResult, String>> storeAsCusto
7474
public final CommitProcessTime min, max;
7575
public final DiffTreeSerializeDebugData debugData;
7676
public ExplainedFilterSummary filterHits;
77-
public AtomicPatternCount atomicPatternCounts;
77+
public ElementaryPatternCount elementaryPatternCounts;
7878
private final LinkedHashMap<String, String> customInfo = new LinkedHashMap<>();
7979
private final MergeMap<DiffError, Integer> diffErrors = new MergeMap<>(new HashMap<>(), Integer::sum);
8080

@@ -110,7 +110,7 @@ public AnalysisResult(
110110
this.runtimeWithMultithreadingInSeconds = runtimeWithMultithreadingInSeconds;
111111
this.debugData = debugData;
112112
this.filterHits = filterHits;
113-
this.atomicPatternCounts = new AtomicPatternCount();
113+
this.elementaryPatternCounts = new ElementaryPatternCount();
114114
this.min = min;
115115
this.max = max;
116116
}
@@ -136,7 +136,7 @@ public static AnalysisResult importFrom(final Path p, final Map<String, BiConsum
136136
AnalysisResult result = new AnalysisResult();
137137

138138
final List<String> filterHitsLines = new ArrayList<>();
139-
final List<String> atomicPatternCountsLines = new ArrayList<>();
139+
final List<String> elementaryPatternCountsLines = new ArrayList<>();
140140

141141
String fileInput = IO.readAsString(p); // read in metadata file
142142
fileInput = fileInput.replace("\r", ""); // remove carriage returns if present
@@ -181,13 +181,13 @@ public static AnalysisResult importFrom(final Path p, final Map<String, BiConsum
181181
// temporary fix for renaming from Unchanged to Untouched
182182
final String unchanged = "Unchanged";
183183
if (key.startsWith(unchanged)) {
184-
key = ProposedAtomicPatterns.Untouched.getName();
184+
key = ProposedElementaryPatterns.Untouched.getName();
185185
line = key + line.substring(unchanged.length());
186186
}
187187

188188
final String finalKey = key;
189-
if (ProposedAtomicPatterns.All.stream().anyMatch(pattern -> pattern.getName().equals(finalKey))) {
190-
atomicPatternCountsLines.add(line);
189+
if (ProposedElementaryPatterns.All.stream().anyMatch(pattern -> pattern.getName().equals(finalKey))) {
190+
elementaryPatternCountsLines.add(line);
191191
} else if (key.startsWith(ExplainedFilterSummary.FILTERED_MESSAGE_BEGIN)) {
192192
filterHitsLines.add(line);
193193
} else if (key.startsWith(ERROR_BEGIN)) {
@@ -208,7 +208,7 @@ public static AnalysisResult importFrom(final Path p, final Map<String, BiConsum
208208
}
209209

210210
result.filterHits = ExplainedFilterSummary.parse(filterHitsLines);
211-
result.atomicPatternCounts = AtomicPatternCount.parse(atomicPatternCountsLines, p.toString());
211+
result.elementaryPatternCounts = ElementaryPatternCount.parse(elementaryPatternCountsLines, p.toString());
212212

213213
return result;
214214
}
@@ -230,7 +230,7 @@ public LinkedHashMap<String, Object> snapshot() {
230230
snap.putAll(customInfo);
231231
snap.putAll(debugData.snapshot());
232232
snap.putAll(filterHits.snapshot());
233-
snap.putAll(atomicPatternCounts.snapshot());
233+
snap.putAll(elementaryPatternCounts.snapshot());
234234
snap.putAll(Functjonal.bimap(diffErrors, error -> ERROR_BEGIN + error + ERROR_END, Object::toString));
235235
return snap;
236236
}

src/main/java/org/variantsync/diffdetective/diff/difftree/filter/DiffTreeFilter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import org.variantsync.diffdetective.diff.difftree.DiffNode;
44
import org.variantsync.diffdetective.diff.difftree.DiffTree;
55

6-
import static org.variantsync.diffdetective.pattern.atomic.proposed.ProposedAtomicPatterns.*;
6+
import static org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns.*;
77

88
/**
99
* A filter on difftrees that is equipped with some metadata T (e.g., for debugging or logging).
@@ -21,7 +21,7 @@ public static TaggedPredicate<String, DiffTree> Any() {
2121

2222
public static TaggedPredicate<String, DiffTree> moreThanOneCodeNode() {
2323
return new TaggedPredicate<>(
24-
"has more than one atomic pattern",
24+
"has more than one elementary pattern",
2525
tree -> tree.count(DiffNode::isCode) > 1
2626
);
2727
}

src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseAtomicPatterns.java renamed to src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseElementaryPatterns.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package org.variantsync.diffdetective.diff.difftree.transform;
22

33
import org.variantsync.diffdetective.diff.difftree.DiffTree;
4-
import org.variantsync.diffdetective.pattern.atomic.AtomicPatternCatalogue;
4+
import org.variantsync.diffdetective.pattern.elementary.ElementaryPatternCatalogue;
55

66
import java.util.List;
77

8-
public class CollapseAtomicPatterns implements DiffTreeTransformer {
8+
public class CollapseElementaryPatterns implements DiffTreeTransformer {
99
private final DiffTreeTransformer relabelNodes;
1010

11-
public CollapseAtomicPatterns(final AtomicPatternCatalogue atomics) {
11+
public CollapseElementaryPatterns(final ElementaryPatternCatalogue patterns) {
1212
relabelNodes = new RelabelNodes(d -> {
1313
if (d.isCode()) {
14-
return atomics.match(d).getName();
14+
return patterns.match(d).getName();
1515
} else {
1616
return d.codeType.name;
1717
}

src/main/java/org/variantsync/diffdetective/metadata/AtomicPatternCount.java renamed to src/main/java/org/variantsync/diffdetective/metadata/ElementaryPatternCount.java

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package org.variantsync.diffdetective.metadata;
22

33
import org.variantsync.diffdetective.diff.CommitDiff;
4-
import org.variantsync.diffdetective.pattern.atomic.AtomicPattern;
5-
import org.variantsync.diffdetective.pattern.atomic.AtomicPatternCatalogue;
6-
import org.variantsync.diffdetective.pattern.atomic.proposed.ProposedAtomicPatterns;
4+
import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
5+
import org.variantsync.diffdetective.pattern.elementary.ElementaryPatternCatalogue;
6+
import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
77
import org.variantsync.diffdetective.util.Assert;
88
import org.variantsync.functjonal.Functjonal;
99
import org.variantsync.functjonal.category.InplaceSemigroup;
@@ -14,7 +14,7 @@
1414
import java.util.List;
1515
import java.util.stream.Collectors;
1616

17-
public class AtomicPatternCount implements Metadata<AtomicPatternCount> {
17+
public class ElementaryPatternCount implements Metadata<ElementaryPatternCount> {
1818
public static class Occurrences {
1919
public static InplaceSemigroup<Occurrences> ISEMIGROUP = (a, b) -> {
2020
a.totalAmount += b.totalAmount;
@@ -43,43 +43,43 @@ public String toString() {
4343
}
4444
}
4545

46-
public static InplaceSemigroup<AtomicPatternCount> ISEMIGROUP = (a, b) -> MergeMap.putAllValues(a.occurences, b.occurences, Occurrences.ISEMIGROUP);
46+
public static InplaceSemigroup<ElementaryPatternCount> ISEMIGROUP = (a, b) -> MergeMap.putAllValues(a.occurences, b.occurences, Occurrences.ISEMIGROUP);
4747

48-
private final LinkedHashMap<AtomicPattern, Occurrences> occurences;
48+
private final LinkedHashMap<ElementaryPattern, Occurrences> occurences;
4949

50-
public AtomicPatternCount() {
51-
this(ProposedAtomicPatterns.Instance);
50+
public ElementaryPatternCount() {
51+
this(ProposedElementaryPatterns.Instance);
5252
}
5353

54-
public AtomicPatternCount(final AtomicPatternCatalogue patterns) {
54+
public ElementaryPatternCount(final ElementaryPatternCatalogue patterns) {
5555
occurences = new LinkedHashMap<>();
56-
for (final AtomicPattern p : patterns.all()) {
56+
for (final ElementaryPattern p : patterns.all()) {
5757
occurences.put(p, new Occurrences());
5858
}
5959
}
6060

61-
public void reportOccurrenceFor(final AtomicPattern pattern, CommitDiff commit) {
61+
public void reportOccurrenceFor(final ElementaryPattern pattern, CommitDiff commit) {
6262
Assert.assertTrue(
6363
occurences.containsKey(pattern),
6464
() -> "Reported unkown pattern \""
6565
+ pattern.getName()
6666
+ "\" but expected one of "
6767
+ occurences.keySet().stream()
68-
.map(AtomicPattern::getName)
68+
.map(ElementaryPattern::getName)
6969
.collect(Collectors.joining())
7070
+ "!"
7171
);
7272
occurences.get(pattern).increment(commit);
7373
}
7474

7575
/**
76-
* Parses lines containing {@link AtomicPattern AtomicPatterns} to {@link AtomicPatternCount}.
76+
* Parses lines containing {@link ElementaryPattern elementary patterns} to {@link ElementaryPatternCount}.
7777
*
78-
* @param lines Lines containing {@link AtomicPattern AtomicPatterns} to be parsed
79-
* @return {@link AtomicPatternCount}
78+
* @param lines Lines containing {@link ElementaryPattern elementary patterns} to be parsed
79+
* @return {@link ElementaryPatternCount}
8080
*/
81-
public static AtomicPatternCount parse(final List<String> lines, final String uuid) {
82-
AtomicPatternCount count = new AtomicPatternCount();
81+
public static ElementaryPatternCount parse(final List<String> lines, final String uuid) {
82+
ElementaryPatternCount count = new ElementaryPatternCount();
8383
String[] keyValuePair;
8484
String key;
8585
String value;
@@ -88,7 +88,7 @@ public static AtomicPatternCount parse(final List<String> lines, final String uu
8888
int commits;
8989
for (final String line : lines) {
9090
keyValuePair = line.split(": ");
91-
key = keyValuePair[0]; // atomic pattern
91+
key = keyValuePair[0]; // elementary pattern
9292
value = keyValuePair[1]; // key value content
9393
value = value.replaceAll("[{} ]", ""); // remove unnecessary symbols
9494
innerKeyValuePair = value.split(";");
@@ -97,8 +97,8 @@ public static AtomicPatternCount parse(final List<String> lines, final String uu
9797

9898
// get pattern from key
9999
final String finalKey = key;
100-
AtomicPattern pattern = ProposedAtomicPatterns.Instance.fromName(key).orElseThrow(
101-
() -> new RuntimeException("Could not find Atomic Pattern with name " + finalKey)
100+
ElementaryPattern pattern = ProposedElementaryPatterns.Instance.fromName(key).orElseThrow(
101+
() -> new RuntimeException("Could not find Elementary Pattern with name " + finalKey)
102102
);
103103

104104
Occurrences occurence = new Occurrences();
@@ -120,7 +120,7 @@ public static AtomicPatternCount parse(final List<String> lines, final String uu
120120
public LinkedHashMap<String, String> snapshot() {
121121
return Functjonal.bimap(
122122
occurences,
123-
AtomicPattern::getName,
123+
ElementaryPattern::getName,
124124
Occurrences::toString,
125125
LinkedHashMap::new
126126
);
@@ -130,11 +130,11 @@ public LinkedHashMap<String, String> snapshot() {
130130
* Mutates and returns first element.
131131
*/
132132
@Override
133-
public InplaceSemigroup<AtomicPatternCount> semigroup() {
133+
public InplaceSemigroup<ElementaryPatternCount> semigroup() {
134134
return ISEMIGROUP;
135135
}
136136

137-
public LinkedHashMap<AtomicPattern, Occurrences> getOccurences() {
137+
public LinkedHashMap<ElementaryPattern, Occurrences> getOccurences() {
138138
return occurences;
139139
}
140140
}

src/main/java/org/variantsync/diffdetective/mining/MiningTask.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.variantsync.diffdetective.diff.difftree.DiffTree;
1010
import org.variantsync.diffdetective.diff.difftree.serialize.LineGraphExport;
1111
import org.variantsync.diffdetective.diff.result.CommitDiffResult;
12-
import org.variantsync.diffdetective.pattern.atomic.proposed.ProposedAtomicPatterns;
12+
import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
1313
import org.variantsync.diffdetective.util.Clock;
1414
import org.variantsync.diffdetective.util.FileUtils;
1515

@@ -35,23 +35,23 @@ public AnalysisResult call() throws Exception {
3535
}
3636

3737
/*
38-
* We export all difftrees that match our filter criteria (e.g., has more than one atomic pattern).
39-
* However, we count atomic patterns of all DiffTrees, even those that are not exported to Linegraph.
38+
* We export all difftrees that match our filter criteria (e.g., has more than one elementary pattern).
39+
* However, we count elementary patterns of all DiffTrees, even those that are not exported to Linegraph.
4040
*/
4141
final CommitDiff commitDiff = commitDiffResult.diff().get();
4242
final StringBuilder lineGraph = new StringBuilder();
4343
miningResult.append(LineGraphExport.toLineGraphFormat(commitDiff, lineGraph, options.exportOptions()));
4444
options.miningStrategy().onCommit(commitDiff, lineGraph.toString());
4545
options.exportOptions().treeFilter().resetExplanations();
4646

47-
// Count atomic patterns
47+
// Count elementary patterns
4848
for (final PatchDiff patch : commitDiff.getPatchDiffs()) {
4949
if (patch.isValid()) {
5050
final DiffTree t = patch.getDiffTree();
5151
t.forAll(node -> {
5252
if (node.isCode()) {
53-
miningResult.atomicPatternCounts.reportOccurrenceFor(
54-
ProposedAtomicPatterns.Instance.match(node),
53+
miningResult.elementaryPatternCounts.reportOccurrenceFor(
54+
ProposedElementaryPatterns.Instance.match(node),
5555
commitDiff
5656
);
5757
}

src/main/java/org/variantsync/diffdetective/mining/RWCompositePatternNodeFormat.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
import org.variantsync.diffdetective.diff.difftree.DiffNode;
44
import org.variantsync.diffdetective.mining.formats.DebugMiningDiffNodeFormat;
5-
import org.variantsync.diffdetective.pattern.atomic.proposed.ProposedAtomicPatterns;
5+
import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
66

77
public class RWCompositePatternNodeFormat extends DebugMiningDiffNodeFormat {
88
@Override
99
public String toLabel(final DiffNode node) {
1010
if (node.isCode()) {
11-
return ProposedAtomicPatterns.Instance.match(node).getName() + "<br>" + node.getLabel();
11+
return ProposedElementaryPatterns.Instance.match(node).getName() + "<br>" + node.getLabel();
1212
} else {
1313
return node.diffType + "_" + switch (node.codeType) {
1414
case ROOT -> "r";

src/main/java/org/variantsync/diffdetective/mining/formats/DebugMiningDiffNodeFormat.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@
33
import org.variantsync.diffdetective.diff.difftree.CodeType;
44
import org.variantsync.diffdetective.diff.difftree.DiffNode;
55
import org.variantsync.diffdetective.diff.difftree.DiffType;
6-
import org.variantsync.diffdetective.pattern.atomic.AtomicPattern;
7-
import org.variantsync.diffdetective.pattern.atomic.proposed.ProposedAtomicPatterns;
6+
import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
7+
import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
88
import org.variantsync.functjonal.Pair;
99

1010
import java.util.Arrays;
1111

1212
/**
1313
* Analogous to {@link ReleaseMiningDiffNodeFormat} but produces human readable labels instead of using integers.
14-
* Code nodes are labeled with the name of their matched atomic pattern.
14+
* Code nodes are labeled with the name of their matched elementary pattern.
1515
* Macro nodes are labeled with DIFFTYPE_CODETYPE (e.g., an added IF node gets the label ADD_IF).
1616
*/
1717
public class DebugMiningDiffNodeFormat implements MiningNodeFormat {
1818
@Override
1919
public String toLabel(final DiffNode node) {
2020
if (node.isCode()) {
21-
return ProposedAtomicPatterns.Instance.match(node).getName();
21+
return ProposedElementaryPatterns.Instance.match(node).getName();
2222
} else if (node.isRoot()) {
2323
return node.diffType + "_" + CodeType.IF;
2424
} else {
@@ -39,8 +39,8 @@ public Pair<DiffType, CodeType> fromEncodedTypes(String tag) {
3939
}
4040
return new Pair<>(dt, ct);
4141
} else {
42-
final AtomicPattern pattern = ProposedAtomicPatterns.Instance.fromName(tag).orElseThrow(
43-
() -> new IllegalStateException("Label \"" + tag + "\" is neither a macro label, nor an atomic pattern!")
42+
final ElementaryPattern pattern = ProposedElementaryPatterns.Instance.fromName(tag).orElseThrow(
43+
() -> new IllegalStateException("Label \"" + tag + "\" is neither a macro label, nor an elementary pattern!")
4444
);
4545

4646
return new Pair<>(pattern.getDiffType(), CodeType.CODE);

0 commit comments

Comments
 (0)