1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 | package Torello.Browser.JsonAST;
import Torello.JSON.ReadJSON;
import Torello.Java.ReadOnly.ROArrayListBuilder;
import Torello.Java.ReadOnly.ReadOnlyList;
import javax.json.JsonArray;
import javax.json.JsonObject;
/**
* Invokes the {@link PPR} constructor on every instance of a {@link JsonArray}. The array to
* parse is named by the input {@link WhichPPR} parameter.
*/
@Torello.JavaDoc.Annotations.StaticFunctional
@Torello.JavaDoc.Annotations.JDHeaderBackgroundImg(EmbedTagFileID="CONSTRUCTOR_JDHBI")
public class Helper$GetPPRLists
{
private Helper$GetPPRLists() { }
static ReadOnlyList<PPR> get(
final TCE THIS,
final JsonObject jo,
final WhichPPR which
)
{
// getJsonArray(jo, propertyName, boolean isOptional, boolean throwOnNull)
final JsonArray arr = ReadJSON.getJsonArray(jo, which.propName, true, true);
if (arr == null) return null;
if (arr.size() == 0) THIS.verifyThrow(
"This TCE's JSON Definition had an 'array' property named [" + which.propName + "], but " +
"unfortunately, that array had zero elements."
);
final ROArrayListBuilder<PPR> roalb = new ROArrayListBuilder<>(arr.size());
for (int i=0; i < arr.size(); i++)
roalb.add(
new PPR(
THIS,
arr.getJsonObject(i),
which,
i
));
// roalb.sort((PPR a, PPR b) -> a.name.compareTo(b.name));
return roalb.build();
}
}
|