diff --git a/src/main/java/teetime/stage/FileExtensionSwitch.java b/src/main/java/teetime/stage/FileExtensionSwitch.java index 3824d223544827b2a24516040aa7309292518cad..5099b25adccfb8054b28ff8ad32add3daa6787f1 100644 --- a/src/main/java/teetime/stage/FileExtensionSwitch.java +++ b/src/main/java/teetime/stage/FileExtensionSwitch.java @@ -1,17 +1,26 @@ package teetime.stage; import java.io.File; -import java.util.HashMap; import java.util.Map; import teetime.framework.AbstractConsumerStage; import teetime.framework.OutputPort; +import teetime.util.HashMapWithDefault; +import teetime.util.concurrent.hashmap.ValueFactory; import com.google.common.io.Files; public final class FileExtensionSwitch extends AbstractConsumerStage<File> { - private final Map<String, OutputPort<File>> fileExtensions = new HashMap<String, OutputPort<File>>(); + private final OutputPort<File> unknownFileExtensionOutputPort = createOutputPort(); + + // BETTER use the hppc ObjectObjectMap that provide getOrDefault() + private final Map<String, OutputPort<File>> fileExtensions = new HashMapWithDefault<String, OutputPort<File>>(new ValueFactory<OutputPort<File>>() { + @Override + public OutputPort<File> create() { + return unknownFileExtensionOutputPort; + } + }); @Override protected void execute(final File file) {