public void addResult(String path, PathRef operation, Object model) { if(forUpdate) { updateOperations.add(operation); } configuration.jsonProvider().setArrayIndex(valueResult, resultIndex, model); configuration.jsonProvider().setArrayIndex(pathResult, resultIndex, path); resultIndex++; if(!configuration().getEvaluationListeners().isEmpty()){ int idx = resultIndex - 1; for (EvaluationListener listener : configuration().getEvaluationListeners()) { EvaluationListener.EvaluationContinuation continuation = listener.resultFound(new FoundResultImpl(idx, path, model)); if(EvaluationListener.EvaluationContinuation.ABORT == continuation){ throw ABORT_EVALUATION; } } } }
@Test public void evaluation_listeners_can_be_cleared() { EvaluationListener listener = new EvaluationListener() { @Override public EvaluationContinuation resultFound(FoundResult found) { return EvaluationContinuation.CONTINUE; } }; Configuration configuration1 = Configuration.builder().evaluationListener(listener).build(); Configuration configuration2 = configuration1.setEvaluationListeners(); assertThat(configuration1.getEvaluationListeners()).hasSize(1); assertThat(configuration2.getEvaluationListeners()).hasSize(0); } }
public void addResult(String path, PathRef operation, Object model) { if(forUpdate) { updateOperations.add(operation); } configuration.jsonProvider().setArrayIndex(valueResult, resultIndex, model); configuration.jsonProvider().setArrayIndex(pathResult, resultIndex, path); resultIndex++; if(!configuration().getEvaluationListeners().isEmpty()){ int idx = resultIndex - 1; for (EvaluationListener listener : configuration().getEvaluationListeners()) { EvaluationListener.EvaluationContinuation continuation = listener.resultFound(new FoundResultImpl(idx, path, model)); if(EvaluationListener.EvaluationContinuation.ABORT == continuation){ throw ABORT_EVALUATION; } } } }
public void addResult(String path, PathRef operation, Object model) { if(forUpdate) { updateOperations.add(operation); } configuration.jsonProvider().setArrayIndex(valueResult, resultIndex, model); configuration.jsonProvider().setArrayIndex(pathResult, resultIndex, path); resultIndex++; if(!configuration().getEvaluationListeners().isEmpty()){ int idx = resultIndex - 1; for (EvaluationListener listener : configuration().getEvaluationListeners()) { EvaluationListener.EvaluationContinuation continuation = listener.resultFound(new FoundResultImpl(idx, path, model)); if(EvaluationListener.EvaluationContinuation.ABORT == continuation){ throw ABORT_EVALUATION; } } } }
public JsonPathTest() { Configuration.setDefaults(BatfishJsonPathDefaults.INSTANCE); ConfigurationBuilder b = new ConfigurationBuilder(); _baseConfiguration = b.build(); _oneNtpServerNodesAnswerStr = CommonUtil.readResource("org/batfish/question/jsonpath/oneNtpServer.json"); _oneNtpServerNodesAnswerJsonObject = JsonPath.parse(_oneNtpServerNodesAnswerStr, _baseConfiguration).json(); _twoNtpServersNodesAnswerStr = CommonUtil.readResource("org/batfish/question/jsonpath/twoNtpServers.json"); _twoNtpServersNodesAnswerJsonObject = JsonPath.parse(_twoNtpServersNodesAnswerStr, _baseConfiguration).json(); ConfigurationBuilder prefixCb = new ConfigurationBuilder(); prefixCb.mappingProvider(_baseConfiguration.mappingProvider()); prefixCb.jsonProvider(_baseConfiguration.jsonProvider()); prefixCb.evaluationListener(_baseConfiguration.getEvaluationListeners()); prefixCb.options(_baseConfiguration.getOptions()); prefixCb.options(Option.ALWAYS_RETURN_LIST); prefixCb.options(Option.AS_PATH_LIST); _prefixConfiguration = prefixCb.build(); }