Skip to content

Commit 962c1ff

Browse files
committed
Provide API for getting field values
1 parent 17064ef commit 962c1ff

File tree

9 files changed

+242
-0
lines changed

9 files changed

+242
-0
lines changed

lineprotocol/src/main/java/io/sniffy/influxdb/lineprotocol/FieldBooleanValue.java

+20
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,24 @@ public int hashCode() {
2828
return Objects.hash(value);
2929
}
3030

31+
@Override
32+
public boolean asBoolean() {
33+
return value;
34+
}
35+
36+
@Override
37+
public long asLong() {
38+
return value ? 1 : 0;
39+
}
40+
41+
@Override
42+
public double asDouble() {
43+
return value ? 1 : 0;
44+
}
45+
46+
@Override
47+
public String asString() {
48+
return Boolean.toString(value);
49+
}
50+
3151
}

lineprotocol/src/main/java/io/sniffy/influxdb/lineprotocol/FieldFloatValue.java

+20
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,24 @@ public int hashCode() {
3131
return Objects.hash(value);
3232
}
3333

34+
@Override
35+
public boolean asBoolean() {
36+
return Math.signum(value) != 0;
37+
}
38+
39+
@Override
40+
public long asLong() {
41+
return (long) value;
42+
}
43+
44+
@Override
45+
public double asDouble() {
46+
return value;
47+
}
48+
49+
@Override
50+
public String asString() {
51+
return Double.toString(value);
52+
}
53+
3454
}

lineprotocol/src/main/java/io/sniffy/influxdb/lineprotocol/FieldIntegerValue.java

+20
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,24 @@ public int hashCode() {
2828
return Objects.hash(value);
2929
}
3030

31+
@Override
32+
public boolean asBoolean() {
33+
return value != 0;
34+
}
35+
36+
@Override
37+
public long asLong() {
38+
return value;
39+
}
40+
41+
@Override
42+
public double asDouble() {
43+
return value;
44+
}
45+
46+
@Override
47+
public String asString() {
48+
return Long.toString(value);
49+
}
50+
3151
}

lineprotocol/src/main/java/io/sniffy/influxdb/lineprotocol/FieldStringValue.java

+32
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,36 @@ public int hashCode() {
2828
return Objects.hash(value);
2929
}
3030

31+
@Override
32+
public boolean asBoolean() {
33+
return Boolean.parseBoolean(value);
34+
}
35+
36+
@Override
37+
public long asLong() {
38+
try {
39+
if (value.contains(".")) {
40+
return (long) asDouble();
41+
} else {
42+
return Long.parseLong(value);
43+
}
44+
} catch (NumberFormatException e) {
45+
return 0;
46+
}
47+
}
48+
49+
@Override
50+
public double asDouble() {
51+
try {
52+
return Double.parseDouble(value);
53+
} catch (NumberFormatException e) {
54+
return 0.;
55+
}
56+
}
57+
58+
@Override
59+
public String asString() {
60+
return value;
61+
}
62+
3163
}

lineprotocol/src/main/java/io/sniffy/influxdb/lineprotocol/FieldValue.java

