add maxValueOf() for NumericUtil (#30)
Change-Id: Ie34be6a9aa187691b004391f956891b8c55554fb
diff --git a/pom.xml b/pom.xml
index 7f97011..41974a8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>com.baidu.hugegraph</groupId>
<artifactId>hugegraph-common</artifactId>
- <version>1.6.6</version>
+ <version>1.6.7</version>
<name>hugegraph-common</name>
<url>https://github.com/hugegraph/hugegraph-common</url>
@@ -212,7 +212,7 @@
<manifestEntries>
<!-- Must be on one line, otherwise the automatic
upgrade script cannot replace the version number -->
- <Implementation-Version>1.6.6.0</Implementation-Version>
+ <Implementation-Version>1.6.7.0</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
diff --git a/src/main/java/com/baidu/hugegraph/util/NumericUtil.java b/src/main/java/com/baidu/hugegraph/util/NumericUtil.java
index f976f92..1dafa8b 100644
--- a/src/main/java/com/baidu/hugegraph/util/NumericUtil.java
+++ b/src/main/java/com/baidu/hugegraph/util/NumericUtil.java
@@ -212,6 +212,26 @@
throw unsupportedNumberType(clazz);
}
+ public static Number maxValueOf(Class<?> clazz) {
+ E.checkArgumentNotNull(clazz, "The clazz can't be null");
+
+ if (Long.class.isAssignableFrom(clazz) ||
+ Double.class.isAssignableFrom(clazz) ) {
+ return Long.MAX_VALUE;
+ }
+ if (Integer.class.isAssignableFrom(clazz) ||
+ Float.class.isAssignableFrom(clazz) ||
+ Short.class.isAssignableFrom(clazz)) {
+ return Integer.MAX_VALUE;
+ }
+ if (Byte.class.isAssignableFrom(clazz)) {
+ return Byte.MAX_VALUE;
+ }
+
+ // TODO: support other number types
+ throw unsupportedNumberType(clazz);
+ }
+
public static byte[] longToSortableBytes(long value) {
return longToBytes(value + FULL_LONG);
}
diff --git a/src/main/java/com/baidu/hugegraph/version/CommonVersion.java b/src/main/java/com/baidu/hugegraph/version/CommonVersion.java
index da9b44c..43494b5 100644
--- a/src/main/java/com/baidu/hugegraph/version/CommonVersion.java
+++ b/src/main/java/com/baidu/hugegraph/version/CommonVersion.java
@@ -27,5 +27,5 @@
// The second parameter of Version.of() is for all-in-one JAR
public static final Version VERSION = Version.of(CommonVersion.class,
- "1.6.6");
+ "1.6.7");
}
diff --git a/src/test/java/com/baidu/hugegraph/unit/util/NumericUtilTest.java b/src/test/java/com/baidu/hugegraph/unit/util/NumericUtilTest.java
index 0a90964..a7221b9 100644
--- a/src/test/java/com/baidu/hugegraph/unit/util/NumericUtilTest.java
+++ b/src/test/java/com/baidu/hugegraph/unit/util/NumericUtilTest.java
@@ -364,6 +364,31 @@
});
}
+ @Test
+ public void testMaxValueOf() {
+ Assert.assertEquals(Byte.MAX_VALUE,
+ NumericUtil.maxValueOf(Byte.class));
+
+ Assert.assertEquals(Integer.MAX_VALUE,
+ NumericUtil.maxValueOf(Short.class));
+ Assert.assertEquals(Integer.MAX_VALUE,
+ NumericUtil.maxValueOf(Integer.class));
+ Assert.assertEquals(Integer.MAX_VALUE,
+ NumericUtil.maxValueOf(Float.class));
+
+ Assert.assertEquals(Long.MAX_VALUE,
+ NumericUtil.maxValueOf(Long.class));
+ Assert.assertEquals(Long.MAX_VALUE,
+ NumericUtil.maxValueOf(Double.class));
+
+ Assert.assertThrows(IllegalArgumentException.class, () -> {
+ NumericUtil.minValueOf(null);
+ });
+ Assert.assertThrows(IllegalArgumentException.class, () -> {
+ NumericUtil.minValueOf(Character.class);
+ });
+ }
+
private static void assertEquals(byte[] bytes1, byte[] bytes2) {
Assert.assertTrue(Bytes.toHex(bytes1) + " != " + Bytes.toHex(bytes2),
Bytes.equals(bytes1, bytes2));