From ff3f696b248682b771afe796aad369c8b5b0b9bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Pluta?= Date: Wed, 3 Apr 2019 12:20:07 +0200 Subject: [PATCH] 7: Create FormatterProvider --- .../com/bartek/esa/di/DependencyInjector.java | 4 +++- .../esa/formatter/di/FormatterModule.java | 6 +++++ .../formatter/provider/FormatterProvider.java | 23 +++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/bartek/esa/formatter/provider/FormatterProvider.java diff --git a/src/main/java/com/bartek/esa/di/DependencyInjector.java b/src/main/java/com/bartek/esa/di/DependencyInjector.java index 2c78ba4..da0baaa 100644 --- a/src/main/java/com/bartek/esa/di/DependencyInjector.java +++ b/src/main/java/com/bartek/esa/di/DependencyInjector.java @@ -8,6 +8,7 @@ import com.bartek.esa.core.di.PluginModule; import com.bartek.esa.decompiler.di.DecompilerModule; import com.bartek.esa.dispatcher.di.DispatcherModule; import com.bartek.esa.file.di.FileModule; +import com.bartek.esa.formatter.di.FormatterModule; import dagger.Component; @Component(modules = { @@ -17,7 +18,8 @@ import dagger.Component; DecompilerModule.class, CoreModule.class, PluginModule.class, - AnalyserModule.class + AnalyserModule.class, + FormatterModule.class }) public interface DependencyInjector { EsaMain esa(); diff --git a/src/main/java/com/bartek/esa/formatter/di/FormatterModule.java b/src/main/java/com/bartek/esa/formatter/di/FormatterModule.java index e91db50..b7741aa 100644 --- a/src/main/java/com/bartek/esa/formatter/di/FormatterModule.java +++ b/src/main/java/com/bartek/esa/formatter/di/FormatterModule.java @@ -3,6 +3,7 @@ package com.bartek.esa.formatter.di; import com.bartek.esa.core.desc.provider.DescriptionProvider; import com.bartek.esa.formatter.formatter.ColorFormatter; import com.bartek.esa.formatter.formatter.SimpleFormatter; +import com.bartek.esa.formatter.provider.FormatterProvider; import dagger.Module; import dagger.Provides; @@ -18,4 +19,9 @@ public class FormatterModule { public ColorFormatter colorFormatter(DescriptionProvider descriptionProvider) { return new ColorFormatter(descriptionProvider); } + + @Provides + public FormatterProvider formatterProvider(SimpleFormatter simpleFormatter, ColorFormatter colorFormatter) { + return new FormatterProvider(simpleFormatter, colorFormatter); + } } diff --git a/src/main/java/com/bartek/esa/formatter/provider/FormatterProvider.java b/src/main/java/com/bartek/esa/formatter/provider/FormatterProvider.java new file mode 100644 index 0000000..16a31ce --- /dev/null +++ b/src/main/java/com/bartek/esa/formatter/provider/FormatterProvider.java @@ -0,0 +1,23 @@ +package com.bartek.esa.formatter.provider; + +import com.bartek.esa.cli.model.CliArgsOptions; +import com.bartek.esa.formatter.archetype.Formatter; +import com.bartek.esa.formatter.formatter.ColorFormatter; +import com.bartek.esa.formatter.formatter.SimpleFormatter; + +import javax.inject.Inject; + +public class FormatterProvider { + private final SimpleFormatter simpleFormatter; + private final ColorFormatter colorFormatter; + + @Inject + public FormatterProvider(SimpleFormatter simpleFormatter, ColorFormatter colorFormatter) { + this.simpleFormatter = simpleFormatter; + this.colorFormatter = colorFormatter; + } + + public Formatter provide(CliArgsOptions options) { + return options.isColor() ? colorFormatter : simpleFormatter; + } +}