Skip to content

Commit 4d8bdbf

Browse files
committed
Always count and sort, only change formatting if count=false (#300)
See https://gitlab.com/oersi/oersi-etl/-/issues/238
1 parent 5c35f36 commit 4d8bdbf

File tree

5 files changed

+21
-32
lines changed

5 files changed

+21
-32
lines changed

metafix/src/main/java/org/metafacture/metafix/MetafixListPaths.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
public class MetafixListPaths extends MetafixStreamAnalyzer {
3838

3939
public MetafixListPaths() {
40-
super("nothing()", Compare.PREDICATE, "${s}\t|\t${o}", "${p}");
40+
super("nothing()", Compare.PREDICATE, "${s}\t|\t${o}");
4141
setIndex(false);
4242
}
4343

metafix/src/main/java/org/metafacture/metafix/MetafixListValues.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
public class MetafixListValues extends MetafixStreamAnalyzer {
3737

3838
public MetafixListValues(final String path) {
39-
super(fix(path), Compare.OBJECT, "${o}\t|\t${s}", "${o}");
39+
super(fix(path), Compare.OBJECT, "${o}\t|\t${s}");
4040
}
4141

4242
private static String fix(final String path) {

metafix/src/main/java/org/metafacture/metafix/MetafixStreamAnalyzer.java

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@
1919
import org.metafacture.formatting.ObjectTemplate;
2020
import org.metafacture.framework.MetafactureException;
2121
import org.metafacture.framework.ObjectReceiver;
22-
import org.metafacture.framework.Sender;
2322
import org.metafacture.framework.helpers.DefaultStreamPipe;
24-
import org.metafacture.mangling.DuplicateObjectFilter;
2523
import org.metafacture.mangling.StreamFlattener;
2624
import org.metafacture.triples.AbstractTripleSort.Compare;
2725
import org.metafacture.triples.AbstractTripleSort.Order;
@@ -36,16 +34,16 @@
3634
*
3735
* @author Fabian Steeg
3836
*/
39-
/* package-private */ class MetafixStreamAnalyzer extends DefaultStreamPipe<ObjectReceiver<String>> { // checkstyle-disable-line ClassDataAbstractionCoupling
37+
/* package-private */ class MetafixStreamAnalyzer extends DefaultStreamPipe<ObjectReceiver<String>> {
4038

4139
private Metafix fix;
4240
private boolean count = true;
4341
private Compare countBy;
4442
private String countedTemplate;
45-
private String uncountedTemplate;
43+
private String uncountedTemplate = "${s}";
4644

4745
/* package-private */ MetafixStreamAnalyzer(final String fix, final Compare countBy,
48-
final String countedTemplate, final String uncountedTemplate) {
46+
final String countedTemplate) {
4947
try {
5048
this.fix = new Metafix(fix);
5149
this.fix.setRepeatedFieldsToEntities(true);
@@ -55,29 +53,17 @@
5553
}
5654
this.countBy = countBy;
5755
this.countedTemplate = countedTemplate;
58-
this.uncountedTemplate = uncountedTemplate;
5956
}
6057

6158
@Override
6259
protected void onSetReceiver() {
63-
final StreamToTriples triples = fix
64-
.setReceiver(new StreamFlattener())
65-
.setReceiver(new StreamToTriples());
66-
(count ? counted(triples) : unique(triples))
67-
.setReceiver(getReceiver());
68-
}
69-
70-
private Sender<ObjectReceiver<String>> counted(final StreamToTriples triples) {
71-
return triples
72-
.setReceiver(tripleCount())
73-
.setReceiver(tripleSort())
74-
.setReceiver(new ObjectTemplate<>(countedTemplate));
75-
}
76-
77-
private Sender<ObjectReceiver<String>> unique(final StreamToTriples triples) {
78-
return triples
79-
.setReceiver(new ObjectTemplate<>(uncountedTemplate))
80-
.setReceiver(new DuplicateObjectFilter<>());
60+
fix
61+
.setReceiver(new StreamFlattener())
62+
.setReceiver(new StreamToTriples())
63+
.setReceiver(tripleCount())
64+
.setReceiver(tripleSort())
65+
.setReceiver(new ObjectTemplate<>(count ? countedTemplate : uncountedTemplate))
66+
.setReceiver(getReceiver());
8167
}
8268

8369
private TripleCount tripleCount() {

metafix/src/test/java/org/metafacture/metafix/MetafixListPathsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ public void testShouldListPaths() {
5555
public void testShouldListPathsNoCount() {
5656
lister.setCount(false);
5757
verify(
58-
"a",
58+
"c.*",
5959
"b.*",
60-
"c.*");
60+
"a");
6161
}
6262

6363
@Test

metafix/src/test/java/org/metafacture/metafix/MetafixListValuesTest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ public void testShouldListPathsDontCount() {
9898
lister.setCount(false);
9999
verify(
100100
"cC",
101-
"cB",
102-
"cA");
101+
"cA",
102+
"cB");
103103
}
104104

105105
private void processRecord() {
@@ -111,10 +111,10 @@ private void processRecord() {
111111
lister.literal("b", "bB");
112112
lister.literal("b", "bA");
113113
lister.literal("c", "cC");
114-
lister.literal("c", "cC");
115-
lister.literal("c", "cC");
116114
lister.literal("c", "cB");
115+
lister.literal("c", "cC");
117116
lister.literal("c", "cA");
117+
lister.literal("c", "cC");
118118
lister.endRecord();
119119
lister.closeStream();
120120
}
@@ -126,6 +126,9 @@ private void verify(final String... result) throws MockitoAssertionError {
126126
for (final String r : result) {
127127
ordered.verify(receiver).process(r);
128128
}
129+
ordered.verify(receiver, Mockito.times(2)).closeStream();
130+
ordered.verifyNoMoreInteractions();
131+
Mockito.verifyNoMoreInteractions(receiver);
129132
}
130133
catch (final MockitoAssertionError e) {
131134
System.out.println(Mockito.mockingDetails(receiver).printInvocations());

0 commit comments

Comments
 (0)