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