+8
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,12 @@ public abstract class FieldValue {
1111
@Override
1212
public abstract String toString();
1313

14+
public abstract String asString();
15+
16+
public abstract long asLong();
17+
18+
public abstract double asDouble();
19+
20+
public abstract boolean asBoolean();
21+
1422
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package io.sniffy.influxdb.lineprotocol;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.*;
6+
7+
public class FieldIntegerValueTest {
8+
9+
@Test
10+
public void testAsBoolean() {
11+
assertTrue(new FieldIntegerValue(1).asBoolean());
12+
assertFalse(new FieldIntegerValue(0).asBoolean());
13+
}
14+
15+
@Test
16+
public void testAsLong() {
17+
assertEquals(1L, new FieldIntegerValue(1).asLong());
18+
assertEquals(0L, new FieldIntegerValue(0).asLong());
19+
}
20+
21+
@Test
22+
public void testAsDouble() {
23+
assertEquals(1., new FieldIntegerValue(1).asDouble(), 0.1);
24+
assertEquals(0., new FieldIntegerValue(0).asDouble(), 0.1);
25+
}
26+
27+
@Test
28+
public void testAsString() {
29+
assertEquals("1", new FieldIntegerValue(1).asString());
30+
assertEquals("0", new FieldIntegerValue(0).asString());
31+
}
32+
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package io.sniffy.influxdb.lineprotocol;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.*;
6+
7+
public class FieldStringValueTest {
8+
9+
@Test
10+
public void testAsBoolean() {
11+
assertTrue(new FieldStringValue("true").asBoolean());
12+
assertFalse(new FieldStringValue("false").asBoolean());
13+
assertFalse(new FieldStringValue("").asBoolean());
14+
assertFalse(new FieldStringValue("some string").asBoolean());
15+
}
16+
17+
@Test
18+
public void testAsLong() {
19+
assertEquals(1L, new FieldStringValue("1").asLong());
20+
assertEquals(1L, new FieldStringValue("1.0").asLong());
21+
assertEquals(0L, new FieldStringValue("0").asLong());
22+
assertEquals(0L, new FieldStringValue("0.").asLong());
23+
assertEquals(0L, new FieldStringValue("").asLong());
24+
assertEquals(0L, new FieldStringValue("foo").asLong());
25+
}
26+
27+
@Test
28+
public void testAsDouble() {
29+
assertEquals(1., new FieldStringValue("1").asDouble(), 0.1);
30+
assertEquals(1., new FieldStringValue("1.0").asDouble(), 0.1);
31+
assertEquals(0., new FieldStringValue("0").asDouble(), 0.1);
32+
assertEquals(0., new FieldStringValue("0.").asDouble(), 0.1);
33+
assertEquals(0., new FieldStringValue("").asDouble(), 0.1);
34+
assertEquals(0., new FieldStringValue("bar").asDouble(), 0.1);
35+
}
36+
37+
@Test
38+
public void testAsString() {
39+
assertEquals("bar", new FieldStringValue("bar").asString());
40+
assertEquals("", new FieldStringValue("").asString());
41+
}
42+
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package io.sniffy.influxdb.lineprotocol;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.*;
6+
7+
public class FiledBooleanValueTest {
8+
9+
@Test
10+
public void testAsBoolean() {
11+
assertTrue(new FieldBooleanValue(true).asBoolean());
12+
assertFalse(new FieldBooleanValue(false).asBoolean());
13+
}
14+
15+
@Test
16+
public void testAsLong() {
17+
assertEquals(1L, new FieldBooleanValue(true).asLong());
18+
assertEquals(0L, new FieldBooleanValue(false).asLong());
19+
}
20+
21+
@Test
22+
public void testAsDouble() {
23+
assertEquals(1., new FieldBooleanValue(true).asDouble(), 0.1);
24+
assertEquals(0., new FieldBooleanValue(false).asDouble(), 0.1);
25+
}
26+
27+
@Test
28+
public void testAsString() {
29+
assertEquals("true", new FieldBooleanValue(true).asString());
30+
assertEquals("false", new FieldBooleanValue(false).asString());
31+
}
32+
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package io.sniffy.influxdb.lineprotocol;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.*;
6+
7+
public class FiledFloatValueTest {
8+
9+
@Test
10+
public void testAsBoolean() {
11+
assertTrue(new FieldFloatValue(1.).asBoolean());
12+
assertFalse(new FieldFloatValue(0.).asBoolean());
13+
}
14+
15+
@Test
16+
public void testAsLong() {
17+
assertEquals(1L, new FieldFloatValue(1.).asLong());
18+
assertEquals(0L, new FieldFloatValue(0.).asLong());
19+
}
20+
21+
@Test
22+
public void testAsDouble() {
23+
assertEquals(1., new FieldFloatValue(1.).asDouble(), 0.1);
24+
assertEquals(0., new FieldFloatValue(0.).asDouble(), 0.1);
25+
}
26+
27+
@Test
28+
public void testAsString() {
29+
assertEquals("1.0", new FieldFloatValue(1.).asString());
30+
assertEquals("0.0", new FieldFloatValue(0.).asString());
31+
}
32+
33+
}

0 commit comments

Comments
 (0)