MCPcopy Create free account
hub / github.com/PCGen/pcgen / parse

Method parse

code/src/java/plugin/lsttokens/gamemode/DieSizesToken.java:16–61  ·  view source on GitHub ↗
(GameMode gameMode, String value, URI source)

Source from the content-addressed store, hash-verified

14{
15
16 @Override
17 public boolean parse(GameMode gameMode, String value, URI source)
18 {
19 StringTokenizer aTok = new StringTokenizer(value, Constants.COMMA);
20 List<Integer> dieSizes = new ArrayList<>();
21 while (aTok.hasMoreTokens())
22 {
23 // trim in case there is training\leading whitespace after the comma split
24 String aString = aTok.nextToken().trim();
25
26 try
27 {
28 if (aString.contains("MIN="))
29 {
30 int die = Integer.parseInt(aString.substring(4));
31 gameMode.setMinDieSize(die);
32 dieSizes.add(die);
33 }
34 else if (aString.contains("MAX="))
35 {
36 int die = Integer.parseInt(aString.substring(4));
37 gameMode.setMaxDieSize(die);
38 dieSizes.add(die);
39 }
40 else
41 {
42 int die = Integer.parseInt(aString);
43 dieSizes.add(die);
44 }
45 }
46 catch (NumberFormatException e)
47 {
48 Logging.errorPrint(
49 "Invalid integer value for DIESIZES: " + aString + ". Original value: DIESIZES:" + value);
50 }
51
52 }
53 if (dieSizes.isEmpty())
54 {
55 Logging.errorPrint("Invalid DIESIZES contained no values:" + value);
56 return false;
57 }
58
59 gameMode.setDieSizes(dieSizes.stream().mapToInt(i -> i).toArray());
60 return true;
61 }
62
63 @Override
64 public String getTokenName()

Callers

nothing calls this directly

Calls 13

errorPrintMethod · 0.95
hasMoreTokensMethod · 0.80
trimMethod · 0.80
nextTokenMethod · 0.80
parseIntMethod · 0.80
setMinDieSizeMethod · 0.80
setMaxDieSizeMethod · 0.80
setDieSizesMethod · 0.80
streamMethod · 0.80
containsMethod · 0.65
addMethod · 0.65
isEmptyMethod · 0.65

Tested by

no test coverage detected