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

Method parse

code/src/java/plugin/pretokens/parser/PreAlignParser.java:57–107  ·  view source on GitHub ↗

Parse the pre req list @param kind The kind of the prerequisite (less the "PRE" prefix) @param formula The body of the prerequisite. @param invertResult Whether the prerequisite should invert the result. @param overrideQualify if set true, this prerequisite will be enforced in spite

(String kind, String formula, boolean invertResult, boolean overrideQualify)

Source from the content-addressed store, hash-verified

55 * @throws PersistenceLayerException
56 */
57 @Override
58 public Prerequisite parse(String kind, String formula, boolean invertResult, boolean overrideQualify)
59 throws PersistenceLayerException
60 {
61 Prerequisite prereq = super.parse(kind, formula, invertResult, overrideQualify);
62 String[] alignments = formula.split(",");
63
64 final GameMode gm = SettingsHandler.getGameAsProperty().get();
65 if (gm == null)
66 {
67 prereq.setKey("");
68 prereq.setOperator(PrerequisiteOperator.EQ);
69 return prereq;
70 }
71
72 if (Globals.getContext().getReferenceContext().getConstructedObjectCount(PCAlignment.class) == 0)
73 {
74 // There are no alignments for this game mode, so we
75 // do not do prereqs.
76 prereq.setKey("");
77 prereq.setOperator(PrerequisiteOperator.EQ);
78 }
79 else
80 {
81 if (alignments.length == 1)
82 {
83 prereq.setKey(formula);
84 prereq.setOperator(PrerequisiteOperator.EQ);
85 }
86 else
87 {
88 prereq.setKind(null);
89 prereq.setOperator(PrerequisiteOperator.GTEQ);
90 prereq.setOperand("1");
91
92 for (String alignment : alignments)
93 {
94 Prerequisite subreq = new Prerequisite();
95 subreq.setKind("align");
96 subreq.setKey(alignment);
97 subreq.setOperator(PrerequisiteOperator.EQ);
98 prereq.addPrerequisite(subreq);
99 }
100 }
101 }
102 if (invertResult)
103 {
104 prereq.setOperator(prereq.getOperator().invert());
105 }
106 return prereq;
107 }
108}

Callers 1

test1Method · 0.95

Calls 14

getGameAsPropertyMethod · 0.95
setKeyMethod · 0.95
setOperatorMethod · 0.95
getContextMethod · 0.95
setKindMethod · 0.95
setOperandMethod · 0.95
addPrerequisiteMethod · 0.95
getOperatorMethod · 0.95
invertMethod · 0.80
parseMethod · 0.65
getMethod · 0.65

Tested by 1

test1Method · 0.76