Skip to content

Commit 5f1ef8f

Browse files
committed
Implement comment
Allow to set only one of '_else', '_elseFlattened' and _'else_Nested'. Warns if it's tried to set multiple times, ignores the superflous setting and just goes on. See #333 (comment):
1 parent 576c5ad commit 5f1ef8f

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

metamorph/src/main/java/org/metafacture/metamorph/Metamorph.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
import org.metafacture.metamorph.api.NamedValueReceiver;
5050
import org.metafacture.metamorph.api.NamedValueSource;
5151
import org.metafacture.metamorph.api.SourceLocation;
52+
import org.slf4j.Logger;
53+
import org.slf4j.LoggerFactory;
5254
import org.xml.sax.InputSource;
5355

5456
/**
@@ -99,6 +101,7 @@ public final class Metamorph implements StreamPipe<StreamReceiver>, NamedValuePi
99101
private final List<FlushListener> recordEndListener = new ArrayList<>();
100102
private boolean elseNested;
101103
final private Pattern literalPatternOfEntityMarker = Pattern.compile(flattener.getEntityMarker(), Pattern.LITERAL);
104+
private static final Logger LOG = LoggerFactory.getLogger(Metamorph.class);
102105

103106
protected Metamorph() {
104107
// package private
@@ -224,7 +227,11 @@ protected void registerNamedValueReceiver(final String source, final NamedValueR
224227
this.elseNested = true;
225228
}
226229
if (ELSE_KEYWORD.equals(source) || ELSE_FLATTENED_KEYWORD.equals(source) || elseNested) {
227-
elseSources.add(data);
230+
if (elseSources.isEmpty())
231+
elseSources.add(data);
232+
else
233+
LOG.warn(
234+
"Only one of '_else', '_elseFlattened' and '_elseNested' is allowed. Ignoring the superflous ones.");
228235
} else {
229236
dataRegistry.register(source, data);
230237
}

0 commit comments

Comments
 (0)