43 lines
1.5 KiB
Java
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();
|
|
}
|
|
}
|