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

Method write

code/src/java/plugin/pretokens/writer/PreMultWriter.java:53–120  ·  view source on GitHub ↗
(Writer writer, Prerequisite prereq)

Source from the content-addressed store, hash-verified

51 }
52
53 @Override
54 public void write(Writer writer, Prerequisite prereq) throws PersistenceLayerException
55 {
56 checkValidOperator(prereq, operatorsHandled());
57 try
58 {
59 Prerequisite subreq;
60 //
61 // Check to see if this is a special case for PREMULT
62 //
63 if (isSpecialCase(prereq))
64 {
65 handleSpecialCase(writer, prereq);
66 return;
67 }
68 if (isNegatedPreability(prereq))
69 {
70 handleNegatedPreAbility(writer, prereq);
71 return;
72 }
73 if (prereq.getPrerequisiteCount() != 0)
74 {
75 subreq = prereq.getPrerequisites().get(0);
76 final PrerequisiteWriterInterface test =
77 PrerequisiteWriterFactory.getInstance().getWriter(subreq.getKind());
78 if ((test instanceof AbstractPrerequisiteWriter)
79 && ((AbstractPrerequisiteWriter) test).specialCase(writer, prereq))
80 {
81 return;
82 }
83 }
84
85 if (prereq.getOperator().equals(PrerequisiteOperator.LT))
86 {
87 writer.write('!');
88 }
89
90 writer.write("PREMULT:");
91 writer.write(prereq.getOperand());
92 writer.write(',');
93 int i = 0;
94 for (Prerequisite pre : prereq.getPrerequisites())
95 {
96 if (i > 0)
97 {
98 writer.write(',');
99 }
100 writer.write('[');
101
102 PrerequisiteWriterFactory factory = PrerequisiteWriterFactory.getInstance();
103 PrerequisiteWriterInterface w = factory.getWriter(pre.getKind());
104 if (w != null)
105 {
106 w.write(writer, pre);
107 }
108 else
109 {
110 writer.write("unrecognized kind:" + pre.getKind());

Callers

nothing calls this directly

Calls 15

operatorsHandledMethod · 0.95
isSpecialCaseMethod · 0.95
handleSpecialCaseMethod · 0.95
isNegatedPreabilityMethod · 0.95
getWriterMethod · 0.95
getInstanceMethod · 0.95
getKindMethod · 0.95
writeMethod · 0.95
checkValidOperatorMethod · 0.80
getOperandMethod · 0.80
getPrerequisiteCountMethod · 0.65

Tested by

no test coverage detected