package simulator.factories; import java.util.ArrayList; import java.util.List; import org.json.JSONObject; public class BuilderBasedFactory implements Factory { private List> _builders; public BuilderBasedFactory(List> builders) { _builders = new ArrayList<>(builders); } @Override public T createInstance(JSONObject info) { if (info != null) { for (Builder bb : _builders) { T o = bb.createInstance(info); if (o != null) return o; } } throw new IllegalArgumentException("Invalid value for createInstance: " + info); } }