001package Torello.JSON;
002
003import Torello.JavaDoc.Annotations.LinkJavaSource;
004import Torello.JavaDoc.Annotations.StaticFunctional;
005import Torello.JavaDoc.Annotations.JDHeaderBackgroundImg;
006
007import Torello.JavaDoc.Annotations.IntoHTMLTable;
008import static Torello.JavaDoc.Annotations.IntoHTMLTable.Background.GreenDither;
009import static Torello.JavaDoc.Annotations.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.JSON.JFlag;
023
024import static Torello.JSON.BASIC_TYPES.BOXED;
025
026import static javax.json.JsonValue.TRUE;
027import static javax.json.JsonValue.FALSE;
028
029/**
030 * Generate a Pre-Configured {@link SettingsRec} instance which can handle Java Boxed-Primitives.
031 * 
032 * <EMBED CLASS=globalDefs DATA-A_AN=A>
033 * <EMBED CLASS='external-html' DATA-FILE-ID=ALL_CLASSES_NOTE>
034 * <EMBED CLASS='external-html' DATA-FILE-ID=RJA_BOXED_CONS_REC>
035 * <EMBED CLASS='external-html' DATA-FILE-ID=LOOP_OPTIMIZED_NOTE>
036 * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_PT_BOXED_CONS_REC>
037 * 
038 * @see Json
039 * @see JsonArray
040 */
041@StaticFunctional
042@JDHeaderBackgroundImg(EmbedTagFileID="RJA_JDHBI_BOXED_CONS_REC")
043public class RJArrBoxedConsumerRec
044{
045    private RJArrBoxedConsumerRec() { }
046
047    /**
048     * <EMBED CLASS=defs DATA-A_AN=An DATA-DEFVAL=0 DATA-TYPE=Integer DATA-TYPE_LC=int
049     *      DATA-METH_NAME=numeric>
050     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC1>
051     */
052    @IntoHTMLTable(
053        background=GreenDither,
054        title="Create a SettingsRec Instance for a Boxed-Integer Consumer"
055    )
056    @LinkJavaSource(handle="BASIC_TYPES", name="INTEGER")
057    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
058    public static SettingsRec<Integer, Void> intRec(
059            final int                       defaultValue,
060            final int                       FLAGS,
061            final Function<String, Integer> optionalUserParser
062        )
063    {
064        return new SETTINGS_REC_BUILDER<Integer, Void>
065            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_INTEGER())
066            .updateableConsumer(true);
067    }
068
069    /**
070     * <EMBED CLASS=defs DATA-DEFVAL=0 DATA-TYPE=Short DATA-TYPE_LC=short DATA-METH_NAME=numeric>
071     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC1>
072     */
073    @IntoHTMLTable(
074        background=BlueDither,
075        title="Create a SettingsRec Instance for a Boxed Short-Integer Consumer"
076    )
077    @LinkJavaSource(handle="BASIC_TYPES", name="SHORT")
078    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
079    public static SettingsRec<Short, Void> shortRec(
080            final short                     defaultValue,
081            final int                       FLAGS,
082            final Function<String, Short>   optionalUserParser
083        )
084    {
085        return new SETTINGS_REC_BUILDER<Short, Void>
086            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_SHORT())
087            .updateableConsumer(true);
088    }
089
090    /**
091     * <EMBED CLASS=defs DATA-DEFVAL=0 DATA-TYPE=Byte DATA-TYPE_LC=byte DATA-METH_NAME=numeric>
092     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC1>
093     */
094    @IntoHTMLTable(
095        background=GreenDither,
096        title="Create a SettingsRec Instance for a Boxed-Byte Consumer"
097    )
098    @LinkJavaSource(handle="BASIC_TYPES", name="BYTE")
099    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
100    public static SettingsRec<Byte, Void> byteRec(
101            final byte                      defaultValue,
102            final int                       FLAGS,
103            final Function<String, Byte>    optionalUserParser
104        )
105    {
106        return new SETTINGS_REC_BUILDER<Byte, Void>
107            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_BYTE())
108            .updateableConsumer(true);
109    }
110
111    /**
112     * <EMBED CLASS=defs DATA-DEFVAL=0 DATA-TYPE=Long DATA-TYPE_LC=long DATA-METH_NAME=numeric>
113     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC1>
114     */
115    @IntoHTMLTable(
116        background=BlueDither,
117        title="Create a SettingsRec Instance for a Boxed Long-Integer Consumer"
118    )
119    @LinkJavaSource(handle="BASIC_TYPES", name="LONG")
120    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
121    public static SettingsRec<Long, Void> longRec(
122            final long                      defaultValue,
123            final int                       FLAGS,
124            final Function<String, Long>    optionalUserParser
125        )
126    {
127        return new SETTINGS_REC_BUILDER<Long, Void>
128            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_LONG())
129            .updateableConsumer(true);
130    }
131
132    /**
133     * <EMBED CLASS=defs DATA-DEFVAL="0.0" DATA-TYPE=Double DATA-TYPE_LC=double
134     *      DATA-METH_NAME=numeric>
135     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC1>
136     */
137    @IntoHTMLTable(
138        background=GreenDither,
139        title="Create a SettingsRec Instance for a Boxed-Double Consumer"
140    )
141    @LinkJavaSource(handle="BASIC_TYPES", name="DOUBLE")
142    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
143    public static SettingsRec<Double, Void> doubleRec(
144            final double                    defaultValue,
145            final int                       FLAGS,
146            final Function<String, Double>  optionalUserParser
147        )
148    {
149        return new SETTINGS_REC_BUILDER<Double, Void>
150            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_DOUBLE())
151            .updateableConsumer(true);
152    }
153
154    /**
155     * <EMBED CLASS=defs DATA-DEFVAL="0.0f" DATA-TYPE=Float DATA-TYPE_LC=float
156     *      DATA-METH_NAME=numeric>
157     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC1>
158     */
159    @IntoHTMLTable(
160        background=BlueDither,
161        title="Create a SettingsRec Instance for a Boxed-Float Consumer"
162    )
163    @LinkJavaSource(handle="BASIC_TYPES", name="FLOAT")
164    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
165    public static SettingsRec<Float, Void> floatRec(
166            final float                     defaultValue,
167            final int                       FLAGS,
168            final Function<String, Float>   optionalUserParser
169        )
170    {
171        return new SETTINGS_REC_BUILDER<Float, Void>
172            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_FLOAT())
173            .updateableConsumer(true);
174    }
175
176    /**
177     * <EMBED CLASS=defs  DATA-DEFVAL=false DATA-TYPE=Boolean DATA-TYPE_LC=boolean
178     *      DATA-METH_NAME=boolean>
179     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC1>
180     */
181    @IntoHTMLTable(
182        background=GreenDither,
183        title="Create a SettingsRec Instance for a Boxed-Boolean Consumer"
184    )
185    @LinkJavaSource(handle="BASIC_TYPES", name="BOOLEAN")
186    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
187    public static SettingsRec<Boolean, Void> booleanRec(
188            final boolean                   defaultValue,
189            final int                       FLAGS,
190            final Function<String, Boolean> optionalUserParser
191        )
192    {
193        return new SETTINGS_REC_BUILDER<Boolean, Void>
194            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_BOOLEAN())
195            .updateableConsumer(true);
196    }
197
198    /**
199     * <EMBED CLASS=defs DATA-DEFVAL=0 DATA-TYPE=Number DATA-TYPE_LC=int DATA-METH_NAME=numeric>
200     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC1>
201     */
202    @IntoHTMLTable(
203        background=BlueDither,
204        title="Create a SettingsRec Instance for a (Best Filt) Boxed-Number Consumer"
205    )
206    @LinkJavaSource(handle="BASIC_TYPES", name="NUMBER_REC")
207    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
208    public static SettingsRec<Number, Void> numberRec(
209            final Number                    defaultValue,
210            final int                       FLAGS,
211            final Function<String, Number>  optionalUserParser
212        )
213    {
214        return new SETTINGS_REC_BUILDER<Number, Void>
215            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.NUMBER_REC())
216            .updateableConsumer(true);
217    }
218
219
220
221
222    // ********************************************************************************************
223    // ********************************************************************************************
224    // IntIntTConsumer Variant
225    // ********************************************************************************************
226    // ********************************************************************************************
227
228
229
230
231    /**
232     * <EMBED CLASS=defs DATA-A_AN=An DATA-DEFVAL=1 DATA-TYPE=Integer DATA-TYPE_LC=int
233     *      DATA-METH_NAME=numeric>
234     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC2>
235     */
236    @IntoHTMLTable(
237        background=GreenDither,
238        title="Create a SettingsRec Instance for a Consumer of Boxed-Integers, w/ Array-Indices"
239    )
240    @LinkJavaSource(handle="BASIC_TYPES", name="INTEGER")
241    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
242    public static SettingsRec<Integer, Void> intRec2(
243            final int                       defaultValue,
244            final int                       FLAGS,
245            final Function<String, Integer> optionalUserParser
246        )
247    {
248        return new SETTINGS_REC_BUILDER<Integer, Void>
249            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_INTEGER())
250            .updateableConsumer(false);
251    }
252
253    /**
254     * <EMBED CLASS=defs DATA-DEFVAL=1 DATA-TYPE=Short DATA-TYPE_LC=short DATA-METH_NAME=numeric>
255     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC2>
256     */
257    @IntoHTMLTable(
258        background=BlueDither,
259        title="Create a SettingsRec Instance for a Consumer of Boxed Short-Integers, " +
260            "w/ Array-Indices"
261    )
262    @LinkJavaSource(handle="BASIC_TYPES", name="SHORT")
263    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
264    public static SettingsRec<Short, Void> shortRec2(
265            final short                     defaultValue,
266            final int                       FLAGS,
267            final Function<String, Short>   optionalUserParser
268        )
269    {
270        return new SETTINGS_REC_BUILDER<Short, Void>
271            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_SHORT())
272            .updateableConsumer(false);
273    }
274
275    /**
276     * <EMBED CLASS=defs DATA-DEFVAL=1 DATA-TYPE=Byte DATA-TYPE_LC=byte DATA-METH_NAME=numeric>
277     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC2>
278     */
279    @IntoHTMLTable(
280        background=GreenDither,
281        title="Create a SettingsRec Instance for a Consumer of Boxed-Bytes, w/ Array-Indices"
282    )
283    @LinkJavaSource(handle="BASIC_TYPES", name="BYTE")
284    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
285    public static SettingsRec<Byte, Void> byteRec2(
286            final byte                      defaultValue,
287            final int                       FLAGS,
288            final Function<String, Byte>    optionalUserParser
289        )
290    {
291        return new SETTINGS_REC_BUILDER<Byte, Void>
292            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_BYTE())
293            .updateableConsumer(false);
294    }
295
296    /**
297     * <EMBED CLASS=defs DATA-DEFVAL=1 DATA-TYPE=Long DATA-TYPE_LC=long DATA-METH_NAME=numeric>
298     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC2>
299     */
300    @IntoHTMLTable(
301        background=BlueDither,
302        title="Create a SettingsRec Instance for a Consumer of Boxed Long-Integers, " +
303            "w/ Array-Indices"
304    )
305    @LinkJavaSource(handle="BASIC_TYPES", name="LONG")
306    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
307    public static SettingsRec<Long, Void> longRec2(
308            final long                      defaultValue,
309            final int                       FLAGS,
310            final Function<String, Long>    optionalUserParser
311        )
312    {
313        return new SETTINGS_REC_BUILDER<Long, Void>
314            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_LONG())
315            .updateableConsumer(false);
316    }
317
318    /**
319     * <EMBED CLASS=defs DATA-DEFVAL="1.0" DATA-TYPE=Double DATA-TYPE_LC=double
320     *      DATA-METH_NAME=numeric>
321     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC2>
322     */
323    @IntoHTMLTable(
324        background=GreenDither,
325        title="Create a SettingsRec Instance for a Consumer of Boxed-Doubles, w/ Array-Indices"
326    )
327    @LinkJavaSource(handle="BASIC_TYPES", name="DOUBLE")
328    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
329    public static SettingsRec<Double, Void> doubleRec2(
330            final double                    defaultValue,
331            final int                       FLAGS,
332            final Function<String, Double>  optionalUserParser
333        )
334    {
335        return new SETTINGS_REC_BUILDER<Double, Void>
336            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_DOUBLE())
337            .updateableConsumer(false);
338    }
339
340    /**
341     * <EMBED CLASS=defs DATA-DEFVAL="1.0f" DATA-TYPE=Float DATA-TYPE_LC=float
342     *      DATA-METH_NAME=numeric>
343     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC2>
344     */
345    @IntoHTMLTable(
346        background=BlueDither,
347        title="Create a SettingsRec Instance for a Consumer of Boxed-Floats, w/ Array-Indices"
348    )
349    @LinkJavaSource(handle="BASIC_TYPES", name="FLOAT")
350    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
351    public static SettingsRec<Float, Void> floatRec2(
352            final float                     defaultValue,
353            final int                       FLAGS,
354            final Function<String, Float>   optionalUserParser
355        )
356    {
357        return new SETTINGS_REC_BUILDER<Float, Void>
358            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_FLOAT())
359            .updateableConsumer(false);
360    }
361
362    /**
363     * <EMBED CLASS=defs  DATA-DEFVAL=false DATA-TYPE=Boolean DATA-TYPE_LC=boolean
364     *      DATA-METH_NAME=boolean>
365     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC2>
366     */
367    @IntoHTMLTable(
368        background=GreenDither,
369        title="Create a SettingsRec Instance for a Consumer of Boxed-Booleans, w/ Array-Indices"
370    )
371    @LinkJavaSource(handle="BASIC_TYPES", name="BOOLEAN")
372    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
373    public static SettingsRec<Boolean, Void> booleanRec2(
374            final boolean                   defaultValue,
375            final int                       FLAGS,
376            final Function<String, Boolean> optionalUserParser
377        )
378    {
379        return new SETTINGS_REC_BUILDER<Boolean, Void>
380            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.BOXED_BOOLEAN())
381            .updateableConsumer(false);
382    }
383
384    /**
385     * <EMBED CLASS=defs DATA-DEFVAL=1 DATA-TYPE=Number DATA-TYPE_LC=number DATA-METH_NAME=numeric>
386     * <EMBED CLASS='external-html' DATA-FILE-ID=RJ_ARR_BOXED_CONS_REC2>
387     */
388    @IntoHTMLTable(
389        background=BlueDither,
390        title="Create a SettingsRec Instance for a Consumer of (Best-Fit) Boxed-Numbers, " +
391            "w/ Array-Indices"
392    )
393    @LinkJavaSource(handle="BASIC_TYPES", name="NUMBER_REC")
394    @LinkJavaSource(handle="SETTINGS_REC_BUILDER", name="updateableConsumer")
395    public static SettingsRec<Number, Void> numberRec2(
396            final Number                    defaultValue,
397            final int                       FLAGS,
398            final Function<String, Number>  optionalUserParser
399        )
400    {
401        return new SETTINGS_REC_BUILDER<Number, Void>
402            (defaultValue, FLAGS, optionalUserParser, BASIC_TYPES.NUMBER_REC())
403            .updateableConsumer(false);
404    }
405}