001package Torello.JSON; 002 003 004// *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 005// These are the User-Provided Lambda's / Functional-Interfaces 006// *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 007 008import java.util.function.IntConsumer; 009import Torello.Java.Function.TriIntCons; 010import java.util.function.ToIntFunction; 011 012import Torello.Java.Function.ShortConsumer; 013import Torello.Java.Function.IntIntShortCons; 014import Torello.Java.Function.ToShortFunction; 015 016import Torello.Java.Function.ByteConsumer; 017import Torello.Java.Function.IntIntByteCons; 018import Torello.Java.Function.ToByteFunction; 019 020import java.util.function.LongConsumer; 021import Torello.Java.Function.IntIntLongCons; 022import java.util.function.ToLongFunction; 023 024import Torello.Java.Function.FloatConsumer; 025import Torello.Java.Function.IntIntFloatCons; 026import Torello.Java.Function.ToFloatFunction; 027 028import java.util.function.DoubleConsumer; 029import Torello.Java.Function.IntIntDoubleCons; 030import java.util.function.ToDoubleFunction; 031 032import Torello.Java.Function.BoolConsumer; 033import Torello.Java.Function.IntIntBoolCons; 034import java.util.function.Predicate; 035 036 037// *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 038// The Rest of the imports 039// *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 040 041import Torello.JavaDoc.Annotations.StaticFunctional; 042import Torello.JavaDoc.Annotations.LinkJavaSource; 043import Torello.JavaDoc.Annotations.JDHeaderBackgroundImg; 044 045import Torello.JavaDoc.Annotations.IntoHTMLTable; 046import static Torello.JavaDoc.Annotations.IntoHTMLTable.Background.GreenDither; 047import static Torello.JavaDoc.Annotations.IntoHTMLTable.Background.BlueDither; 048 049import Torello.JSON.JFlag; 050 051import javax.json.Json; 052import javax.json.JsonString; 053import javax.json.JsonArray; 054import javax.json.JsonValue; 055 056import java.util.Objects; 057 058import static javax.json.JsonValue.TRUE; 059import static javax.json.JsonValue.FALSE; 060 061import static Torello.JSON.JFlag.NOT_ALLOWED_RET_NULL_MASKS; 062import static Torello.JSON.BASIC_TYPES.PRIMITIVE; 063 064 065/** 066 * Generate a Pre-Configured {@link SettingsRec} instance which can handle Java-Primitives. 067 * 068 * <EMBED CLASS=globalDefs DATA-A_AN=A> 069 * <EMBED CLASS='external-html' DATA-FILE-ID=ALL_CLASSES_NOTE> 070 * <EMBED CLASS='external-html' DATA-FILE-ID=RJA_PRIM_CONS_REC> 071 * <EMBED CLASS='external-html' DATA-FILE-ID=LOOP_OPTIMIZED_NOTE> 072 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_PT_PRIM_CONS_REC> 073 * 074 * @see Json 075 * @see JsonArray 076 */ 077@StaticFunctional 078@JDHeaderBackgroundImg(EmbedTagFileID="RJA_JDHBI_PRIM_CONS_REC") 079public class RJArrPrimConsumerRec 080{ 081 private RJArrPrimConsumerRec() { } 082 083 /** 084 * <EMBED CLASS=defs DATA-A_AN=An DATA-METH_NAME=numeric DATA-PRIM_TYPE=int DATA-DEFVAL="-1"> 085 * <EMBED CLASS='external-html' DATA-TYPE=Integer DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 086 */ 087 @IntoHTMLTable( 088 background=GreenDither, 089 title="Create a SettingsRec Instance for a Primitive-Integer Consumer" 090 ) 091 @LinkJavaSource(handle="BASIC_TYPES", name="INTEGER") 092 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 093 public static SettingsRec<Integer, Void> intArr( 094 final int defaultValue, 095 final int FLAGS, 096 final ToIntFunction<String> optionalUserParser 097 ) 098 { 099 return new SETTINGS_REC_BUILDER<Integer, Void>( 100 defaultValue, 101 FLAGS, 102 (optionalUserParser == null) ? null : optionalUserParser::applyAsInt, 103 BASIC_TYPES.PRIMITIVE_INTEGER() 104 ) 105 .updateableConsumer(true); 106 } 107 108 /** 109 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=short DATA-DEFVAL="-1"> 110 * <EMBED CLASS='external-html' DATA-TYPE=Short DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 111 */ 112 @IntoHTMLTable( 113 background=BlueDither, 114 title="Create a SettingsRec Instance for a Primitive Short-Integer Consumer" 115 ) 116 @LinkJavaSource(handle="BASIC_TYPES", name="SHORT") 117 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 118 public static SettingsRec<Short, Void> shortArr( 119 final short defaultValue, 120 final int FLAGS, 121 final ToShortFunction<String> optionalUserParser 122 ) 123 { 124 return new SETTINGS_REC_BUILDER<Short, Void>( 125 defaultValue, 126 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 127 (optionalUserParser == null) ? null : optionalUserParser::applyAsShort, 128 BASIC_TYPES.PRIMITIVE_SHORT() 129 ) 130 .updateableConsumer(true); 131 } 132 133 /** 134 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=byte DATA-DEFVAL="-1"> 135 * <EMBED CLASS='external-html' DATA-TYPE=Byte DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 136 */ 137 @IntoHTMLTable( 138 background=GreenDither, 139 title="Create a SettingsRec Instance for a Primitive-Byte Consumer" 140 ) 141 @LinkJavaSource(handle="BASIC_TYPES", name="BYTE") 142 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 143 public static SettingsRec<Byte, Void> byteArr( 144 final byte defaultValue, 145 final int FLAGS, 146 final ToByteFunction<String> optionalUserParser 147 ) 148 { 149 return new SETTINGS_REC_BUILDER<Byte, Void>( 150 defaultValue, 151 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 152 (optionalUserParser == null) ? null : optionalUserParser::applyAsByte, 153 BASIC_TYPES.PRIMITIVE_BYTE() 154 ) 155 .updateableConsumer(true); 156 } 157 158 /** 159 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=long DATA-DEFVAL="-1"> 160 * <EMBED CLASS='external-html' DATA-TYPE=Long DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 161 */ 162 @IntoHTMLTable( 163 background=BlueDither, 164 title="Create a SettingsRec Instance for a Primitive Long-Integer Consumer" 165 ) 166 @LinkJavaSource(handle="BASIC_TYPES", name="LONG") 167 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 168 public static SettingsRec<Long, Void> longArr( 169 final long defaultValue, 170 final int FLAGS, 171 final ToLongFunction<String> optionalUserParser 172 ) 173 { 174 return new SETTINGS_REC_BUILDER<Long, Void>( 175 defaultValue, 176 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 177 (optionalUserParser == null) ? null : optionalUserParser::applyAsLong, 178 BASIC_TYPES.PRIMITIVE_LONG() 179 ) 180 .updateableConsumer(true); 181 } 182 183 /** 184 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=double DATA-DEFVAL="-1.0"> 185 * <EMBED CLASS='external-html' DATA-TYPE=Double DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 186 */ 187 @IntoHTMLTable( 188 background=GreenDither, 189 title="Create a SettingsRec Instance for a Primitive-Double Consumer" 190 ) 191 @LinkJavaSource(handle="BASIC_TYPES", name="DOUBLE") 192 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 193 public static SettingsRec<Double, Void> doubleArr( 194 final double defaultValue, 195 final int FLAGS, 196 final ToDoubleFunction<String> optionalUserParser 197 ) 198 { 199 return new SETTINGS_REC_BUILDER<Double, Void>( 200 defaultValue, 201 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 202 (optionalUserParser == null) ? null : optionalUserParser::applyAsDouble, 203 BASIC_TYPES.PRIMITIVE_DOUBLE() 204 ) 205 .updateableConsumer(true); 206 } 207 208 /** 209 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=float DATA-DEFVAL="-1.0f"> 210 * <EMBED CLASS='external-html' DATA-TYPE=Float DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 211 */ 212 @IntoHTMLTable( 213 background=BlueDither, 214 title="Create a SettingsRec Instance for a Primitive-Float Consumer" 215 ) 216 @LinkJavaSource(handle="BASIC_TYPES", name="FLOAT") 217 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 218 public static SettingsRec<Float, Void> floatArr( 219 final float defaultValue, 220 final int FLAGS, 221 final ToFloatFunction<String> optionalUserParser 222 ) 223 { 224 return new SETTINGS_REC_BUILDER<Float, Void>( 225 defaultValue, 226 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 227 (optionalUserParser == null) ? null : optionalUserParser::applyAsFloat, 228 BASIC_TYPES.PRIMITIVE_FLOAT() 229 ) 230 .updateableConsumer(true); 231 } 232 233 /** 234 * <EMBED CLASS=defs DATA-METH_NAME=boolean DATA-PRIM_TYPE=boolean DATA-DEFVAL=false> 235 * <EMBED CLASS='external-html' DATA-TYPE=Boolean DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 236 */ 237 @IntoHTMLTable( 238 background=GreenDither, 239 title="Create a SettingsRec Instance for a Primitive-Boolean Consumer" 240 ) 241 @LinkJavaSource(handle="BASIC_TYPES", name="BOOLEAN") 242 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 243 public static SettingsRec<Boolean, Void> booleanArr( 244 final boolean defaultValue, 245 final int FLAGS, 246 final Predicate<String> optionalUserParser 247 ) 248 { 249 return new SETTINGS_REC_BUILDER<Boolean, Void>( 250 defaultValue, 251 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 252 (optionalUserParser == null) ? null : optionalUserParser::test, 253 BASIC_TYPES.PRIMITIVE_BOOLEAN() 254 ) 255 .updateableConsumer(true); 256 } 257 258 259 260 261 // ******************************************************************************************** 262 // ******************************************************************************************** 263 // IntInt (w/ Array-Indices) Primitive-Consumer Variant 264 // ******************************************************************************************** 265 // ******************************************************************************************** 266 267 268 269 270 /** 271 * <EMBED CLASS=defs DATA-A_AN=An DATA-METH_NAME=numeric DATA-PRIM_TYPE=int DATA-DEFVAL="-1"> 272 * <EMBED CLASS='external-html' DATA-TYPE=Integer DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 273 */ 274 @IntoHTMLTable( 275 background=BlueDither, 276 title="Create a SettingsRec Instance for a Consumer of Primitive-Integers, " + 277 "w/ Array-Indices" 278 ) 279 @LinkJavaSource(handle="BASIC_TYPES", name="INTEGER") 280 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 281 public static SettingsRec<Integer, Void> intArr2( 282 final int defaultValue, 283 final int FLAGS, 284 final ToIntFunction<String> optionalUserParser 285 ) 286 { 287 return new SETTINGS_REC_BUILDER<Integer, Void>( 288 defaultValue, 289 FLAGS, 290 (optionalUserParser == null) ? null : optionalUserParser::applyAsInt, 291 BASIC_TYPES.PRIMITIVE_INTEGER() 292 ) 293 .updateableConsumer(false); 294 } 295 296 /** 297 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=short DATA-DEFVAL="-1"> 298 * <EMBED CLASS='external-html' DATA-TYPE=Short DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 299 */ 300 @IntoHTMLTable( 301 background=GreenDither, 302 title="Create a SettingsRec Instance for a Consumer of Primitive Short-Integers, " + 303 "w/ Array-Indices" 304 ) 305 @LinkJavaSource(handle="BASIC_TYPES", name="SHORT") 306 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 307 public static SettingsRec<Short, Void> shortArr2( 308 final short defaultValue, 309 final int FLAGS, 310 final ToShortFunction<String> optionalUserParser 311 ) 312 { 313 return new SETTINGS_REC_BUILDER<Short, Void>( 314 defaultValue, 315 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 316 (optionalUserParser == null) ? null : optionalUserParser::applyAsShort, 317 BASIC_TYPES.PRIMITIVE_SHORT() 318 ) 319 .updateableConsumer(false); 320 } 321 322 /** 323 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=byte DATA-DEFVAL="-1"> 324 * <EMBED CLASS='external-html' DATA-TYPE=Byte DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 325 */ 326 @IntoHTMLTable( 327 background=BlueDither, 328 title="Create a SettingsRec Instance for a Consumer of Primitive-Bytes, " + 329 "w/ Array-Indices" 330 ) 331 @LinkJavaSource(handle="BASIC_TYPES", name="BYTE") 332 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 333 public static SettingsRec<Byte, Void> byteArr2( 334 final byte defaultValue, 335 final int FLAGS, 336 final ToByteFunction<String> optionalUserParser 337 ) 338 { 339 return new SETTINGS_REC_BUILDER<Byte, Void>( 340 defaultValue, 341 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 342 (optionalUserParser == null) ? null : optionalUserParser::applyAsByte, 343 BASIC_TYPES.PRIMITIVE_BYTE() 344 ) 345 .updateableConsumer(false); 346 } 347 348 /** 349 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=long DATA-DEFVAL="-1"> 350 * <EMBED CLASS='external-html' DATA-TYPE=Long DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 351 */ 352 @IntoHTMLTable( 353 background=GreenDither, 354 title="Create a SettingsRec Instance for a Consumer of Primitive Long-Integers, " + 355 "w/ Array-Indices" 356 ) 357 @LinkJavaSource(handle="BASIC_TYPES", name="LONG") 358 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 359 public static SettingsRec<Long, Void> longArr2( 360 final long defaultValue, 361 final int FLAGS, 362 final ToLongFunction<String> optionalUserParser 363 ) 364 { 365 return new SETTINGS_REC_BUILDER<Long, Void>( 366 defaultValue, 367 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 368 (optionalUserParser == null) ? null : optionalUserParser::applyAsLong, 369 BASIC_TYPES.PRIMITIVE_LONG() 370 ) 371 .updateableConsumer(false); 372 } 373 374 /** 375 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=double DATA-DEFVAL="-1.0"> 376 * <EMBED CLASS='external-html' DATA-TYPE=Double DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 377 */ 378 @IntoHTMLTable( 379 background=BlueDither, 380 title="Create a SettingsRec Instance for a Consumer of Primitive-Doubles, " + 381 "w/ Array-Indices" 382 ) 383 @LinkJavaSource(handle="BASIC_TYPES", name="DOUBLE") 384 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 385 public static SettingsRec<Double, Void> doubleArr2( 386 final double defaultValue, 387 final int FLAGS, 388 final ToDoubleFunction<String> optionalUserParser 389 ) 390 { 391 return new SETTINGS_REC_BUILDER<Double, Void>( 392 defaultValue, 393 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 394 (optionalUserParser == null) ? null : optionalUserParser::applyAsDouble, 395 BASIC_TYPES.PRIMITIVE_DOUBLE() 396 ) 397 .updateableConsumer(false); 398 } 399 400 /** 401 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=float DATA-DEFVAL="-1.0f"> 402 * <EMBED CLASS='external-html' DATA-TYPE=Float DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 403 */ 404 @IntoHTMLTable( 405 background=GreenDither, 406 title="Create a SettingsRec Instance for a Consumer of Primitive-Floats, " + 407 "w/ Array-Indices" 408 ) 409 @LinkJavaSource(handle="BASIC_TYPES", name="FLOAT") 410 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 411 public static SettingsRec<Float, Void> floatArr2( 412 final float defaultValue, 413 final int FLAGS, 414 final ToFloatFunction<String> optionalUserParser 415 ) 416 { 417 return new SETTINGS_REC_BUILDER<Float, Void>( 418 defaultValue, 419 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 420 (optionalUserParser == null) ? null : optionalUserParser::applyAsFloat, 421 BASIC_TYPES.PRIMITIVE_FLOAT() 422 ) 423 .updateableConsumer(false); 424 } 425 426 /** 427 * <EMBED CLASS=defs DATA-METH_NAME=boolean DATA-PRIM_TYPE=boolean DATA-DEFVAL=false> 428 * <EMBED CLASS='external-html' DATA-TYPE=Boolean DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 429 */ 430 @IntoHTMLTable( 431 background=BlueDither, 432 title="Create a SettingsRec Instance for a Consumer of Primitive-Booleans, " + 433 "w/ Array-Indices" 434 ) 435 @LinkJavaSource(handle="BASIC_TYPES", name="BOOLEAN") 436 @LinkJavaSource(handle="SETTINGS_REC_BUILDER") 437 public static SettingsRec<Boolean, Void> booleanArr2( 438 final boolean defaultValue, 439 final int FLAGS, 440 final Predicate<String> optionalUserParser 441 ) 442 { 443 return new SETTINGS_REC_BUILDER<Boolean, Void>( 444 defaultValue, 445 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 446 (optionalUserParser == null) ? null : optionalUserParser::test, 447 BASIC_TYPES.PRIMITIVE_BOOLEAN() 448 ) 449 .updateableConsumer(false); 450 } 451 452 453}