001package Torello.Java.JSON; 002 003import Torello.JavaDoc.LinkJavaSource; 004import Torello.JavaDoc.StaticFunctional; 005import Torello.JavaDoc.JDHeaderBackgroundImg; 006 007import Torello.JavaDoc.IntoHTMLTable; 008import static Torello.JavaDoc.IntoHTMLTable.Background.GreenDither; 009import static Torello.JavaDoc.IntoHTMLTable.Background.BlueDither; 010 011import javax.json.Json; 012import javax.json.JsonArray; 013import javax.json.JsonString; 014import javax.json.JsonValue; 015 016import java.util.Objects; 017 018import Torello.Java.Function.IntIntTConsumer; 019import java.util.function.Consumer; 020import java.util.function.Function; 021 022import Torello.Java.JSON.JFlag; 023 024import static Torello.Java.JSON.BASIC_TYPES.BOXED; 025 026import static javax.json.JsonValue.TRUE; 027import static javax.json.JsonValue.FALSE; 028 029/** 030 * Utilities for parsing Json Array's and sending the parsed values into a Java 031 * Consumer of Boxed-Primitives. 032 * 033 * <EMBED CLASS='external-html' DATA-FILE-ID=GLASS_FISH_NOTE> 034 * <EMBED CLASS='external-html' DATA-FILE-ID=RJA_INTO_BOXED_CONS> 035 * <EMBED CLASS='external-html' DATA-FILE-ID=JSON_BINDING_NOTE> 036 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_PT_BOXED_CONS> 037 * 038 * 039 * @see Json 040 * @see JsonArray 041 */ 042@StaticFunctional 043@JDHeaderBackgroundImg(EmbedTagFileID="RJA_JDHBI_BOXED_CONS") 044public class RJArrIntoBoxedConsumer 045{ 046 private RJArrIntoBoxedConsumer() { } 047 048 /** 049 * <EMBED CLASS=defs DATA-TYPE=Integer DATA-TYPE_LC=int DATA-METH_NAME=numeric> 050 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS> 051 */ 052 @IntoHTMLTable(background=GreenDither, title="Java-Consumer which accepts Boxed-Integers") 053 @LinkJavaSource(handle="BASIC_TYPES", name="INTEGER") 054 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=5) 055 public static void intArr( 056 final JsonArray ja, 057 final int defaultValue, 058 final int FLAGS, 059 final Function<String, Integer> optionalUserParser, 060 final Consumer<Integer> c 061 ) 062 { 063 Objects.requireNonNull(c, "Consumer<Integer> parameter 'c' is null"); 064 065 ProcessJsonArray.numericToJava( 066 ja, 067 // new SettingsRec<Integer, Void> 068 SETTINGS_REC_BUILDER.createForConsumers 069 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_INTEGER()) 070 ); 071 } 072 073 /** 074 * <EMBED CLASS=defs DATA-TYPE=Short DATA-TYPE_LC=short DATA-METH_NAME=numeric> 075 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS> 076 */ 077 @IntoHTMLTable(background=BlueDither, title="Java-Consumer which accepts Boxed Short-Integers") 078 @LinkJavaSource(handle="BASIC_TYPES", name="SHORT") 079 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=5) 080 public static void shortArr( 081 final JsonArray ja, 082 final short defaultValue, 083 final int FLAGS, 084 final Function<String, Short> optionalUserParser, 085 final Consumer<Short> c 086 ) 087 { 088 Objects.requireNonNull(c, "Consumer<Short> parameter 'c' is null"); 089 090 ProcessJsonArray.numericToJava( 091 ja, 092 // new SettingsRec<Short, Void> 093 SETTINGS_REC_BUILDER.createForConsumers 094 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_SHORT()) 095 ); 096 } 097 098 /** 099 * <EMBED CLASS=defs DATA-TYPE=Byte DATA-TYPE_LC=byte DATA-METH_NAME=numeric> 100 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS> 101 */ 102 @IntoHTMLTable(background=GreenDither, title="Java-Consumer which accepts Boxed-Bytes") 103 @LinkJavaSource(handle="BASIC_TYPES", name="BYTE") 104 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=5) 105 public static void byteArr( 106 final JsonArray ja, 107 final byte defaultValue, 108 final int FLAGS, 109 final Function<String, Byte> optionalUserParser, 110 final Consumer<Byte> c 111 ) 112 { 113 Objects.requireNonNull(c, "Consumer<Byte> parameter 'c' is null"); 114 115 ProcessJsonArray.numericToJava( 116 ja, 117 // new SettingsRec<Byte, Void> 118 SETTINGS_REC_BUILDER.createForConsumers 119 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_BYTE()) 120 ); 121 } 122 123 /** 124 * <EMBED CLASS=defs DATA-TYPE=Long DATA-TYPE_LC=long DATA-METH_NAME=numeric> 125 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS> 126 */ 127 @IntoHTMLTable(background=BlueDither, title="Java-Consumer which accepts Boxed Long-Integers") 128 @LinkJavaSource(handle="BASIC_TYPES", name="LONG") 129 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=5) 130 public static void longArr( 131 final JsonArray ja, 132 final long defaultValue, 133 final int FLAGS, 134 final Function<String, Long> optionalUserParser, 135 final Consumer<Long> c 136 ) 137 { 138 Objects.requireNonNull(c, "Consumer<Long> parameter 'c' is null"); 139 140 ProcessJsonArray.numericToJava( 141 ja, 142 // new SettingsRec<Long, Void> 143 SETTINGS_REC_BUILDER.createForConsumers 144 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_LONG()) 145 ); 146 } 147 148 /** 149 * <EMBED CLASS=defs DATA-TYPE=Double DATA-TYPE_LC=double DATA-METH_NAME=numeric> 150 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS> 151 */ 152 @IntoHTMLTable(background=GreenDither, title="Java-Consumer which accepts Boxed-Doubles") 153 @LinkJavaSource(handle="BASIC_TYPES", name="DOUBLE") 154 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=5) 155 public static void doubleArr( 156 final JsonArray ja, 157 final double defaultValue, 158 final int FLAGS, 159 final Function<String, Double> optionalUserParser, 160 final Consumer<Double> c 161 ) 162 { 163 Objects.requireNonNull(c, "Consumer<Double> parameter 'c' is null"); 164 165 ProcessJsonArray.numericToJava( 166 ja, 167 // new SettingsRec<Double, Void> 168 SETTINGS_REC_BUILDER.createForConsumers 169 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_DOUBLE()) 170 ); 171 } 172 173 /** 174 * <EMBED CLASS=defs DATA-TYPE=Float DATA-TYPE_LC=float DATA-METH_NAME=numeric> 175 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS> 176 */ 177 @IntoHTMLTable(background=BlueDither, title="Java-Consumer which accepts Boxed-Floats") 178 @LinkJavaSource(handle="BASIC_TYPES", name="FLOAT") 179 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=5) 180 public static void floatArr( 181 final JsonArray ja, 182 final float defaultValue, 183 final int FLAGS, 184 final Function<String, Float> optionalUserParser, 185 final Consumer<Float> c 186 ) 187 { 188 Objects.requireNonNull(c, "Consumer<Float> parameter 'c' is null"); 189 190 ProcessJsonArray.numericToJava( 191 ja, 192 // new SettingsRec<Float, Void> 193 SETTINGS_REC_BUILDER.createForConsumers 194 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_FLOAT()) 195 ); 196 } 197 198 /** 199 * <EMBED CLASS=defs DATA-TYPE=Boolean DATA-TYPE_LC=boolean DATA-METH_NAME=boolean> 200 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS> 201 */ 202 @IntoHTMLTable(background=GreenDither, title="Java-Consumer which accepts Boxed-Booleans") 203 @LinkJavaSource(handle="BASIC_TYPES", name="BOOLEAN") 204 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=5) 205 public static void booleanArr( 206 final JsonArray ja, 207 final boolean defaultValue, 208 final int FLAGS, 209 final Function<String, Boolean> optionalUserParser, 210 final Consumer<Boolean> c 211 ) 212 { 213 Objects.requireNonNull(c, "Consumer<Boolean> parameter 'c' is null"); 214 215 ProcessJsonArray.booleanToJava( 216 ja, 217 // new SettingsRec<Boolean, Void> 218 SETTINGS_REC_BUILDER.createForConsumers 219 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_BOOLEAN()) 220 ); 221 } 222 223 /** 224 * <EMBED CLASS=defs DATA-TYPE=Number DATA-TYPE_LC=int DATA-METH_NAME=numeric> 225 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS> 226 */ 227 @IntoHTMLTable( 228 background=BlueDither, 229 title="Java-Consumer which accepts Best-Fit Boxed-Numbers" 230 ) 231 @LinkJavaSource(handle="BASIC_TYPES", name="NUMBER_REC") 232 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=5) 233 public static void numberArr( 234 final JsonArray ja, 235 final Number defaultValue, 236 final int FLAGS, 237 final Function<String, Number> optionalUserParser, 238 final Consumer<Number> c 239 ) 240 { 241 Objects.requireNonNull(c, "Consumer<Number> parameter 'c' is null"); 242 243 ProcessJsonArray.numericToJava( 244 ja, 245 // new SettingsRec<Number, Void> 246 SETTINGS_REC_BUILDER.createForConsumers 247 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.NUMBER_REC()) 248 ); 249 } 250 251 252 253 254 // ******************************************************************************************** 255 // ******************************************************************************************** 256 // IntIntTConsumer Variant 257 // ******************************************************************************************** 258 // ******************************************************************************************** 259 260 261 262 263 /** 264 * <EMBED CLASS=defs DATA-TYPE=Integer DATA-TYPE_LC=int DATA-METH_NAME=numeric> 265 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS2> 266 */ 267 @IntoHTMLTable( 268 background=GreenDither, 269 title="Java-Consumer accepting Boxed-Integers, w/ Array-Indices" 270 ) 271 @LinkJavaSource(handle="BASIC_TYPES", name="INTEGER") 272 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=5) 273 public static void intArr2( 274 final JsonArray ja, 275 final int defaultValue, 276 final int FLAGS, 277 final Function<String, Integer> optionalUserParser, 278 final IntIntTConsumer<Integer> c 279 ) 280 { 281 Objects.requireNonNull(c, "IntIntTConsumer<Integer> parameter 'c' is null"); 282 283 ProcessJsonArray.numericToJava( 284 ja, 285 // new SettingsRec<Integer, Void> 286 SETTINGS_REC_BUILDER.createForIIConsumers 287 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_INTEGER()) 288 ); 289 } 290 291 /** 292 * <EMBED CLASS=defs DATA-TYPE=Short DATA-TYPE_LC=short DATA-METH_NAME=numeric> 293 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS2> 294 */ 295 @IntoHTMLTable( 296 background=BlueDither, 297 title="Java-Consumer accepting Boxed Short-Integers, w/ Array-Indices" 298 ) 299 @LinkJavaSource(handle="BASIC_TYPES", name="SHORT") 300 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=5) 301 public static void shortArr2( 302 final JsonArray ja, 303 final short defaultValue, 304 final int FLAGS, 305 final Function<String, Short> optionalUserParser, 306 final IntIntTConsumer<Short> c 307 ) 308 { 309 Objects.requireNonNull(c, "IntIntTConsumer<Short> parameter 'c' is null"); 310 311 ProcessJsonArray.numericToJava( 312 ja, 313 // new SettingsRec<Short, Void> 314 SETTINGS_REC_BUILDER.createForIIConsumers 315 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_SHORT()) 316 ); 317 } 318 319 /** 320 * <EMBED CLASS=defs DATA-TYPE=Byte DATA-TYPE_LC=byte DATA-METH_NAME=numeric> 321 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS2> 322 */ 323 @IntoHTMLTable( 324 background=GreenDither, 325 title="Java-Consumer accepting Boxed-Bytes, w/ Array-Indices" 326 ) 327 @LinkJavaSource(handle="BASIC_TYPES", name="BYTE") 328 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=5) 329 public static void byteArr2( 330 final JsonArray ja, 331 final byte defaultValue, 332 final int FLAGS, 333 final Function<String, Byte> optionalUserParser, 334 final IntIntTConsumer<Byte> c 335 ) 336 { 337 Objects.requireNonNull(c, "IntIntTConsumer<Byte> parameter 'c' is null"); 338 339 ProcessJsonArray.numericToJava( 340 ja, 341 // new SettingsRec<Byte, Void> 342 SETTINGS_REC_BUILDER.createForIIConsumers 343 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_BYTE()) 344 ); 345 } 346 347 /** 348 * <EMBED CLASS=defs DATA-TYPE=Long DATA-TYPE_LC=long DATA-METH_NAME=numeric> 349 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS2> 350 */ 351 @IntoHTMLTable( 352 background=BlueDither, 353 title="Java-Consumer accepting Boxed Long-Integers, w/ Array-Indices" 354 ) 355 @LinkJavaSource(handle="BASIC_TYPES", name="LONG") 356 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=5) 357 public static void longArr2( 358 final JsonArray ja, 359 final long defaultValue, 360 final int FLAGS, 361 final Function<String, Long> optionalUserParser, 362 final IntIntTConsumer<Long> c 363 ) 364 { 365 Objects.requireNonNull(c, "IntIntTConsumer<Long> parameter 'c' is null"); 366 367 ProcessJsonArray.numericToJava( 368 ja, 369 // new SettingsRec<Long, Void> 370 SETTINGS_REC_BUILDER.createForIIConsumers 371 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_LONG()) 372 ); 373 } 374 375 /** 376 * <EMBED CLASS=defs DATA-TYPE=Double DATA-TYPE_LC=double DATA-METH_NAME=numeric> 377 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS2> 378 */ 379 @IntoHTMLTable( 380 background=GreenDither, 381 title="Java-Consumer accepting Boxed-Doubles, w/ Array-Indices" 382 ) 383 @LinkJavaSource(handle="BASIC_TYPES", name="DOUBLE") 384 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=5) 385 public static void doubleArr2( 386 final JsonArray ja, 387 final double defaultValue, 388 final int FLAGS, 389 final Function<String, Double> optionalUserParser, 390 final IntIntTConsumer<Double> c 391 ) 392 { 393 Objects.requireNonNull(c, "IntIntTConsumer<Double> parameter 'c' is null"); 394 395 ProcessJsonArray.numericToJava( 396 ja, 397 // new SettingsRec<Double, Void> 398 SETTINGS_REC_BUILDER.createForIIConsumers 399 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_DOUBLE()) 400 ); 401 } 402 403 /** 404 * <EMBED CLASS=defs DATA-TYPE=Float DATA-TYPE_LC=float DATA-METH_NAME=numeric> 405 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS2> 406 */ 407 @IntoHTMLTable( 408 background=BlueDither, 409 title="Java-Consumer accepting Boxed-Floats, w/ Array-Indices" 410 ) 411 @LinkJavaSource(handle="BASIC_TYPES", name="FLOAT") 412 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=5) 413 public static void floatArr2( 414 final JsonArray ja, 415 final float defaultValue, 416 final int FLAGS, 417 final Function<String, Float> optionalUserParser, 418 final IntIntTConsumer<Float> c 419 ) 420 { 421 Objects.requireNonNull(c, "IntIntTConsumer<Float> parameter 'c' is null"); 422 423 ProcessJsonArray.numericToJava( 424 ja, 425 // new SettingsRec<Float, Void> 426 SETTINGS_REC_BUILDER.createForIIConsumers 427 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_FLOAT()) 428 ); 429 } 430 431 /** 432 * <EMBED CLASS=defs DATA-TYPE=Boolean DATA-TYPE_LC=boolean DATA-METH_NAME=boolean> 433 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS2> 434 */ 435 @IntoHTMLTable( 436 background=GreenDither, 437 title="Java-Consumer accepting Boxed-Booleans, w/ Array-Indices" 438 ) 439 @LinkJavaSource(handle="BASIC_TYPES", name="BOOLEAN") 440 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=5) 441 public static void booleanArr2( 442 final JsonArray ja, 443 final boolean defaultValue, 444 final int FLAGS, 445 final Function<String, Boolean> optionalUserParser, 446 final IntIntTConsumer<Boolean> c 447 ) 448 { 449 Objects.requireNonNull(c, "IntIntTConsumer<Boolean> parameter 'c' is null"); 450 451 ProcessJsonArray.booleanToJava( 452 ja, 453 // new SettingsRec<Boolean, Void> 454 SETTINGS_REC_BUILDER.createForIIConsumers 455 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.BOXED_BOOLEAN()) 456 ); 457 } 458 459 /** 460 * <EMBED CLASS=defs DATA-TYPE=Number DATA-TYPE_LC=number DATA-METH_NAME=numeric> 461 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_INTO_BOXED_CONS2> 462 */ 463 @IntoHTMLTable( 464 background=BlueDither, 465 title="Java-Consumer accepting Best-Fit Boxed-Numbers, w/ Array-Indices" 466 ) 467 @LinkJavaSource(handle="BASIC_TYPES", name="NUMBER_REC") 468 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=5) 469 public static void numberArr2( 470 final JsonArray ja, 471 final Number defaultValue, 472 final int FLAGS, 473 final Function<String, Number> optionalUserParser, 474 final IntIntTConsumer<Number> c 475 ) 476 { 477 Objects.requireNonNull(c, "IntIntTConsumer<Number> parameter 'c' is null"); 478 479 ProcessJsonArray.numericToJava( 480 ja, 481 // new SettingsRec<Number, Void> 482 SETTINGS_REC_BUILDER.createForIIConsumers 483 (defaultValue, FLAGS, optionalUserParser, c, BASIC_TYPES.NUMBER_REC()) 484 ); 485 } 486 487}