private static void doCompositionSingleton( String compositionName, JsonPathToTableComposition composition, ObjectNode answerValues) { ObjectMapper mapper = BatfishObjectMapper.mapper(); ObjectNode object = mapper.createObjectNode(); for (Entry<String, String> pEntry : composition.getDictionary().entrySet()) { String propertyName = pEntry.getKey(); String varName = pEntry.getValue(); if (answerValues.get(varName) == null) { throw new BatfishException( String.format( "varName '%s' for property '%s' of composition '%s' is not in display values", varName, propertyName, compositionName)); } object.set(propertyName, answerValues.get(varName)); } confirmValueType(object, composition.getSchema().getBaseType()); answerValues.set(compositionName, object); }
private void doCompositionSingleton( String resultKey, String compositionName, Composition composition) { ObjectMapper mapper = BatfishObjectMapper.mapper(); ObjectNode object = mapper.createObjectNode(); for (Entry<String, String> pEntry : composition.getDictionary().entrySet()) { String propertyName = pEntry.getKey(); String varName = pEntry.getValue(); if (!_displayValues.get(resultKey).containsKey(varName)) { throw new BatfishException( String.format( "varName '%s' for property '%s' of composition '%s' is not in display values", varName, propertyName, compositionName)); } object.set(propertyName, _displayValues.get(resultKey).get(varName)); } confirmValueType(object, composition.getSchemaAsObject().getBaseType()); _displayValues.get(resultKey).put(compositionName, object); }
confirmValueType(object, composition.getSchemaAsObject().getBaseType()); arrayNode.add(object);
switch (schema.getType()) { case BASE: return convertType(jsonNode, schema.getBaseType()); case LIST: List<JsonNode> list =
confirmValueType(object, composition.getSchema().getBaseType()); arrayNode.add(object);
? new TextNode(resultEntry.getValue().getPrefixPart(jpeHint.getIndex())) : resultEntry.getValue().getSuffix(); confirmValueType(value, extraction.getSchemaAsObject().getBaseType()); extractedList.add(value);
@Test public void displayHintsParsingTest() throws IOException { String text = CommonUtil.readResource("org/batfish/datamodel/questions/displayHintsTest.json"); DisplayHints displayHints = BatfishObjectMapper.mapper().readValue(text, DisplayHints.class); // here, we only test for ExtractionHint level concepts // tests that sit with jsonpath question validate if prefix/suffix filters are parsed correctly assertThat( displayHints.getTextDesc().equals("${mynode} has nothing on ${myinterface}"), equalTo(true)); Map<String, Extraction> extractions = displayHints.getExtractions(); assertThat(extractions.size(), equalTo(3)); Extraction hint0 = extractions.get("node1"); assertThat(hint0.getSchemaAsObject(), equalTo(Schema.STRING)); assertThat( hint0.getSchemaAsObject().getBaseType().getCanonicalName(), equalTo("java.lang.String")); assertThat(hint0.getMethod().containsKey("use"), equalTo(true)); Extraction hint1 = extractions.get("interfaces1"); assertThat(hint1.getSchemaAsObject(), equalTo(Schema.list(Schema.STRING))); Extraction hint2 = extractions.get("nodes1"); assertThat(hint2.getSchemaAsObject(), equalTo(Schema.list(Schema.INTEGER))); } }
? new TextNode(result.getPrefixPart(extraction.getIndex())) : result.getSuffix(); confirmValueType(value, extraction.getSchema().getBaseType()); extractedList.add(value);