@@ -858,10 +858,37 @@ public static class TypedReturnBuilder extends ReturnBuilderSupport {
858858 */
859859 @ Contract ("_ -> this" )
860860 public TypedReturnBuilder number (String resultToReturn ) {
861+
861862 return whenBoxedLong ("$1L != null ? $1L.longValue() : null" , resultToReturn )
862863 .whenLong ("$1L != null ? $1L.longValue() : 0L" , resultToReturn )
863864 .whenBoxedInteger ("$1L != null ? $1L.intValue() : null" , resultToReturn )
864- .whenInt ("$1L != null ? $1L.intValue() : 0" , resultToReturn );
865+ .whenInt ("$1L != null ? $1L.intValue() : 0" , resultToReturn )
866+ .whenBoxed (Byte .class , "$1L != null ? $1L.byteValue() : null" , resultToReturn )
867+ .when (byte .class , "$1L != null ? $1L.byteValue() : 0" , resultToReturn )
868+ .whenBoxed (Short .class , "$1L != null ? $1L.shortValue() : null" , resultToReturn )
869+ .when (short .class , "$1L != null ? $1L.shortValue() : 0" , resultToReturn )
870+ .whenBoxed (Double .class , "$1L != null ? $1L.doubleValue() : null" , resultToReturn )
871+ .when (double .class , "$1L != null ? $1L.doubleValue() : 0" , resultToReturn )
872+ .whenBoxed (Float .class , "$1L != null ? $1L.floatValue() : null" , resultToReturn )
873+ .when (float .class , "$1L != null ? $1L.floatValue() : 0f" , resultToReturn );
874+ }
875+
876+ /**
877+ * Add return statements for numeric types if the given {@code resultToReturn} points to a non-nullable
878+ * {@link Number}. Considers all primitive numeric types assuming that {@code resultToReturn} is never
879+ * {@literal null}.
880+ *
881+ * @param resultToReturn the argument or variable name holding the result.
882+ * @return {@code this} builder.
883+ */
884+ @ Contract ("_ -> this" )
885+ public TypedReturnBuilder nonNullableNumber (String resultToReturn ) {
886+ return whenPrimitiveOrBoxed (long .class , "$1L.longValue()" , resultToReturn )
887+ .whenPrimitiveOrBoxed (int .class , "$1L.intValue()" , resultToReturn )
888+ .whenPrimitiveOrBoxed (short .class , "$1L.shortValue()" , resultToReturn )
889+ .whenPrimitiveOrBoxed (byte .class , "$1L.byteValue()" , resultToReturn )
890+ .whenPrimitiveOrBoxed (float .class , "$1L.floatValue()" , resultToReturn )
891+ .whenPrimitiveOrBoxed (double .class , "$1L.doubleValue()" , resultToReturn );
865892 }
866893
867894 /**
0 commit comments