Files
litmus-be/litmus-client/src/main/java/com/navi/medici/bootstrap/LitmusExperimentBootstrapHandler.java
chandresh pancholi 48d8d94dbe variant integration with litmus
Signed-off-by: chandresh pancholi <chandresh.pancholi@navi.com>
2021-10-21 20:53:01 +05:30

43 lines
1.5 KiB
Java

package com.navi.medici.bootstrap;
import com.navi.medici.annotation.Nullable;
import com.navi.medici.config.LitmusConfig;
import com.navi.medici.response.LitmusExperimentCollection;
import com.navi.medici.util.JacksonUtils;
import java.util.Collections;
import java.util.concurrent.ConcurrentHashMap;
import lombok.extern.log4j.Log4j2;
@Log4j2
public class LitmusExperimentBootstrapHandler {
private final LitmusExperimentBootstrapProvider litmusExperimentBootstrapProvider;
public LitmusExperimentBootstrapHandler(LitmusConfig litmusConfig) {
if (litmusConfig.getLitmusExperimentBootstrapProvider() != null) {
this.litmusExperimentBootstrapProvider = litmusConfig.getLitmusExperimentBootstrapProvider();
} else {
this.litmusExperimentBootstrapProvider = new LitmusExperimentBootstrapFileProvider();
}
}
public LitmusExperimentCollection parse(@Nullable String jsonString) {
if (jsonString != null) {
return JacksonUtils.stringToObject(jsonString, LitmusExperimentCollection.class);
}
return LitmusExperimentCollection.builder()
.litmusExperiments(Collections.emptyList())
.build();
}
public LitmusExperimentCollection read() {
if (litmusExperimentBootstrapProvider != null) {
return parse(litmusExperimentBootstrapProvider.read());
}
return LitmusExperimentCollection.builder()
.litmusExperiments(Collections.emptyList())
.build();
}
}