return (D) Float.valueOf(jsonNode.floatValue());
return ValueReference.of(value.doubleValue()); } else if (valueType == ValueType.FLOAT && value.isFloat()) { return ValueReference.of(value.floatValue()); } else if (valueType == ValueType.INTEGER && value.isInt()) { return ValueReference.of(value.intValue());
return e.doubleValue(); } else if (e.isFloat()) { return e.floatValue(); } else if (e.isBigDecimal()) { return e.decimalValue();
@Test public void testSuccessfulParseToContentWhenCEFContainsJSON() throws IOException { final TestRunner runner = TestRunners.newTestRunner(new ParseCEF()); runner.setProperty(ParseCEF.FIELDS_DESTINATION, ParseCEF.DESTINATION_CONTENT); runner.enqueue(sample2.getBytes()); runner.run(); runner.assertAllFlowFilesTransferred(ParseCEF.REL_SUCCESS, 1); final MockFlowFile mff = runner.getFlowFilesForRelationship(ParseCEF.REL_SUCCESS).get(0); byte [] rawJson = mff.toByteArray(); JsonNode results = new ObjectMapper().readTree(rawJson); JsonNode header = results.get("header"); JsonNode extension = results.get("extension"); Assert.assertEquals("TestVendor", header.get("deviceVendor").asText()); Assert.assertEquals(sdf.format(new Date(1423441663000L)), extension.get("rt").asText()); Assert.assertEquals("Test Long", extension.get("cn3Label").asText()); Assert.assertEquals( 9223372036854775807L, extension.get("cn3").asLong()); Assert.assertTrue(extension.get("cfp1").floatValue() == 1.234F); Assert.assertEquals("Test FP Number", extension.get("cfp1Label").asText()); Assert.assertEquals("00:00:0c:07:ac:00", extension.get("smac").asText()); Assert.assertEquals("2001:cdba:0:0:0:0:3257:9652", extension.get("c6a3").asText()); Assert.assertEquals("Test IPv6", extension.get("c6a3Label").asText()); Assert.assertEquals("Test String", extension.get("cs1Label").asText()); Assert.assertEquals("test test test chocolate", extension.get("cs1").asText()); Assert.assertEquals("123.123.123.123", extension.get("destinationTranslatedAddress").asText()); JsonNode inner = new ObjectMapper().readTree(extension.get("cs2").asText()); Assert.assertEquals("chocolate!", inner.get("test_test_test").asText()); }
@Test public void testSuccessfulParseToContent() throws IOException { final TestRunner runner = TestRunners.newTestRunner(new ParseCEF()); runner.setProperty(ParseCEF.FIELDS_DESTINATION, ParseCEF.DESTINATION_CONTENT); runner.enqueue(sample1.getBytes()); runner.run(); runner.assertAllFlowFilesTransferred(ParseCEF.REL_SUCCESS, 1); final MockFlowFile mff = runner.getFlowFilesForRelationship(ParseCEF.REL_SUCCESS).get(0); byte [] rawJson = mff.toByteArray(); JsonNode results = new ObjectMapper().readTree(rawJson); JsonNode header = results.get("header"); JsonNode extension = results.get("extension"); Assert.assertEquals("TestVendor", header.get("deviceVendor").asText()); Assert.assertEquals(sdf.format(new Date(1423441663000L)), extension.get("rt").asText()); Assert.assertEquals("Test Long", extension.get("cn3Label").asText()); Assert.assertEquals( 9223372036854775807L, extension.get("cn3").asLong()); Assert.assertTrue(extension.get("cfp1").floatValue() == 1.234F); Assert.assertEquals("Test FP Number", extension.get("cfp1Label").asText()); Assert.assertEquals("00:00:0c:07:ac:00", extension.get("smac").asText()); Assert.assertEquals("2001:cdba:0:0:0:0:3257:9652", extension.get("c6a3").asText()); Assert.assertEquals("Test IPv6", extension.get("c6a3Label").asText()); Assert.assertEquals("123.123.123.123", extension.get("destinationTranslatedAddress").asText()); Assert.assertEquals("Test String", extension.get("cs1Label").asText()); Assert.assertEquals("test test test chocolate", extension.get("cs1").asText()); }
return (new LongWritable((value.longValue()))); case FLOAT: return (new FloatWritable(value.floatValue())); case DOUBLE: return (new DoubleWritable(value.doubleValue()));
return e.doubleValue(); } else if (e.isFloat()) { return e.floatValue(); } else if (e.isBigDecimal()) { return e.decimalValue();
@Override public Optional<Float> deserialize(JsonNode json) { if (json instanceof FloatNode) { return Optional.of(json.floatValue()); } else if (json instanceof DoubleNode) { return Optional.of(json.floatValue()); } else { return Optional.empty(); } }
@Override public FloatProperty deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { JsonNode node = jp.getCodec().readTree(jp); String nameId = node.get("id").textValue(); float value = node.get("value").floatValue(); return new FloatProperty(nameId, value); } }
public Float getMaxScore() { Float maxScore = null; JsonNode obj = getPath(PATH_TO_MAX_SCORE); if (obj != null) maxScore = obj.floatValue(); return maxScore; }
@Override public void configure(Map stormConf, JsonNode filterParams) { JsonNode node = filterParams.get("key"); if (node != null && node.isTextual()) { mdKey = node.asText("lang"); } node = filterParams.get("minProb"); if (node != null && node.isNumber()) { minProb = node.floatValue(); } node = filterParams.get("md.skip"); if (node != null && node.isTextual()) { mdSkip = node.asText(); } }
@Override public void validate(final ProcessingReport report, final MessageBundle bundle, final FullData data) throws ProcessingException { final JsonNode instance = data.getInstance().getNode(); final float f = instance.floatValue(); final String original = String.valueOf(instance.decimalValue()); final String parsed = String.valueOf(f); if (!original.equals(parsed)) { report.warn(newMsg(data, bundle, "warn.format.float.overflow") .put("key", "warn.format.float.overflow") .putArgument("value", original) .putArgument("converted", parsed)); } } }
@Override public void validate(final ProcessingReport report, final MessageBundle bundle, final FullData data) throws ProcessingException { final JsonNode instance = data.getInstance().getNode(); final float f = instance.floatValue(); final String original = String.valueOf(instance.decimalValue()); final String parsed = String.valueOf(f); if (!original.equals(parsed)) { report.warn(newMsg(data, bundle, "warn.format.float.overflow") .put("key", "warn.format.float.overflow") .putArgument("value", original) .putArgument("converted", parsed)); } } }
@Test public void testCoerceArray() throws Exception { TupleEntry entry = new TupleEntry( new Fields( "json", JSONCoercibleType.TYPE ), Tuple.size( 1 ) ); entry.setObject( 0, JSONData.nested ); CopySpec copySpec = new CopySpec() .fromTransform( "/person", "/measures/*/value", JSONPrimitiveTransforms.TO_FLOAT ); JSONCopyAsFunction function = new JSONCopyAsFunction( new Fields( "result" ), copySpec ); TupleListCollector result = invokeFunction( function, entry, new Fields( "result" ) ); Object value = result.iterator().next().getObject( 0 ); assertNotNull( value ); assertEquals( JsonNodeType.ARRAY, ( (ObjectNode) value ).get( "measures" ).getNodeType() ); assertEquals( FloatNode.class, ( (ObjectNode) value ).get( "measures" ).get( 0 ).get( "value" ).getClass() ); assertEquals( 1000.0F, ( (ObjectNode) value ).get( "measures" ).get( 0 ).get( "value" ).floatValue() ); assertEquals( FloatNode.class, ( (ObjectNode) value ).get( "measures" ).get( 1 ).get( "value" ).getClass() ); assertEquals( 2000.0F, ( (ObjectNode) value ).get( "measures" ).get( 1 ).get( "value" ).floatValue() ); }
@Test public void testCoerceArray() throws Exception { TupleEntry entry = new TupleEntry( new Fields( "json", JSONCoercibleType.TYPE ), Tuple.size( 1 ) ); entry.setObject( 0, JSONData.nested ); CopySpec copySpec = new CopySpec() .fromTransform( "/person", "/measures/*/value", JSONPrimitiveTransforms.TO_FLOAT ); JSONCopyAsFunction function = new JSONCopyAsFunction( new Fields( "result" ), copySpec ); TupleListCollector result = invokeFunction( function, entry, new Fields( "result" ) ); Object value = result.iterator().next().getObject( 0 ); assertNotNull( value ); assertEquals( JsonNodeType.ARRAY, ( (ObjectNode) value ).get( "measures" ).getNodeType() ); assertEquals( FloatNode.class, ( (ObjectNode) value ).get( "measures" ).get( 0 ).get( "value" ).getClass() ); assertEquals( 1000.0F, ( (ObjectNode) value ).get( "measures" ).get( 0 ).get( "value" ).floatValue() ); assertEquals( FloatNode.class, ( (ObjectNode) value ).get( "measures" ).get( 1 ).get( "value" ).getClass() ); assertEquals( 2000.0F, ( (ObjectNode) value ).get( "measures" ).get( 1 ).get( "value" ).floatValue() ); }
@Test public void testCoerceZero() throws Exception { TupleEntry entry = new TupleEntry( new Fields( "json", JSONCoercibleType.TYPE ), Tuple.size( 1 ) ); entry.setObject( 0, JSONData.nested ); CopySpec copySpec = new CopySpec() .fromTransform( "/person/zero", "/zeroValue", JSONPrimitiveTransforms.TO_FLOAT ); JSONCopyAsFunction function = new JSONCopyAsFunction( new Fields( "result" ), copySpec ); TupleListCollector result = invokeFunction( function, entry, new Fields( "result" ) ); Object value = result.iterator().next().getObject( 0 ); assertNotNull( value ); assertEquals( JsonNodeType.NUMBER, ( (ObjectNode) value ).get( "zeroValue" ).getNodeType() ); assertEquals( FloatNode.class, ( (ObjectNode) value ).get( "zeroValue" ).getClass() ); assertEquals( 0.0F, ( (ObjectNode) value ).get( "zeroValue" ).floatValue() ); assertEquals( "0.0", ( (ObjectNode) value ).get( "zeroValue" ).asText() ); }
@Test public void testCoerceZero() throws Exception { TupleEntry entry = new TupleEntry( new Fields( "json", JSONCoercibleType.TYPE ), Tuple.size( 1 ) ); entry.setObject( 0, JSONData.nested ); CopySpec copySpec = new CopySpec() .fromTransform( "/person/zero", "/zeroValue", JSONPrimitiveTransforms.TO_FLOAT ); JSONCopyAsFunction function = new JSONCopyAsFunction( new Fields( "result" ), copySpec ); TupleListCollector result = invokeFunction( function, entry, new Fields( "result" ) ); Object value = result.iterator().next().getObject( 0 ); assertNotNull( value ); assertEquals( JsonNodeType.NUMBER, ( (ObjectNode) value ).get( "zeroValue" ).getNodeType() ); assertEquals( FloatNode.class, ( (ObjectNode) value ).get( "zeroValue" ).getClass() ); assertEquals( 0.0F, ( (ObjectNode) value ).get( "zeroValue" ).floatValue() ); assertEquals( "0.0", ( (ObjectNode) value ).get( "zeroValue" ).asText() ); }
@Test public void testCoerce() throws Exception { TupleEntry entry = new TupleEntry( new Fields( "json", JSONCoercibleType.TYPE ), Tuple.size( 1 ) ); entry.setObject( 0, JSONData.nested ); CopySpec copySpec = new CopySpec() .fromTransform( "/person/measure", "/value", JSONPrimitiveTransforms.TO_FLOAT ); JSONCopyAsFunction function = new JSONCopyAsFunction( new Fields( "result" ), copySpec ); TupleListCollector result = invokeFunction( function, entry, new Fields( "result" ) ); Object value = result.iterator().next().getObject( 0 ); assertNotNull( value ); assertEquals( JsonNodeType.NUMBER, ( (ObjectNode) value ).get( "value" ).getNodeType() ); assertEquals( FloatNode.class, ( (ObjectNode) value ).get( "value" ).getClass() ); assertEquals( 100.0F, ( (ObjectNode) value ).get( "value" ).floatValue() ); }
@Test public void testCoerce() throws Exception { Fields fields = new Fields( "json", JSONCoercibleType.TYPE ).append( new Fields( "result", JSONCoercibleType.TYPE ) ); TupleEntry entry = new TupleEntry( fields, Tuple.size( 2 ) ); entry.setObject( 0, JSONData.nested ); entry.setObject( 1, JSONData.simple ); CopySpec copySpec = new CopySpec() .fromTransform( "/person/measure", "/value", JSONPrimitiveTransforms.TO_FLOAT ); JSONCopyIntoFunction function = new JSONCopyIntoFunction( new Fields( "result" ), copySpec ); TupleListCollector result = invokeFunction( function, entry, new Fields( "result" ) ); Object value = result.iterator().next().getObject( 0 ); assertNotNull( value ); assertEquals( "value", ( (ObjectNode) value ).get( "existing" ).textValue() ); // confirm we put data into an existing object assertEquals( JsonNodeType.NUMBER, ( (ObjectNode) value ).get( "value" ).getNodeType() ); assertEquals( FloatNode.class, ( (ObjectNode) value ).get( "value" ).getClass() ); assertEquals( 100.0F, ( (ObjectNode) value ).get( "value" ).floatValue() ); }
@Test public void testCoerce() throws Exception { TupleEntry entry = new TupleEntry( new Fields( "json", JSONCoercibleType.TYPE ), Tuple.size( 1 ) ); entry.setObject( 0, JSONData.nested ); CopySpec copySpec = new CopySpec() .fromTransform( "/person/measure", "/value", JSONPrimitiveTransforms.TO_FLOAT ); JSONCopyAsFunction function = new JSONCopyAsFunction( new Fields( "result" ), copySpec ); TupleListCollector result = invokeFunction( function, entry, new Fields( "result" ) ); Object value = result.iterator().next().getObject( 0 ); assertNotNull( value ); assertEquals( JsonNodeType.NUMBER, ( (ObjectNode) value ).get( "value" ).getNodeType() ); assertEquals( FloatNode.class, ( (ObjectNode) value ).get( "value" ).getClass() ); assertEquals( 100.0F, ( (ObjectNode) value ).get( "value" ).floatValue() ); }