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

Method parseToken

code/src/java/plugin/lsttokens/UdamLst.java:52–112  ·  view source on GitHub ↗
(LoadContext context, CDOMObject obj, String value)

Source from the content-addressed store, hash-verified

50 }
51
52 @Override
53 public ParseResult parseToken(LoadContext context, CDOMObject obj, String value)
54 {
55 if (obj instanceof Ungranted)
56 {
57 return new ParseResult.Fail(
58 "Cannot use " + getTokenName() + " on an Ungranted object type: " + obj.getClass().getSimpleName());
59 }
60 ParseResult pr = ParseResult.SUCCESS;
61 if (Constants.LST_DOT_CLEAR.equals(value))
62 {
63 /*
64 * TODO This cross-polluting and certainly not "editor friendly",
65 * thus will need to be changed after 5.16
66 */
67 if (obj instanceof PCClassLevel || obj instanceof PCClass)
68 {
69 PCClass pcc;
70 if (obj instanceof PCClassLevel)
71 {
72 pcc = (PCClass) obj.get(ObjectKey.TOKEN_PARENT);
73 }
74 else
75 {
76 pcc = (PCClass) obj;
77 }
78 context.getObjectContext().removeList(pcc, ListKey.UNARMED_DAMAGE);
79 for (PCClassLevel level : pcc.getOriginalClassLevelCollection())
80 {
81 context.getObjectContext().removeList(level, ListKey.UNARMED_DAMAGE);
82 }
83 }
84 else
85 {
86 context.getObjectContext().removeList(obj, ListKey.UNARMED_DAMAGE);
87 }
88 }
89 else
90 {
91 pr = checkForIllegalSeparator(',', value);
92 if (!pr.passed())
93 {
94 return pr;
95 }
96 final StringTokenizer tok = new StringTokenizer(value, Constants.COMMA);
97 if (context.getObjectContext().containsListFor(obj, ListKey.UNARMED_DAMAGE))
98 {
99 ComplexParseResult cpr = new ComplexParseResult();
100 cpr.addWarningMessage(obj.getDisplayName() + " already has " + getTokenName() + " set.");
101 cpr.addWarningMessage(
102 " It will be redefined, " + "but you should be using " + getTokenName() + ":.CLEAR");
103 pr = cpr;
104 context.getObjectContext().removeList(obj, ListKey.UNARMED_DAMAGE);
105 }
106 while (tok.hasMoreTokens())
107 {
108 context.getObjectContext().addToList(obj, ListKey.UNARMED_DAMAGE, tok.nextToken());
109 }

Callers

nothing calls this directly

Calls 15

getTokenNameMethod · 0.95
passedMethod · 0.95
addWarningMessageMethod · 0.95
getSimpleNameMethod · 0.80
hasMoreTokensMethod · 0.80
nextTokenMethod · 0.80
equalsMethod · 0.65
getMethod · 0.65
removeListMethod · 0.65
getObjectContextMethod · 0.65
containsListForMethod · 0.65

Tested by

no test coverage detected