@@ -51,6 +51,18 @@ public static byte[] writeShort(WorkflowBufferFactory factory, short value) {
5151 return writeValue (factory , value , (b , v ) -> b .writeShort (v ));
5252 }
5353
54+ public static byte [] writeInt (WorkflowBufferFactory factory , int value ) {
55+ return writeValue (factory , value , (b , v ) -> b .writeInt (v ));
56+ }
57+
58+ public static byte [] writeFloat (WorkflowBufferFactory factory , float value ) {
59+ return writeValue (factory , value , (b , v ) -> b .writeFloat (v ));
60+ }
61+
62+ public static byte [] writeDouble (WorkflowBufferFactory factory , int value ) {
63+ return writeValue (factory , value , (b , v ) -> b .writeDouble (v ));
64+ }
65+
5466 public static byte [] writeBoolean (WorkflowBufferFactory factory , boolean value ) {
5567 return writeValue (factory , value , (b , v ) -> b .writeBoolean (v ));
5668 }
@@ -64,11 +76,23 @@ public static String readString(WorkflowBufferFactory factory, byte[] value) {
6476 }
6577
6678 public static boolean readBoolean (WorkflowBufferFactory factory , byte [] value ) {
67- return readValue (factory , value , WorkflowInputBuffer ::readBoolean );
79+ return readValue (factory , value , WorkflowInputBuffer ::readBoolean , false );
6880 }
6981
7082 public static short readShort (WorkflowBufferFactory factory , byte [] value ) {
71- return readValue (factory , value , WorkflowInputBuffer ::readShort );
83+ return readValue (factory , value , WorkflowInputBuffer ::readShort , (short ) 0 );
84+ }
85+
86+ public static int readInt (WorkflowBufferFactory factory , byte [] value ) {
87+ return readValue (factory , value , WorkflowInputBuffer ::readInt , 0 );
88+ }
89+
90+ public static float readFloat (WorkflowBufferFactory factory , byte [] value ) {
91+ return readValue (factory , value , WorkflowInputBuffer ::readFloat , 0.0f );
92+ }
93+
94+ public static double readDouble (WorkflowBufferFactory factory , byte [] value ) {
95+ return readValue (factory , value , WorkflowInputBuffer ::readDouble , 0.0 );
7296 }
7397
7498 public static WorkflowModel readModel (WorkflowBufferFactory factory , byte [] value ) {
@@ -95,8 +119,16 @@ private static <T> byte[] writeValue(
95119
96120 private static <T > T readValue (
97121 WorkflowBufferFactory factory , byte [] value , Function <WorkflowInputBuffer , T > valueConsumer ) {
122+ return readValue (factory , value , valueConsumer , null );
123+ }
124+
125+ private static <T > T readValue (
126+ WorkflowBufferFactory factory ,
127+ byte [] value ,
128+ Function <WorkflowInputBuffer , T > valueConsumer ,
129+ T defaultValue ) {
98130 if (value == null ) {
99- return null ;
131+ return defaultValue ;
100132 }
101133 ByteArrayInputStream bytesIn = new ByteArrayInputStream (value );
102134 try (WorkflowInputBuffer buffer = factory .input (bytesIn )) {
0 commit comments