@Override int weigh(Entry<?> value) { int weight = 0; weight += query.path().length(); for (String e : query.expressions()) { weight += e.length(); } if (value != null && value.hasContent()) { weight += value.contentAsText().length(); } return weight; }
@Override int weigh(Entry<?> value) { int weight = 0; weight += query.path().length(); for (String e : query.expressions()) { weight += e.length(); } if (value != null && value.hasContent()) { weight += value.contentAsText().length(); } return weight; }
@Override int weigh(Entry<?> value) { int weight = 0; weight += query.path().length(); for (String e : query.expressions()) { weight += e.length(); } if (value != null && value.hasContent()) { weight += value.contentAsText().length(); } return weight; }
@Override int weigh(Change<?> value) { int weight = 0; weight += query.path().length(); for (String e : query.expressions()) { weight += e.length(); } weight += value.path().length(); final String content = value.contentAsText(); if (content != null) { weight += content.length(); } return weight; }
@Override int weigh(Change<?> value) { int weight = 0; weight += query.path().length(); for (String e : query.expressions()) { weight += e.length(); } weight += value.path().length(); final String content = value.contentAsText(); if (content != null) { weight += content.length(); } return weight; }
@Override int weigh(Change<?> value) { int weight = 0; weight += query.path().length(); for (String e : query.expressions()) { weight += e.length(); } weight += value.path().length(); final String content = value.contentAsText(); if (content != null) { weight += content.length(); } return weight; }
@Override protected Query doForward(com.linecorp.centraldogma.common.Query<?> query) { switch (query.type()) { case IDENTITY: return new Query(query.path(), QueryType.IDENTITY, Collections.emptyList()); case JSON_PATH: return new Query(query.path(), QueryType.JSON_PATH, query.expressions()); } throw new Error(); }
@Override protected Query doForward(com.linecorp.centraldogma.common.Query<?> query) { switch (query.type()) { case IDENTITY: return new Query(query.path(), QueryType.IDENTITY, Collections.emptyList()); case JSON_PATH: return new Query(query.path(), QueryType.JSON_PATH, query.expressions()); } throw new Error(); }
@Test public void convertJsonPathQuery() throws Exception { final ServiceRequestContext ctx = mock(ServiceRequestContext.class); final String jsonFilePath = "/a.json"; when(ctx.pathParam("path")).thenReturn(jsonFilePath); final String httpQuery = "?jsonpath=%22%24.a%22"; // "$.a" when(ctx.query()).thenReturn(httpQuery); final Optional<Query<?>> query = convert(ctx); assert query.isPresent(); assertThat(query.get().type()).isSameAs(QueryType.JSON_PATH); assertThat(query.get().path()).isEqualTo(jsonFilePath); assertThat(query.get().expressions().get(0)).isEqualTo("\"$.a\""); }