package com.mossle.form.engine;
import com.mossle.form.engine.model.FormModel;
public class FormEngine {
private FormModelParser formModelParser = new FormModelParser();
private FormModelSourceFetcher formModelSourceFetcher;
private FormModelCache formModelCache = new MemoryFormModelCache();
private FormModel deploy(String json) {
FormModel formModel = formModelParser.parse(json);
formModelCache.setFormModel(formModel);
return formModel;
}
public FormModel getFormModel(String id) {
FormModel formModel = formModelCache.getFormModel(id);
if (formModel == null) {
String json = formModelSourceFetcher.getFormModelSource(id);
formModel = this.deploy(json);
}
return formModel;
}
public void setFormModelSourceFetcher(
FormModelSourceFetcher formModelSourceFetcher) {
this.formModelSourceFetcher = formModelSourceFetcher;
}
}