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