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

Method parseTokenWithSeparator

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

Source from the content-addressed store, hash-verified

54 }
55
56 @Override
57 protected ParseResult parseTokenWithSeparator(LoadContext context, CDOMObject obj, String value)
58 {
59 if (obj instanceof Ungranted)
60 {
61 return new ParseResult.Fail(
62 "Cannot use " + getTokenName() + " on an Ungranted object type: " + obj.getClass().getSimpleName());
63 }
64 if (Constants.LST_DOT_CLEAR.equals(value))
65 {
66 context.getObjectContext().removeList(obj, ListKey.DAMAGE_REDUCTION);
67 return ParseResult.SUCCESS;
68 }
69
70 StringTokenizer tok = new StringTokenizer(value, Constants.PIPE);
71 String drString = tok.nextToken();
72 ParseResult pr = checkForIllegalSeparator('/', drString);
73 if (!pr.passed())
74 {
75 return pr;
76 }
77 String[] values = drString.split("/");
78 if (values.length != 2)
79 {
80 ComplexParseResult cpr = new ComplexParseResult();
81 cpr.addErrorMessage(getTokenName() + " failed to build DamageReduction with value " + value);
82 cpr.addErrorMessage(" ...expected a String with one / as a separator");
83 return cpr;
84 }
85 Formula formula = FormulaFactory.getFormulaFor(values[0]);
86 if (!formula.isValid())
87 {
88 return new ParseResult.Fail("Formula in " + getTokenName() + " was not valid: " + formula.toString());
89 }
90 DamageReduction dr = new DamageReduction(formula, values[1]);
91
92 if (tok.hasMoreTokens())
93 {
94 String currentToken = tok.nextToken();
95 Prerequisite prereq = getPrerequisite(currentToken);
96 if (prereq == null)
97 {
98 return ParseResult.INTERNAL_ERROR;
99 }
100 dr.addPrerequisite(prereq);
101 }
102 context.getObjectContext().addToList(obj, ListKey.DAMAGE_REDUCTION, dr);
103 return ParseResult.SUCCESS;
104 }
105
106 @Override
107 public String[] unparse(LoadContext context, CDOMObject obj)

Callers

nothing calls this directly

Calls 15

getTokenNameMethod · 0.95
passedMethod · 0.95
addErrorMessageMethod · 0.95
getFormulaForMethod · 0.95
isValidMethod · 0.95
getSimpleNameMethod · 0.80
nextTokenMethod · 0.80
hasMoreTokensMethod · 0.80
getPrerequisiteMethod · 0.80
equalsMethod · 0.65
removeListMethod · 0.65
getObjectContextMethod · 0.65

Tested by

no test coverage detected