You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hivemall.apache.org by my...@apache.org on 2017/07/26 05:49:02 UTC

[4/8] incubator-hivemall git commit: safe cast for Short

safe cast for Short

Project: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/commit/deea39a2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/tree/deea39a2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/diff/deea39a2

Branch: refs/heads/HIVEMALL-24-2
Commit: deea39a25653d0d85993ca50236003a0db13c202
Parents: 82fa581
Author: Makoto Yui <my...@apache.org>
Authored: Mon Jul 24 15:22:16 2017 +0900
Committer: Makoto Yui <my...@apache.org>
Committed: Mon Jul 24 15:22:16 2017 +0900

----------------------------------------------------------------------
 core/src/main/java/hivemall/fm/Feature.java           |  9 +++++----
 .../src/main/java/hivemall/utils/lang/Primitives.java | 14 +++++++-------
 2 files changed, 12 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/deea39a2/core/src/main/java/hivemall/fm/Feature.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/hivemall/fm/Feature.java b/core/src/main/java/hivemall/fm/Feature.java
index 2966a02..f77d3fd 100644
--- a/core/src/main/java/hivemall/fm/Feature.java
+++ b/core/src/main/java/hivemall/fm/Feature.java
@@ -18,6 +18,7 @@
  */
 package hivemall.fm;
 
+import static hivemall.utils.lang.Primitives.castToShort;
 import hivemall.utils.hashing.MurmurHash3;
 import hivemall.utils.lang.NumberUtils;
 
@@ -219,7 +220,7 @@ public abstract class Feature {
             } else {
                 index = MurmurHash3.murmurhash3(lead, numFields);
             }
-            short field = (short) index;
+            short field = castToShort(index);
             double value = parseFeatureValue(rest);
             return new IntFeature(index, field, value);
         }
@@ -237,7 +238,7 @@ public abstract class Feature {
         } else {
             // +NUM_FIELD to avoid conflict to quantitative features
             index = MurmurHash3.murmurhash3(indexStr, numFeatures) + numFields;
-            field = (short) MurmurHash3.murmurhash3(lead, numFields);
+            field = castToShort(MurmurHash3.murmurhash3(lead, numFields));
         }
         String valueStr = rest.substring(pos2 + 1);
         double value = parseFeatureValue(valueStr);
@@ -296,7 +297,7 @@ public abstract class Feature {
             } else {
                 index = MurmurHash3.murmurhash3(lead, numFields);
             }
-            short field = (short) index;
+            short field = castToShort(index);
             probe.setField(field);
             probe.setFeatureIndex(index);
             probe.value = parseFeatureValue(rest);
@@ -316,7 +317,7 @@ public abstract class Feature {
         } else {
             // +NUM_FIELD to avoid conflict to quantitative features
             index = MurmurHash3.murmurhash3(indexStr, numFeatures) + numFields;
-            field = (short) MurmurHash3.murmurhash3(lead, numFields);
+            field = castToShort(MurmurHash3.murmurhash3(lead, numFields));
         }
         probe.setField(field);
         probe.setFeatureIndex(index);

http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/deea39a2/core/src/main/java/hivemall/utils/lang/Primitives.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/hivemall/utils/lang/Primitives.java b/core/src/main/java/hivemall/utils/lang/Primitives.java
index 2ec012c..a6e945f 100644
--- a/core/src/main/java/hivemall/utils/lang/Primitives.java
+++ b/core/src/main/java/hivemall/utils/lang/Primitives.java
@@ -92,16 +92,16 @@ public final class Primitives {
         b[off] = (byte) (val >>> 8);
     }
 
-    public static int toIntExact(final long longValue) {
-        final int casted = (int) longValue;
-        if (casted != longValue) {
-            throw new ArithmeticException("integer overflow: " + longValue);
+    public static int castToInt(final long value) {
+        final int result = (int) value;
+        if (result != value) {
+            throw new IllegalArgumentException("Out of range: " + value);
         }
-        return casted;
+        return result;
     }
 
-    public static int castToInt(final long value) {
-        final int result = (int) value;
+    public static short castToShort(final int value) {
+        final short result = (short) value;
         if (result != value) {
             throw new IllegalArgumentException("Out of range: " + value);
         }