From: <th...@us...> - 2008-03-08 00:01:33
|
Revision: 5500 http://pcgen.svn.sourceforge.net/pcgen/?rev=5500&view=rev Author: thpr Date: 2008-03-07 16:01:40 -0800 (Fri, 07 Mar 2008) Log Message: ----------- CDOM: Bring PRExxx changes into CDOM branch Modified Paths: -------------- branches/cdom/code/src/java/pcgen/persistence/lst/output/prereq/AbstractPrerequisiteWriter.java branches/cdom/code/src/java/plugin/pretokens/parser/PreLanguageParser.java branches/cdom/code/src/java/plugin/pretokens/parser/PreSkillTotalParser.java branches/cdom/code/src/java/plugin/pretokens/test/PreTemplateTester.java branches/cdom/code/src/java/plugin/pretokens/writer/PreAbilityWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreArmorProfWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreArmorTypeWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreCSkillWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreCheckBaseWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreCheckWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreClassWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityAlignWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityDomainWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreDomainWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipBothWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipPrimaryWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipSecondaryWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipTwoWeaponWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreItemWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreLanguageWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreMoveWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreRaceWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreShieldProfWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillMultWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellDescriptorWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellSchoolSubWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellSchoolWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellTypeWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreSubClassWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreTemplateWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreTypeWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreVisionWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreWeaponProfWriter.java branches/cdom/code/src/java/plugin/pretokens/writer/PreWieldWriter.java Removed Paths: ------------- branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillTotWriter.java Modified: branches/cdom/code/src/java/pcgen/persistence/lst/output/prereq/AbstractPrerequisiteWriter.java =================================================================== --- branches/cdom/code/src/java/pcgen/persistence/lst/output/prereq/AbstractPrerequisiteWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/pcgen/persistence/lst/output/prereq/AbstractPrerequisiteWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -35,6 +35,7 @@ import java.io.IOException; import java.io.Writer; +import java.util.List; /** * This class handles writing pre reqs for LST Tokens @@ -119,4 +120,69 @@ throw new IOException(); } } + + protected PrerequisiteOperator getConsolidateMethod(String handled, + Prerequisite prereq, boolean ranked) + { + // If this is NOT a PREMULT... fail + if (prereq.getKind() != null) + { + return null; + } + List<Prerequisite> prereqList = prereq.getPrerequisites(); + PrerequisiteOperator oper = null; + for (Prerequisite p : prereqList) + { + // + // ...testing one item... + // + if (!ranked && !"1".equals(p.getOperand())) + { + return null; + } + // + // ...with all PREARMORTYPE entries... + // + if (!handled.equalsIgnoreCase(p.getKind())) + { + return null; + } + // + // ...and the same operator... + // + if (oper == null) + { + oper = p.getOperator(); + } + else + { + if (!oper.equals(p.getOperator())) + { + return null; + } + } + } + String count = prereq.getOperand(); + if (PrerequisiteOperator.LT.equals(oper)) + { + try + { + int i = Integer.parseInt(count); + if (prereqList.size() != i) + { + return null; + } + } + catch (NumberFormatException e) + { + return null; + } + } + else if (!PrerequisiteOperator.GTEQ.equals(oper)) + { + // TODO Not sure whether these can be consolidated... + return null; + } + return oper; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/parser/PreLanguageParser.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/parser/PreLanguageParser.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/parser/PreLanguageParser.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -69,7 +69,6 @@ { for (Prerequisite element : prereq.getPrerequisites()) { - element.setOperator(PrerequisiteOperator.EQ); if (element.getKey().equalsIgnoreCase("ANY")) { element.setCountMultiples(true); Modified: branches/cdom/code/src/java/plugin/pretokens/parser/PreSkillTotalParser.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/parser/PreSkillTotalParser.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/parser/PreSkillTotalParser.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -75,8 +75,9 @@ } Prerequisite subreq = new Prerequisite(); - subreq.setKind("skill.tot"); + subreq.setKind("skill"); subreq.setKey(token); + subreq.setTotalValues(true); prereq.addPrerequisite(subreq); } Modified: branches/cdom/code/src/java/plugin/pretokens/test/PreTemplateTester.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/test/PreTemplateTester.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/test/PreTemplateTester.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -69,6 +69,7 @@ if (!character.getTemplateList().isEmpty()) { + String templateKey = prereq.getKey().toUpperCase(); final int wildCard = templateKey.indexOf('%'); //handle wildcards (always assume they end the line) Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreAbilityWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreAbilityWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreAbilityWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -89,7 +89,7 @@ } if (prereq.getCategoryName().length() >0) { - writer.write("CATEGORY." + prereq.getCategoryName() + ","); + writer.write("CATEGORY=" + prereq.getCategoryName() + ","); } writer.write(prereq.getKey()); if (prereq.getSubKey() != null) Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreArmorProfWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreArmorProfWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreArmorProfWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - /** * Writer for PREARMORPROF */ @@ -84,4 +84,31 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } + } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreArmorTypeWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreArmorTypeWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreArmorTypeWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - /** * Writer for PREARMORTYPE */ @@ -44,7 +44,9 @@ PrerequisiteWriterInterface { - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface#kindHandled() */ public String kindHandled() @@ -52,20 +54,25 @@ return "ARMORTYPE"; } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface#operatorsHandled() */ public PrerequisiteOperator[] operatorsHandled() { - return new PrerequisiteOperator[]{PrerequisiteOperator.GTEQ, - PrerequisiteOperator.LT}; + return new PrerequisiteOperator[] { PrerequisiteOperator.GTEQ, + PrerequisiteOperator.LT }; } - /* (non-Javadoc) - * @see pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface#write(java.io.Writer, pcgen.core.prereq.Prerequisite) + /* + * (non-Javadoc) + * + * @see pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface#write(java.io.Writer, + * pcgen.core.prereq.Prerequisite) */ public void write(Writer writer, Prerequisite prereq) - throws PersistenceLayerException + throws PersistenceLayerException { checkValidOperator(prereq, operatorsHandled()); try @@ -74,7 +81,8 @@ { writer.write('!'); } - writer.write("PREARMORTYPE:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + writer.write("PREARMORTYPE:" + + (prereq.isOverrideQualify() ? "Q:" : "") + "1,"); writer.write(prereq.getKey()); } catch (IOException e) @@ -83,4 +91,30 @@ } } + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } + } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreCSkillWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreCSkillWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreCSkillWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreCSkillWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -88,4 +88,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreCheckBaseWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreCheckBaseWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreCheckBaseWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - /** * Writer for PRECHECKBASE */ @@ -86,4 +86,32 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, true); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + writer.write('='); + writer.write(p.getOperand()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreCheckWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreCheckWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreCheckWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - /** * Writer for PRECHECK */ @@ -86,4 +86,32 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, true); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + writer.write('='); + writer.write(p.getOperand()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreClassWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreClassWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreClassWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreClassWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -84,4 +84,32 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, true); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + writer.write('='); + writer.write(p.getOperand()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityAlignWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityAlignWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityAlignWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -36,6 +36,7 @@ import java.io.IOException; import java.io.Writer; +import java.util.List; public class PreDeityAlignWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface @@ -82,4 +83,61 @@ } } + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + // + // If this is a PREMULT... + // + if (prereq.getKind() == null) + { + List<Prerequisite> prereqList = prereq.getPrerequisites(); + PrerequisiteOperator oper = null; + for (Prerequisite p : prereqList) + { + System.err.println(p + " " + p.getKey()); + // + // ...with all PREARMORTYPE entries... + // + if (!kindHandled().equalsIgnoreCase(p.getKind())) + { + return false; + } + // + // ...and the same operator... + // + if (oper == null) + { + oper = p.getOperator(); + } + else + { + if (!oper.equals(p.getOperator())) + { + return false; + } + } + } + if (PrerequisiteOperator.LT.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + boolean first = true; + for (Prerequisite p : prereqList) + { + if (!first) + { + writer.write(','); + } + writer.write(p.getOperand()); + first = false; + } + return true; + } + return false; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityDomainWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityDomainWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityDomainWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreDeityDomainWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -82,4 +82,29 @@ } } + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreDeityWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreDeityWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -54,9 +54,8 @@ */ public PrerequisiteOperator[] operatorsHandled() { - return new PrerequisiteOperator[]{PrerequisiteOperator.EQ, - PrerequisiteOperator.GTEQ, PrerequisiteOperator.LT, - PrerequisiteOperator.NEQ}; + return new PrerequisiteOperator[] { PrerequisiteOperator.GTEQ, + PrerequisiteOperator.LT }; } /* (non-Javadoc) @@ -86,4 +85,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreDomainWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreDomainWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreDomainWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreDomainWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -86,4 +86,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipBothWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipBothWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipBothWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreEquipBothWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -82,4 +82,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipPrimaryWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipPrimaryWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipPrimaryWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreEquipPrimaryWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -83,4 +83,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipSecondaryWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipSecondaryWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipSecondaryWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreEquipSecondaryWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -83,4 +83,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipTwoWeaponWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipTwoWeaponWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipTwoWeaponWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreEquipTwoWeaponWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -82,4 +82,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreEquipWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreEquipWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -82,4 +82,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreItemWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreItemWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreItemWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreItemWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -73,7 +73,9 @@ writer.write('!'); } - writer.write("PREITEM:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + writer.write("PREITEM:" + (prereq.isOverrideQualify() ? "Q:":"")); + writer.write(prereq.getOperand()); + writer.write(','); writer.write(prereq.getKey()); } catch (IOException e) @@ -82,4 +84,30 @@ } } + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } + } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreLanguageWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreLanguageWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreLanguageWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreLanguageWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -55,8 +55,7 @@ public PrerequisiteOperator[] operatorsHandled() { return new PrerequisiteOperator[]{PrerequisiteOperator.GTEQ, - PrerequisiteOperator.LT, PrerequisiteOperator.EQ, - PrerequisiteOperator.NEQ}; + PrerequisiteOperator.LT}; } /* (non-Javadoc) @@ -85,4 +84,30 @@ } } + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } + } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreMoveWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreMoveWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreMoveWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreMoveWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -84,4 +84,31 @@ } } + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, true); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + writer.write('='); + writer.write(p.getOperand()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreRaceWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreRaceWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreRaceWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreRaceWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -73,7 +73,9 @@ writer.write('!'); } - writer.write("PRERACE:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + writer.write("PRERACE:" + (prereq.isOverrideQualify() ? "Q:":"")); + writer.write(prereq.getOperand()); + writer.write(','); writer.write(prereq.getKey()); } catch (IOException e) @@ -83,4 +85,29 @@ } + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreShieldProfWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreShieldProfWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreShieldProfWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - public class PreShieldProfWriter extends AbstractPrerequisiteWriter implements PrerequisiteWriterInterface { @@ -73,7 +73,10 @@ writer.write('!'); } - writer.write("PRESHIELDPROF:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + writer.write("PRESHIELDPROF:" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(prereq.getOperand()); + writer.write(','); writer.write(prereq.getKey()); } catch (IOException e) @@ -82,4 +85,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillMultWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillMultWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillMultWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -73,7 +73,14 @@ writer.write('!'); } - writer.write("PRESKILL:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + if (prereq.isTotalValues()) + { + writer.write("PRESKILLTOT:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + } + else + { + writer.write("PRESKILL:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + } writer.write(prereq.getKey()); writer.write('='); writer.write(prereq.getOperand()); Deleted: branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillTotWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillTotWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillTotWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -1,128 +0,0 @@ -/* - * PrerequisiteWriterFactory.java - * - * Copyright 2004 (C) Frugal <fr...@pu...> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Created on 18-Dec-2003 - * - * Current Ver: $Revision: 1821 $ - * - * Last Editor: $Author: jdempsey $ - * - * Last Edited: $Date: 2006-12-28 01:12:38 -0500 (Thu, 28 Dec 2006) $ - * - */ -package plugin.pretokens.writer; - -import pcgen.core.prereq.Prerequisite; -import pcgen.core.prereq.PrerequisiteOperator; -import pcgen.persistence.PersistenceLayerException; -import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; -import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; - -import java.io.IOException; -import java.io.Writer; - -public class PreSkillTotWriter extends AbstractPrerequisiteWriter implements - PrerequisiteWriterInterface -{ - - /* (non-Javadoc) - * @see pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface#kindHandled() - */ - public String kindHandled() - { - return "skill.tot"; - } - - /* (non-Javadoc) - * @see pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface#operatorsHandled() - */ - public PrerequisiteOperator[] operatorsHandled() - { - return new PrerequisiteOperator[]{PrerequisiteOperator.GTEQ, - PrerequisiteOperator.LT}; - } - - /* (non-Javadoc) - * @see pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface#write(java.io.Writer, pcgen.core.prereq.Prerequisite) - */ - public void write(Writer writer, Prerequisite prereq) - throws PersistenceLayerException - { - checkValidOperator(prereq, operatorsHandled()); - - try - { - if (prereq.getOperator().equals(PrerequisiteOperator.LT)) - { - writer.write('!'); - } - - writer.write("PRESKILLTOT:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); - writer.write(prereq.getKey()); - if (prereq.getSubKey() != null) - { - writer.write(" ("); - writer.write(prereq.getSubKey()); - writer.write(')'); - } - writer.write("="); - writer.write(prereq.getOperand()); - } - catch (IOException e) - { - throw new PersistenceLayerException(e.getMessage()); - } - } - - /* (non-Javadoc) - * @see pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter#specialCase(java.io.Writer writer, pcgen.core.prereq.Prerequisite prereq) - */ - @Override - public boolean specialCase(Writer writer, Prerequisite prereq) - throws IOException - { - // - // If this is a PREMULT with all PRESPELLTYPEs ... - // - if (checkForPremultOfKind(prereq, kindHandled(), true)) - { - if (prereq.getOperator().equals(PrerequisiteOperator.LT)) - { - writer.write('!'); - } - writer.write("PRESKILLTOT:"); - writer.write(prereq.isOverrideQualify() ? "Q:":""); - - boolean needComma = false; - for (Prerequisite subreq : prereq.getPrerequisites()) - { - if (needComma) - { - writer.write(','); - } - needComma = true; - writer.write(subreq.getKey()); - } - writer.write('='); - writer.write(prereq.getOperand()); - return true; - } - return false; - } -} Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreSkillWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -73,7 +73,14 @@ writer.write('!'); } - writer.write("PRESKILL:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + if (prereq.isTotalValues()) + { + writer.write("PRESKILLTOT:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + } + else + { + writer.write("PRESKILL:" + (prereq.isOverrideQualify() ? "Q:":"") + "1,"); + } writer.write(prereq.getKey()); if (prereq.getSubKey() != null) { @@ -89,5 +96,4 @@ throw new PersistenceLayerException(e.getMessage()); } } - } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellDescriptorWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellDescriptorWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellDescriptorWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -93,27 +93,27 @@ public boolean specialCase(Writer writer, Prerequisite prereq) throws IOException { - // - // If this is a PREMULT with all PRESPELLDESCRIPTORs ... - // - if (checkForPremultOfKind(prereq, kindHandled(), true)) + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, true); + if (po == null) { - if (prereq.getOperator().equals(PrerequisiteOperator.LT)) - { - writer.write('!'); - } + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } - writer.write("PRESPELLDESCRIPTOR:" + (prereq.isOverrideQualify() ? "Q:":"")); - writer.write(prereq.getOperand()); - for (Prerequisite element : prereq.getPrerequisites()) - { - writer.write(','); - writer.write(element.getKey()); - writer.write('='); - writer.write(element.getSubKey()); - } - return true; + writer.write("PRESPELLDESCRIPTOR:" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + writer.write('='); + writer.write(p.getSubKey()); } - return false; + return true; } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellSchoolSubWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellSchoolSubWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellSchoolSubWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -93,27 +93,27 @@ public boolean specialCase(Writer writer, Prerequisite prereq) throws IOException { - // - // If this is a PREMULT with all PRESPELLSCHOOLSUBs ... - // - if (checkForPremultOfKind(prereq, kindHandled(), true)) + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, true); + if (po == null) { - if (prereq.getOperator().equals(PrerequisiteOperator.LT)) - { - writer.write('!'); - } + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } - writer.write("PRESPELLSCHOOLSUB:" + (prereq.isOverrideQualify() ? "Q:":"")); - writer.write(prereq.getOperand()); - for (Prerequisite element : prereq.getPrerequisites()) - { - writer.write(','); - writer.write(element.getKey()); - writer.write('='); - writer.write(element.getSubKey()); - } - return true; + writer.write("PRESPELLSCHOOLSUB:" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + writer.write('='); + writer.write(p.getSubKey()); } - return false; + return true; } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellSchoolWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellSchoolWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellSchoolWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -93,27 +93,27 @@ public boolean specialCase(Writer writer, Prerequisite prereq) throws IOException { - // - // If this is a PREMULT with all PRESPELLSCHOOLs ... - // - if (checkForPremultOfKind(prereq, kindHandled(), true)) + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, true); + if (po == null) { - if (prereq.getOperator().equals(PrerequisiteOperator.LT)) - { - writer.write('!'); - } + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } - writer.write("PRESPELLSCHOOL:" + (prereq.isOverrideQualify() ? "Q:":"")); - writer.write(prereq.getOperand()); - for (Prerequisite element : prereq.getPrerequisites()) - { - writer.write(','); - writer.write(element.getKey()); - writer.write('='); - writer.write(element.getSubKey()); - } - return true; + writer.write("PRESPELLSCHOOL:" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + writer.write('='); + writer.write(p.getSubKey()); } - return false; + return true; } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellTypeWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellTypeWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellTypeWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -93,27 +93,27 @@ public boolean specialCase(Writer writer, Prerequisite prereq) throws IOException { - // - // If this is a PREMULT with all PRESPELLTYPEs ... - // - if (checkForPremultOfKind(prereq, kindHandled(), true)) + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, true); + if (po == null) { - if (prereq.getOperator().equals(PrerequisiteOperator.LT)) - { - writer.write('!'); - } + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } - writer.write("PRESPELLTYPE:" + (prereq.isOverrideQualify() ? "Q:":"")); - writer.write(prereq.getOperand()); - for (Prerequisite element : prereq.getPrerequisites()) - { - writer.write(','); - writer.write(element.getKey()); - writer.write('='); - writer.write(element.getSubKey()); - } - return true; + writer.write("PRESPELLTYPE:" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + writer.write('='); + writer.write(p.getSubKey()); } - return false; + return true; } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreSpellWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - /** * Write PRESPELL Token */ @@ -85,4 +85,30 @@ } } + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } + } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreSubClassWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreSubClassWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreSubClassWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - /** * Writes PRESUBCLASS Token */ @@ -85,4 +85,30 @@ } } + + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + } } Modified: branches/cdom/code/src/java/plugin/pretokens/writer/PreTemplateWriter.java =================================================================== --- branches/cdom/code/src/java/plugin/pretokens/writer/PreTemplateWriter.java 2008-03-07 23:43:01 UTC (rev 5499) +++ branches/cdom/code/src/java/plugin/pretokens/writer/PreTemplateWriter.java 2008-03-08 00:01:40 UTC (rev 5500) @@ -28,15 +28,15 @@ */ package plugin.pretokens.writer; +import java.io.IOException; +import java.io.Writer; + import pcgen.core.prereq.Prerequisite; import pcgen.core.prereq.PrerequisiteOperator; import pcgen.persistence.PersistenceLayerException; import pcgen.persistence.lst.output.prereq.AbstractPrerequisiteWriter; import pcgen.persistence.lst.output.prereq.PrerequisiteWriterInterface; -import java.io.IOException; -import java.io.Writer; - /** * Writes PRETEMPLATE token */ @@ -85,4 +85,30 @@ } } + @Override + public boolean specialCase(Writer writer, Prerequisite prereq) + throws IOException + { + PrerequisiteOperator po = getConsolidateMethod(kindHandled(), prereq, false); + if (po == null) + { + return false; + } + if (!po.equals(prereq.getOperator())) + { + writer.write('!'); + } + + writer.write("PRE" + kindHandled().toUpperCase() + ":" + + (prereq.isOverrideQualify() ? "Q:" : "")); + writer.write(po.equals(PrerequisiteOperator.GTEQ) ? prereq.getOperand() + : "1"); + for (Prerequisite p : prereq.getPrerequisites()) + { + writer.write(','); + writer.write(p.getKey()); + } + return true; + ... [truncated message content] |