001package Torello.Java.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.StaticFunctional; 042import Torello.JavaDoc.LinkJavaSource; 043import Torello.JavaDoc.JDHeaderBackgroundImg; 044 045import Torello.JavaDoc.IntoHTMLTable; 046import static Torello.JavaDoc.IntoHTMLTable.Background.GreenDither; 047import static Torello.JavaDoc.IntoHTMLTable.Background.BlueDither; 048 049import Torello.Java.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.Java.JSON.JFlag.NOT_ALLOWED_RET_NULL_MASKS; 062import static Torello.Java.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=GLASS_FISH_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", name="createForConsumers", paramCount=4) 093 public static SettingsRec<Integer, Void> intArr( 094 final int defaultValue, 095 final int FLAGS, 096 final ToIntFunction<String> optionalUserParser 097 ) 098 { 099 return SETTINGS_REC_BUILDER.createForConsumers( 100 defaultValue, 101 FLAGS, 102 (optionalUserParser == null) ? null : optionalUserParser::applyAsInt, 103 BASIC_TYPES.PRIMITIVE_INTEGER() 104 ); 105 } 106 107 /** 108 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=short DATA-DEFVAL="-1"> 109 * <EMBED CLASS='external-html' DATA-TYPE=Short DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 110 */ 111 @IntoHTMLTable( 112 background=BlueDither, 113 title="Create a SettingsRec Instance for a Primitive Short-Integer Consumer" 114 ) 115 @LinkJavaSource(handle="BASIC_TYPES", name="SHORT") 116 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=4) 117 public static SettingsRec<Short, Void> shortArr( 118 final short defaultValue, 119 final int FLAGS, 120 final ToShortFunction<String> optionalUserParser 121 ) 122 { 123 return SETTINGS_REC_BUILDER.createForConsumers( 124 defaultValue, 125 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 126 (optionalUserParser == null) ? null : optionalUserParser::applyAsShort, 127 BASIC_TYPES.PRIMITIVE_SHORT() 128 ); 129 } 130 131 /** 132 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=byte DATA-DEFVAL="-1"> 133 * <EMBED CLASS='external-html' DATA-TYPE=Byte DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 134 */ 135 @IntoHTMLTable( 136 background=GreenDither, 137 title="Create a SettingsRec Instance for a Primitive-Byte Consumer" 138 ) 139 @LinkJavaSource(handle="BASIC_TYPES", name="BYTE") 140 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=4) 141 public static SettingsRec<Byte, Void> byteArr( 142 final byte defaultValue, 143 final int FLAGS, 144 final ToByteFunction<String> optionalUserParser 145 ) 146 { 147 return SETTINGS_REC_BUILDER.createForConsumers( 148 defaultValue, 149 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 150 (optionalUserParser == null) ? null : optionalUserParser::applyAsByte, 151 BASIC_TYPES.PRIMITIVE_BYTE() 152 ); 153 } 154 155 /** 156 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=long DATA-DEFVAL="-1"> 157 * <EMBED CLASS='external-html' DATA-TYPE=Long DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 158 */ 159 @IntoHTMLTable( 160 background=BlueDither, 161 title="Create a SettingsRec Instance for a Primitive Long-Integer Consumer" 162 ) 163 @LinkJavaSource(handle="BASIC_TYPES", name="LONG") 164 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=4) 165 public static SettingsRec<Long, Void> longArr( 166 final long defaultValue, 167 final int FLAGS, 168 final ToLongFunction<String> optionalUserParser 169 ) 170 { 171 return SETTINGS_REC_BUILDER.createForConsumers( 172 defaultValue, 173 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 174 (optionalUserParser == null) ? null : optionalUserParser::applyAsLong, 175 BASIC_TYPES.PRIMITIVE_LONG() 176 ); 177 } 178 179 /** 180 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=double DATA-DEFVAL="-1.0"> 181 * <EMBED CLASS='external-html' DATA-TYPE=Double DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 182 */ 183 @IntoHTMLTable( 184 background=GreenDither, 185 title="Create a SettingsRec Instance for a Primitive-Double Consumer" 186 ) 187 @LinkJavaSource(handle="BASIC_TYPES", name="DOUBLE") 188 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=4) 189 public static SettingsRec<Double, Void> doubleArr( 190 final double defaultValue, 191 final int FLAGS, 192 final ToDoubleFunction<String> optionalUserParser 193 ) 194 { 195 return SETTINGS_REC_BUILDER.createForConsumers( 196 defaultValue, 197 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 198 (optionalUserParser == null) ? null : optionalUserParser::applyAsDouble, 199 BASIC_TYPES.PRIMITIVE_DOUBLE() 200 ); 201 } 202 203 /** 204 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=float DATA-DEFVAL="-1.0f"> 205 * <EMBED CLASS='external-html' DATA-TYPE=Float DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 206 */ 207 @IntoHTMLTable( 208 background=BlueDither, 209 title="Create a SettingsRec Instance for a Primitive-Float Consumer" 210 ) 211 @LinkJavaSource(handle="BASIC_TYPES", name="FLOAT") 212 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=4) 213 public static SettingsRec<Float, Void> floatArr( 214 final float defaultValue, 215 final int FLAGS, 216 final ToFloatFunction<String> optionalUserParser 217 ) 218 { 219 return SETTINGS_REC_BUILDER.createForConsumers( 220 defaultValue, 221 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 222 (optionalUserParser == null) ? null : optionalUserParser::applyAsFloat, 223 BASIC_TYPES.PRIMITIVE_FLOAT() 224 ); 225 } 226 227 /** 228 * <EMBED CLASS=defs DATA-METH_NAME=boolean DATA-PRIM_TYPE=boolean DATA-DEFVAL=false> 229 * <EMBED CLASS='external-html' DATA-TYPE=Boolean DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC1> 230 */ 231 @IntoHTMLTable( 232 background=GreenDither, 233 title="Create a SettingsRec Instance for a Primitive-Boolean Consumer" 234 ) 235 @LinkJavaSource(handle="BASIC_TYPES", name="BOOLEAN") 236 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForConsumers", paramCount=4) 237 public static SettingsRec<Boolean, Void> booleanArr( 238 final boolean defaultValue, 239 final int FLAGS, 240 final Predicate<String> optionalUserParser 241 ) 242 { 243 return SETTINGS_REC_BUILDER.createForConsumers( 244 defaultValue, 245 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 246 (optionalUserParser == null) ? null : optionalUserParser::test, 247 BASIC_TYPES.PRIMITIVE_BOOLEAN() 248 ); 249 } 250 251 252 253 254 // ******************************************************************************************** 255 // ******************************************************************************************** 256 // IntInt (w/ Array-Indices) Primitive-Consumer Variant 257 // ******************************************************************************************** 258 // ******************************************************************************************** 259 260 261 262 263 /** 264 * <EMBED CLASS=defs DATA-A_AN=An DATA-METH_NAME=numeric DATA-PRIM_TYPE=int DATA-DEFVAL="-1"> 265 * <EMBED CLASS='external-html' DATA-TYPE=Integer DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 266 */ 267 @IntoHTMLTable( 268 background=BlueDither, 269 title="Create a SettingsRec Instance for a Consumer of Primitive-Integers, " + 270 "w/ Array-Indices" 271 ) 272 @LinkJavaSource(handle="BASIC_TYPES", name="INTEGER") 273 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=4) 274 public static SettingsRec<Integer, Void> intArr2( 275 final int defaultValue, 276 final int FLAGS, 277 final ToIntFunction<String> optionalUserParser 278 ) 279 { 280 return SETTINGS_REC_BUILDER.createForIIConsumers( 281 defaultValue, 282 FLAGS, 283 (optionalUserParser == null) ? null : optionalUserParser::applyAsInt, 284 BASIC_TYPES.PRIMITIVE_INTEGER() 285 ); 286 } 287 288 /** 289 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=short DATA-DEFVAL="-1"> 290 * <EMBED CLASS='external-html' DATA-TYPE=Short DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 291 */ 292 @IntoHTMLTable( 293 background=GreenDither, 294 title="Create a SettingsRec Instance for a Consumer of Primitive Short-Integers, " + 295 "w/ Array-Indices" 296 ) 297 @LinkJavaSource(handle="BASIC_TYPES", name="SHORT") 298 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=4) 299 public static SettingsRec<Short, Void> shortArr2( 300 final short defaultValue, 301 final int FLAGS, 302 final ToShortFunction<String> optionalUserParser 303 ) 304 { 305 return SETTINGS_REC_BUILDER.createForIIConsumers( 306 defaultValue, 307 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 308 (optionalUserParser == null) ? null : optionalUserParser::applyAsShort, 309 BASIC_TYPES.PRIMITIVE_SHORT() 310 ); 311 } 312 313 /** 314 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=byte DATA-DEFVAL="-1"> 315 * <EMBED CLASS='external-html' DATA-TYPE=Byte DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 316 */ 317 @IntoHTMLTable( 318 background=BlueDither, 319 title="Create a SettingsRec Instance for a Consumer of Primitive-Bytes, " + 320 "w/ Array-Indices" 321 ) 322 @LinkJavaSource(handle="BASIC_TYPES", name="BYTE") 323 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=4) 324 public static SettingsRec<Byte, Void> byteArr2( 325 final byte defaultValue, 326 final int FLAGS, 327 final ToByteFunction<String> optionalUserParser 328 ) 329 { 330 return SETTINGS_REC_BUILDER.createForIIConsumers( 331 defaultValue, 332 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 333 (optionalUserParser == null) ? null : optionalUserParser::applyAsByte, 334 BASIC_TYPES.PRIMITIVE_BYTE() 335 ); 336 } 337 338 /** 339 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=long DATA-DEFVAL="-1"> 340 * <EMBED CLASS='external-html' DATA-TYPE=Long DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 341 */ 342 @IntoHTMLTable( 343 background=GreenDither, 344 title="Create a SettingsRec Instance for a Consumer of Primitive Long-Integers, " + 345 "w/ Array-Indices" 346 ) 347 @LinkJavaSource(handle="BASIC_TYPES", name="LONG") 348 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=4) 349 public static SettingsRec<Long, Void> longArr2( 350 final long defaultValue, 351 final int FLAGS, 352 final ToLongFunction<String> optionalUserParser 353 ) 354 { 355 return SETTINGS_REC_BUILDER.createForIIConsumers( 356 defaultValue, 357 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 358 (optionalUserParser == null) ? null : optionalUserParser::applyAsLong, 359 BASIC_TYPES.PRIMITIVE_LONG() 360 ); 361 } 362 363 /** 364 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=double DATA-DEFVAL="-1.0"> 365 * <EMBED CLASS='external-html' DATA-TYPE=Double DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 366 */ 367 @IntoHTMLTable( 368 background=BlueDither, 369 title="Create a SettingsRec Instance for a Consumer of Primitive-Doubles, " + 370 "w/ Array-Indices" 371 ) 372 @LinkJavaSource(handle="BASIC_TYPES", name="DOUBLE") 373 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=4) 374 public static SettingsRec<Double, Void> doubleArr2( 375 final double defaultValue, 376 final int FLAGS, 377 final ToDoubleFunction<String> optionalUserParser 378 ) 379 { 380 return SETTINGS_REC_BUILDER.createForIIConsumers( 381 defaultValue, 382 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 383 (optionalUserParser == null) ? null : optionalUserParser::applyAsDouble, 384 BASIC_TYPES.PRIMITIVE_DOUBLE() 385 ); 386 } 387 388 /** 389 * <EMBED CLASS=defs DATA-METH_NAME=numeric DATA-PRIM_TYPE=float DATA-DEFVAL="-1.0f"> 390 * <EMBED CLASS='external-html' DATA-TYPE=Float DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 391 */ 392 @IntoHTMLTable( 393 background=GreenDither, 394 title="Create a SettingsRec Instance for a Consumer of Primitive-Floats, " + 395 "w/ Array-Indices" 396 ) 397 @LinkJavaSource(handle="BASIC_TYPES", name="FLOAT") 398 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=4) 399 public static SettingsRec<Float, Void> floatArr2( 400 final float defaultValue, 401 final int FLAGS, 402 final ToFloatFunction<String> optionalUserParser 403 ) 404 { 405 return SETTINGS_REC_BUILDER.createForIIConsumers( 406 defaultValue, 407 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 408 (optionalUserParser == null) ? null : optionalUserParser::applyAsFloat, 409 BASIC_TYPES.PRIMITIVE_FLOAT() 410 ); 411 } 412 413 /** 414 * <EMBED CLASS=defs DATA-METH_NAME=boolean DATA-PRIM_TYPE=boolean DATA-DEFVAL=false> 415 * <EMBED CLASS='external-html' DATA-TYPE=Boolean DATA-FILE-ID=RJ_ARR_PRIM_CONS_REC2> 416 */ 417 @IntoHTMLTable( 418 background=BlueDither, 419 title="Create a SettingsRec Instance for a Consumer of Primitive-Booleans, " + 420 "w/ Array-Indices" 421 ) 422 @LinkJavaSource(handle="BASIC_TYPES", name="BOOLEAN") 423 @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="createForIIConsumers", paramCount=4) 424 public static SettingsRec<Boolean, Void> booleanArr2( 425 final boolean defaultValue, 426 final int FLAGS, 427 final Predicate<String> optionalUserParser 428 ) 429 { 430 return SETTINGS_REC_BUILDER.createForIIConsumers( 431 defaultValue, 432 FLAGS & NOT_ALLOWED_RET_NULL_MASKS, 433 (optionalUserParser == null) ? null : optionalUserParser::test, 434 BASIC_TYPES.PRIMITIVE_BOOLEAN() 435 ); 436 } 437 438 439}