From: <th...@us...> - 2008-01-17 02:01:18
|
Revision: 4947 http://pcgen.svn.sourceforge.net/pcgen/?rev=4947&view=rev Author: thpr Date: 2008-01-16 18:01:19 -0800 (Wed, 16 Jan 2008) Log Message: ----------- CDOM: Adds parse support for conditions in 6.0 CHOOSE syntax Adds parse support for REPEATLEVEL for PCClassLevel Adds parse support for LEVELSPERFEAT 0 Adds parse support for MOVECLONE:x,y,0 Adds parse support for Formula in Global CHOOSE:NUMBER Adds parse support for EQUIPMENT CONTAINS:*0 (no weight container) Modified Paths: -------------- branches/cdom/code/pluginbuild.xml branches/cdom/code/src/java/pcgen/cdom/helper/NumberChoiceSet.java branches/cdom/code/src/java/pcgen/persistence/lst/AutoLoader.java branches/cdom/code/src/java/pcgen/persistence/lst/ChooseLoader.java branches/cdom/code/src/java/pcgen/persistence/lst/PCClassLoader.java branches/cdom/code/src/java/pcgen/persistence/lst/QualifierToken.java branches/cdom/code/src/java/plugin/lsttokens/MovecloneLst.java branches/cdom/code/src/java/plugin/lsttokens/add/ClassSkillsToken.java branches/cdom/code/src/java/plugin/lsttokens/choose/SkillsNamedToken.java branches/cdom/code/src/java/plugin/lsttokens/choose/subtoken/NumberToken.java branches/cdom/code/src/java/plugin/lsttokens/choose/subtoken/SkillToken.java branches/cdom/code/src/java/plugin/lsttokens/equipment/ContainsToken.java branches/cdom/code/src/java/plugin/lsttokens/equipmentmodifier/choose/NumberToken.java branches/cdom/code/src/java/plugin/lsttokens/pcclass/LevelsperfeatToken.java branches/cdom/code/src/java/plugin/qualifier/armorprof/EquipmentToken.java branches/cdom/code/src/java/plugin/qualifier/pobject/AllToken.java branches/cdom/code/src/java/plugin/qualifier/pobject/PCToken.java branches/cdom/code/src/java/plugin/qualifier/pobject/QualifiedToken.java branches/cdom/code/src/java/plugin/qualifier/pobject/UniqueToken.java branches/cdom/code/src/java/plugin/qualifier/shieldprof/EquipmentToken.java branches/cdom/code/src/java/plugin/qualifier/skill/AllowedToken.java branches/cdom/code/src/java/plugin/qualifier/skill/ClassToken.java branches/cdom/code/src/java/plugin/qualifier/skill/CrossClassToken.java branches/cdom/code/src/java/plugin/qualifier/skill/ExclusiveToken.java branches/cdom/code/src/java/plugin/qualifier/skill/NoRankToken.java branches/cdom/code/src/java/plugin/qualifier/skill/NotClassToken.java branches/cdom/code/src/java/plugin/qualifier/skill/NotCrossClassToken.java branches/cdom/code/src/java/plugin/qualifier/skill/NotExclusiveToken.java branches/cdom/code/src/java/plugin/qualifier/stat/RemoveToken.java branches/cdom/code/src/java/plugin/qualifier/weaponprof/DeityWeaponToken.java branches/cdom/code/src/java/plugin/qualifier/weaponprof/EquipmentToken.java Added Paths: ----------- branches/cdom/code/src/java/pcgen/cdom/helper/FormulaChoiceSet.java branches/cdom/code/src/java/plugin/qualifier/skill/RanksToken.java Modified: branches/cdom/code/pluginbuild.xml =================================================================== --- branches/cdom/code/pluginbuild.xml 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/pluginbuild.xml 2008-01-17 02:01:19 UTC (rev 4947) @@ -6846,6 +6846,13 @@ </patternset> </fileset> </jar> + <jar jarfile="${lstplugins.dir}/SkillQualifier-RANKS.jar" manifest="${src.java.dir}/plugin/lsttokens/manifest.mf"> + <fileset dir="${build.classes.dir}"> + <patternset> + <include name="plugin/qualifier/skill/RanksToken.class" /> + </patternset> + </fileset> + </jar> </target> <target name="jar-qualifier-stat-plugins" depends="makeplugindirs" description="Build (Link) Stat Qualifier Token plugin jar files"> Added: branches/cdom/code/src/java/pcgen/cdom/helper/FormulaChoiceSet.java =================================================================== --- branches/cdom/code/src/java/pcgen/cdom/helper/FormulaChoiceSet.java (rev 0) +++ branches/cdom/code/src/java/pcgen/cdom/helper/FormulaChoiceSet.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -0,0 +1,44 @@ +package pcgen.cdom.helper; + +import java.util.Set; + +import pcgen.base.formula.Formula; +import pcgen.core.PlayerCharacter; + +public class FormulaChoiceSet implements PrimitiveChoiceSet<Integer> +{ + + private final Formula minimum; + private final Formula maximum; + + public FormulaChoiceSet(Formula min, Formula max) + { + minimum = min; + maximum = max; + } + + public Class<Integer> getReferenceClass() + { + return Integer.class; + } + + public Set<Integer> getSet(PlayerCharacter pc) + { + /* + * TODO Need to resolve Formulas + */ + return null; + } + + public String getLSTformat() + { + StringBuilder sb = new StringBuilder().append("MIN=").append(minimum) + .append("|MAX=").append(maximum); + return sb.toString(); + } + + public Class<Integer> getChoiceClass() + { + return Integer.class; + } +} Modified: branches/cdom/code/src/java/pcgen/cdom/helper/NumberChoiceSet.java =================================================================== --- branches/cdom/code/src/java/pcgen/cdom/helper/NumberChoiceSet.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/pcgen/cdom/helper/NumberChoiceSet.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -27,6 +27,9 @@ public Set<Integer> getSet(PlayerCharacter pc) { + /* + * TODO Need to resolve Numbers + */ return null; } Modified: branches/cdom/code/src/java/pcgen/persistence/lst/AutoLoader.java =================================================================== --- branches/cdom/code/src/java/pcgen/persistence/lst/AutoLoader.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/pcgen/persistence/lst/AutoLoader.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -57,7 +57,7 @@ LstUtils.deprecationCheck(token, target, value); if (!token.parse(target, value, level)) { - Logging.errorPrint("Error parsing AUTO: " + key + "|" + value); + Logging.errorPrint("Error parsing AUTO:" + key + "|" + value); return false; } return true; Modified: branches/cdom/code/src/java/pcgen/persistence/lst/ChooseLoader.java =================================================================== --- branches/cdom/code/src/java/pcgen/persistence/lst/ChooseLoader.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/pcgen/persistence/lst/ChooseLoader.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -289,6 +289,13 @@ LoadContext context, Class<T> cl, String key, String value) { TokenStore ts = TokenStore.inst(); + int equalLoc = key.indexOf('='); + String condition = null; + if (equalLoc != -1) + { + condition = key.substring(equalLoc + 1); + key = key.substring(0, equalLoc); + } ChooseLstQualifierToken<T> qual = ts.getChooseQualifier(cl, key); if (qual == null) { @@ -298,12 +305,12 @@ { return null; } - potoken.initialize(context, cl, value); + potoken.initialize(context, cl, condition, value); return potoken; } else { - qual.initialize(context, cl, value); + qual.initialize(context, cl, condition, value); return qual; } } Modified: branches/cdom/code/src/java/pcgen/persistence/lst/PCClassLoader.java =================================================================== --- branches/cdom/code/src/java/pcgen/persistence/lst/PCClassLoader.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/pcgen/persistence/lst/PCClassLoader.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -97,15 +97,17 @@ return null; } } - try + int colonLoc = firstToken.indexOf(":"); + if (colonLoc == -1) { int lvl = Integer.parseInt(firstToken); PCClassLevelLoader.parseLine(context, target, restOfLine, source, - lvl); + lvl); } - catch (NumberFormatException nfe) + else { - if (firstToken.startsWith("SUBCLASS:")) + String firstArg = firstToken.substring(0, colonLoc); + if (firstArg.equals("SUBCLASS")) { if (lstLine.indexOf("\t") == -1) { @@ -126,13 +128,13 @@ } parseSubClassLine(context, sc, restOfLine, source); } - else if (firstToken.startsWith("SUBCLASSLEVEL:")) + else if (firstArg.equals("SUBCLASSLEVEL")) { // FIXME // SubClassLoader.parseLine(context, sc, restOfLine, source); } - else if (firstToken.startsWith("SUBSTITUTIONCLASS:")) + else if (firstArg.equals("SUBSTITUTIONCLASS")) { if (lstLine.indexOf("\t") == -1) { @@ -154,13 +156,13 @@ } parseClassLine(context, sc, restOfLine, source); } - else if (firstToken.startsWith("SUBSTITUTIONCLASSLEVEL:")) + else if (firstArg.equals("SUBSTITUTIONCLASSLEVEL")) { // FIXME // SubstitutionClassLoader.parseLine(context, sc, restOfLine, // source); } - else if (firstToken.startsWith("CLASS:")) + else if (firstArg.equals("CLASS")) { PCClass thisTarget = context.ref.silentlyGetConstructedCDOMObject( @@ -178,9 +180,26 @@ } else { - Logging.errorPrint("Not sure what to do with: " + lstLine); + try + { + int lvl = Integer.parseInt(firstArg); + String rest = firstToken.substring(colonLoc + 1); + if (!rest.startsWith("REPEATLEVEL:")) + { + Logging.errorPrint("Invalid REPEATLEVEL syntax found: " + firstToken); + return target; + } + parseRepeatClassLevel(context, restOfLine, source, target, + lvl, rest.substring(12)); + } + catch (NumberFormatException nfe) + { + Logging.errorPrint("Not sure what to do with: " + lstLine); + } } } + + return target; } @@ -252,6 +271,117 @@ } } + private void parseRepeatClassLevel(LoadContext context, String lstLine, + CampaignSourceEntry source, PCClass pcClass, int iLevel, + String colString) + { + // + // REPEAT:<level increment>|<consecutive>|<max level> + // + StringTokenizer repeatToken = new StringTokenizer(colString, "|"); + int lvlIncrement = 1000; // an arbitrarily large number... + try + { + lvlIncrement = Integer.parseInt(repeatToken.nextToken()); + } + catch (NumberFormatException nfe) + { + Logging.errorPrint("Non-Numeric Level Increment info '" + + colString + "' in " + source.getURI(), nfe); + return; + } + Integer consecutive = 0; + Integer maxLevel = null; + if (repeatToken.hasMoreTokens()) + { + String token = repeatToken.nextToken(); + boolean consumed = false; + if (token.startsWith("SKIP=")) + { + try + { + consecutive = Integer.parseInt(token.substring(5)); + } + catch (NumberFormatException nfe) + { + Logging.errorPrint("Non-Numeric Consecutive Level info '" + + colString + "' in " + source.getURI(), nfe); + return; + } + if (repeatToken.hasMoreTokens()) + { + token = repeatToken.nextToken(); + } + else + { + consumed = true; + } + } + /* + * Note this is intentionally NOT else if + */ + if (token.startsWith("MAX=")) + { + String maxString = token.substring(4); + try + { + maxLevel = Integer.parseInt(maxString); + } + catch (NumberFormatException nfe) + { + Logging.errorPrint("Non-Numeric Max Level info MAX='" + + maxLevel + "' in " + source.getURI(), nfe); + return; + } + consumed = true; + } + if (!consumed) + { + Logging.errorPrint("Did not understand REPEATLEVEL flag: " + + token + " in " + source.getURI()); + return; + } + if (repeatToken.hasMoreTokens()) + { + Logging.errorPrint("Did not understand REPEATLEVEL " + + "extra token: " + repeatToken.nextToken() + " in " + + source.getURI()); + return; + } + } + if (maxLevel == null) + { + if (pcClass.hasMaxLevel()) + { + maxLevel = pcClass.getMaxLevel(); + } + else + { + maxLevel = 100; // an arbitrarily large number... + } + } + int count = consecutive; + for (int lvl = iLevel; lvl <= maxLevel; lvl += lvlIncrement) + { + if ((consecutive == 0) || (count != 0)) + { + PCClassLevelLoader.parseLine(context, pcClass, lstLine, source, + lvl); + } + if (consecutive != 0) + { + if (count == 0) + { + count = consecutive; + } + else + { + --count; + } + } + } + } + /** * @see pcgen.persistence.lst.LstObjectFileLoader#parseLine(pcgen.core.PObject, * java.lang.String, pcgen.persistence.lst.CampaignSourceEntry) Modified: branches/cdom/code/src/java/pcgen/persistence/lst/QualifierToken.java =================================================================== --- branches/cdom/code/src/java/pcgen/persistence/lst/QualifierToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/pcgen/persistence/lst/QualifierToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -4,7 +4,8 @@ public interface QualifierToken<T> { - public boolean initialize(LoadContext context, Class<T> cl, String value); + public boolean initialize(LoadContext context, Class<T> cl, + String condition, String value); public String getTokenName(); } Modified: branches/cdom/code/src/java/plugin/lsttokens/MovecloneLst.java =================================================================== --- branches/cdom/code/src/java/plugin/lsttokens/MovecloneLst.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/lsttokens/MovecloneLst.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -131,10 +131,10 @@ else if (formulaString.startsWith("+")) { int add = Integer.parseInt(formulaString.substring(1)); - if (add <= 0) + if (add < 0) { Logging.addParseMessage(Logging.LST_ERROR, getTokenName() - + " was expecting a Positive " + + " was expecting a Non-Negative " + "Integer for adding Movement, was : " + formulaString.substring(1)); return false; @@ -144,13 +144,6 @@ else { int sub = Integer.parseInt(formulaString); - if (sub == 0) - { - Logging.addParseMessage(Logging.LST_ERROR, getTokenName() - + " was expecting a non-zero " - + "Integer for Movement modifier, was : " + formulaString); - return false; - } if (sub < 0) { form = new SubtractingFormula(-sub); Modified: branches/cdom/code/src/java/plugin/lsttokens/add/ClassSkillsToken.java =================================================================== --- branches/cdom/code/src/java/plugin/lsttokens/add/ClassSkillsToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/lsttokens/add/ClassSkillsToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -32,6 +32,7 @@ import pcgen.cdom.helper.AllowActor; import pcgen.cdom.helper.ChoiceSet; import pcgen.cdom.helper.ReferenceChoiceSet; +import pcgen.cdom.inst.PCClassLevel; import pcgen.core.ClassSkillList; import pcgen.core.PCClass; import pcgen.core.PObject; @@ -88,10 +89,10 @@ public boolean parse(LoadContext context, PObject obj, String value) { - if (!(obj instanceof PCClass)) + if (!(obj instanceof PCClass || obj instanceof PCClassLevel)) { Logging.errorPrint("ADD:" + getTokenName() - + " is only supported in Class lines"); + + " is only supported in Class files"); return false; } if (value.length() == 0) @@ -176,6 +177,9 @@ return false; } + /* + * FIXME The assumption that this is a PCClass is WRONG + */ ClassSkillList csl = ((PCClass) obj).getCDOMClassSkillList(); ChooseActionContainer container = new ChooseActionContainer("ADD"); container.addActor(new AllowActor<Skill>(csl)); Modified: branches/cdom/code/src/java/plugin/lsttokens/choose/SkillsNamedToken.java =================================================================== --- branches/cdom/code/src/java/plugin/lsttokens/choose/SkillsNamedToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/lsttokens/choose/SkillsNamedToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -108,20 +108,6 @@ public PrimitiveChoiceSet<?> parse(LoadContext context, CDOMObject cdo, String value) throws PersistenceLayerException { - int lastPipe = value.lastIndexOf('|'); - if (lastPipe != -1) - { - try - { - Integer.parseInt(value.substring(lastPipe + 1)); - return ChooseLoader.parseToken(context, Skill.class, value - .substring(0, lastPipe)); - } - catch (NumberFormatException nfe) - { - // OK - } - } return ChooseLoader.parseToken(context, Skill.class, value); } } Modified: branches/cdom/code/src/java/plugin/lsttokens/choose/subtoken/NumberToken.java =================================================================== --- branches/cdom/code/src/java/plugin/lsttokens/choose/subtoken/NumberToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/lsttokens/choose/subtoken/NumberToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -17,9 +17,11 @@ */ package plugin.lsttokens.choose.subtoken; +import pcgen.base.formula.Formula; import pcgen.cdom.base.CDOMObject; import pcgen.cdom.base.Constants; -import pcgen.cdom.helper.NumberChoiceSet; +import pcgen.cdom.base.FormulaFactory; +import pcgen.cdom.helper.FormulaChoiceSet; import pcgen.cdom.helper.PrimitiveChoiceSet; import pcgen.persistence.LoadContext; import pcgen.persistence.PersistenceLayerException; @@ -55,16 +57,16 @@ + " first argument must start with MIN=: " + minString); return null; } - int min; + Formula min; + Integer minInt = null; try { - min = Integer.parseInt(minString.substring(4)); + minInt = Integer.valueOf(minString.substring(4)); + min = FormulaFactory.getFormulaFor(minInt); } catch (NumberFormatException nfe) { - Logging.errorPrint(getTokenName() - + " MIN must be an integer >= 0: " + minString); - return null; + min = FormulaFactory.getFormulaFor(minString.substring(4)); } int nextPipeLoc = value.indexOf(Constants.PIPE, pipeLoc + 1); @@ -81,23 +83,27 @@ + " second argument must start with MAX=: " + maxString); return null; } - int max; + + Formula max; + Integer maxInt = null; try { - max = Integer.parseInt(maxString.substring(4)); + maxInt = Integer.valueOf(maxString.substring(4)); + max = FormulaFactory.getFormulaFor(maxInt); } catch (NumberFormatException nfe) { - Logging.errorPrint(getTokenName() - + " MAX must be an integer >= 0: " + maxString); - return null; + max = FormulaFactory.getFormulaFor(maxString.substring(4)); } - if (max <= min) + if (minInt != null && maxInt != null) { - Logging.errorPrint(getTokenName() + " MAX must be > MIN"); - return null; + if (minInt.intValue() >= maxInt.intValue()) + { + Logging.errorPrint(getTokenName() + " MAX must be > MIN"); + return null; + } } - return new NumberChoiceSet(min, max); + return new FormulaChoiceSet(min, max); } } Modified: branches/cdom/code/src/java/plugin/lsttokens/choose/subtoken/SkillToken.java =================================================================== --- branches/cdom/code/src/java/plugin/lsttokens/choose/subtoken/SkillToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/lsttokens/choose/subtoken/SkillToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -40,7 +40,6 @@ public PrimitiveChoiceSet<?> parse(LoadContext context, CDOMObject obj, String value) throws PersistenceLayerException { - //TODO Need to deal with = return ChooseLoader.parseToken(context, SKILL_CLASS, value); } Modified: branches/cdom/code/src/java/plugin/lsttokens/equipment/ContainsToken.java =================================================================== --- branches/cdom/code/src/java/plugin/lsttokens/equipment/ContainsToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/lsttokens/equipment/ContainsToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -127,10 +127,10 @@ weightCap = BigDecimalHelper.trimBigDecimal(new BigDecimal( weightCapacity)); - if (BigDecimal.ZERO.compareTo(weightCap) >= 0) + if (BigDecimal.ZERO.compareTo(weightCap) > 0) { Logging.addParseMessage(Logging.LST_ERROR, - "Weight Capacity must be > 0: " + weightCapacity + "Weight Capacity must be >= 0: " + weightCapacity + "\n Use 'UNLIM' (not -1) for unlimited Count"); return false; } @@ -138,7 +138,7 @@ catch (NumberFormatException ex) { Logging.addParseMessage(Logging.LST_ERROR, - "Weight Capacity must be 'UNLIM or a number > 0: " + "Weight Capacity must be 'UNLIM or a number >= 0: " + weightCapacity); return false; } Modified: branches/cdom/code/src/java/plugin/lsttokens/equipmentmodifier/choose/NumberToken.java =================================================================== --- branches/cdom/code/src/java/plugin/lsttokens/equipmentmodifier/choose/NumberToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/lsttokens/equipmentmodifier/choose/NumberToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -17,8 +17,11 @@ */ package plugin.lsttokens.equipmentmodifier.choose; +import java.util.ArrayList; +import java.util.List; import java.util.StringTokenizer; +import pcgen.cdom.helper.CollectionChoiceSet; import pcgen.cdom.helper.NumberChoiceSet; import pcgen.cdom.helper.PrimitiveChoiceSet; import pcgen.core.Constants; @@ -83,6 +86,7 @@ StringTokenizer tok = new StringTokenizer(value, Constants.PIPE); Integer min = null; Integer max = null; + while (tok.hasMoreTokens()) { String tokString = tok.nextToken(); @@ -195,6 +199,7 @@ Integer min = null; Integer max = null; Integer increment = null; + List<Integer> intList = new ArrayList<Integer>(); boolean noSign = false; boolean skipZero = false; boolean multiple = false; @@ -267,17 +272,18 @@ } else { - /* - * TODO this doesn't work today :( - */ - Integer.parseInt(tokString); - return null; + intList.add(Integer.valueOf(tokString)); } } + PrimitiveChoiceSet<Integer> cs; if (max == null) { - if (min != null) + if (min == null) { + cs = new CollectionChoiceSet<Integer>(intList); + } + else + { Logging .errorPrint("Cannot have MIN=n without MAX=m in CHOOSE:NUMBER: " + value); @@ -300,21 +306,29 @@ + value); return null; } - } - NumberChoiceSet cs = new NumberChoiceSet(min, max); - cs.setShowSign(!noSign); - cs.setShowZero(!skipZero); - cs.setMultiple(multiple); - if (increment != null) - { - if (increment.intValue() < 1) + if (!intList.isEmpty()) { Logging - .errorPrint("Increment in CHOOSE must be >= 1: " + .errorPrint("Cannot specify individual values and MIN=/MAX= " + value); return null; } - cs.setIncrement(increment.intValue()); + NumberChoiceSet ncs = new NumberChoiceSet(min, max); + ncs.setShowSign(!noSign); + ncs.setShowZero(!skipZero); + ncs.setMultiple(multiple); + if (increment != null) + { + if (increment.intValue() < 1) + { + Logging + .errorPrint("Increment in CHOOSE must be >= 1: " + + value); + return null; + } + ncs.setIncrement(increment.intValue()); + } + cs = ncs; } return new PrimitiveChoiceSet<?>[] { cs }; } Modified: branches/cdom/code/src/java/plugin/lsttokens/pcclass/LevelsperfeatToken.java =================================================================== --- branches/cdom/code/src/java/plugin/lsttokens/pcclass/LevelsperfeatToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/lsttokens/pcclass/LevelsperfeatToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -58,9 +58,9 @@ try { Integer in = Integer.valueOf(value); - if (in.intValue() <= 0) + if (in.intValue() < 0) { - Logging.errorPrint(getTokenName() + " must be an integer > 0"); + Logging.errorPrint(getTokenName() + " must be an integer >= 0"); return false; } context.getObjectContext().put(pcc, IntegerKey.LEVELS_PER_FEAT, in); Modified: branches/cdom/code/src/java/plugin/qualifier/armorprof/EquipmentToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/armorprof/EquipmentToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/armorprof/EquipmentToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -19,6 +19,7 @@ import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.CDOMSimpleSingleRef; import pcgen.cdom.enumeration.ListKey; @@ -31,6 +32,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class EquipmentToken implements ChooseLstQualifierToken<ArmorProf> { @@ -86,8 +88,15 @@ } public boolean initialize(LoadContext context, Class<ArmorProf> cl, - String value) + String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = Modified: branches/cdom/code/src/java/plugin/qualifier/pobject/AllToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/pobject/AllToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/pobject/AllToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -19,6 +19,7 @@ import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.helper.PrimitiveChoiceFilter; import pcgen.core.PObject; @@ -26,6 +27,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstGlobalQualifierToken; +import pcgen.util.Logging; public class AllToken<T extends PObject> implements ChooseLstGlobalQualifierToken<T> @@ -40,8 +42,15 @@ return "ALL"; } - public boolean initialize(LoadContext context, Class<T> cl, String value) + public boolean initialize(LoadContext context, Class<T> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (cl == null) { throw new IllegalArgumentException(); Modified: branches/cdom/code/src/java/plugin/qualifier/pobject/PCToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/pobject/PCToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/pobject/PCToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.helper.PrimitiveChoiceFilter; import pcgen.core.PObject; @@ -27,6 +28,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstGlobalQualifierToken; +import pcgen.util.Logging; public class PCToken<T extends PObject> implements ChooseLstGlobalQualifierToken<T> @@ -41,8 +43,15 @@ return "PC"; } - public boolean initialize(LoadContext context, Class<T> cl, String value) + public boolean initialize(LoadContext context, Class<T> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (cl == null) { throw new IllegalArgumentException(); Modified: branches/cdom/code/src/java/plugin/qualifier/pobject/QualifiedToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/pobject/QualifiedToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/pobject/QualifiedToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -19,6 +19,7 @@ import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.helper.PrimitiveChoiceFilter; import pcgen.core.PObject; @@ -26,6 +27,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstGlobalQualifierToken; +import pcgen.util.Logging; public class QualifiedToken<T extends PObject> implements ChooseLstGlobalQualifierToken<T> @@ -40,8 +42,15 @@ return "QUALIFIED"; } - public boolean initialize(LoadContext context, Class<T> cl, String value) + public boolean initialize(LoadContext context, Class<T> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (cl == null) { throw new IllegalArgumentException(); Modified: branches/cdom/code/src/java/plugin/qualifier/pobject/UniqueToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/pobject/UniqueToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/pobject/UniqueToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.helper.PrimitiveChoiceFilter; import pcgen.core.PObject; @@ -27,6 +28,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstGlobalQualifierToken; +import pcgen.util.Logging; public class UniqueToken<T extends PObject> implements ChooseLstGlobalQualifierToken<T> @@ -41,8 +43,15 @@ return "UNIQUE"; } - public boolean initialize(LoadContext context, Class<T> cl, String value) + public boolean initialize(LoadContext context, Class<T> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (cl == null) { throw new IllegalArgumentException(); Modified: branches/cdom/code/src/java/plugin/qualifier/shieldprof/EquipmentToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/shieldprof/EquipmentToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/shieldprof/EquipmentToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -19,6 +19,7 @@ import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.CDOMSimpleSingleRef; import pcgen.cdom.enumeration.ListKey; @@ -31,6 +32,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class EquipmentToken implements ChooseLstQualifierToken<ShieldProf> { @@ -87,8 +89,15 @@ } public boolean initialize(LoadContext context, Class<ShieldProf> cl, - String value) + String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = Modified: branches/cdom/code/src/java/plugin/qualifier/skill/AllowedToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/skill/AllowedToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/skill/AllowedToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -19,6 +19,7 @@ import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.helper.PrimitiveChoiceFilter; import pcgen.cdom.lists.PCGenLists; @@ -28,6 +29,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class AllowedToken implements ChooseLstQualifierToken<Skill> { @@ -44,8 +46,15 @@ return Skill.class; } - public boolean initialize(LoadContext context, Class<Skill> cl, String value) + public boolean initialize(LoadContext context, Class<Skill> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Modified: branches/cdom/code/src/java/plugin/qualifier/skill/ClassToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/skill/ClassToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/skill/ClassToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.AssociatedObject; import pcgen.cdom.enumeration.AssociationKey; @@ -32,6 +33,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class ClassToken implements ChooseLstQualifierToken<Skill> { @@ -59,8 +61,15 @@ return sb.toString(); } - public boolean initialize(LoadContext context, Class<Skill> cl, String value) + public boolean initialize(LoadContext context, Class<Skill> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Modified: branches/cdom/code/src/java/plugin/qualifier/skill/CrossClassToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/skill/CrossClassToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/skill/CrossClassToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.AssociatedObject; import pcgen.cdom.enumeration.AssociationKey; @@ -32,6 +33,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class CrossClassToken implements ChooseLstQualifierToken<Skill> { @@ -59,8 +61,15 @@ return sb.toString(); } - public boolean initialize(LoadContext context, Class<Skill> cl, String value) + public boolean initialize(LoadContext context, Class<Skill> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Modified: branches/cdom/code/src/java/plugin/qualifier/skill/ExclusiveToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/skill/ExclusiveToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/skill/ExclusiveToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.AssociatedObject; import pcgen.cdom.enumeration.AssociationKey; @@ -32,6 +33,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class ExclusiveToken implements ChooseLstQualifierToken<Skill> { @@ -59,8 +61,15 @@ return sb.toString(); } - public boolean initialize(LoadContext context, Class<Skill> cl, String value) + public boolean initialize(LoadContext context, Class<Skill> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Modified: branches/cdom/code/src/java/plugin/qualifier/skill/NoRankToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/skill/NoRankToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/skill/NoRankToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.helper.PrimitiveChoiceFilter; import pcgen.core.PlayerCharacter; @@ -27,6 +28,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class NoRankToken implements ChooseLstQualifierToken<Skill> { @@ -54,8 +56,15 @@ return sb.toString(); } - public boolean initialize(LoadContext context, Class<Skill> cl, String value) + public boolean initialize(LoadContext context, Class<Skill> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Modified: branches/cdom/code/src/java/plugin/qualifier/skill/NotClassToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/skill/NotClassToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/skill/NotClassToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.AssociatedObject; import pcgen.cdom.enumeration.AssociationKey; @@ -32,6 +33,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class NotClassToken implements ChooseLstQualifierToken<Skill> { @@ -59,8 +61,15 @@ return sb.toString(); } - public boolean initialize(LoadContext context, Class<Skill> cl, String value) + public boolean initialize(LoadContext context, Class<Skill> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Modified: branches/cdom/code/src/java/plugin/qualifier/skill/NotCrossClassToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/skill/NotCrossClassToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/skill/NotCrossClassToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.AssociatedObject; import pcgen.cdom.enumeration.AssociationKey; @@ -32,6 +33,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class NotCrossClassToken implements ChooseLstQualifierToken<Skill> { @@ -59,8 +61,15 @@ return sb.toString(); } - public boolean initialize(LoadContext context, Class<Skill> cl, String value) + public boolean initialize(LoadContext context, Class<Skill> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Modified: branches/cdom/code/src/java/plugin/qualifier/skill/NotExclusiveToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/skill/NotExclusiveToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/skill/NotExclusiveToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.AssociatedObject; import pcgen.cdom.enumeration.AssociationKey; @@ -32,6 +33,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class NotExclusiveToken implements ChooseLstQualifierToken<Skill> { @@ -59,8 +61,15 @@ return sb.toString(); } - public boolean initialize(LoadContext context, Class<Skill> cl, String value) + public boolean initialize(LoadContext context, Class<Skill> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Added: branches/cdom/code/src/java/plugin/qualifier/skill/RanksToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/skill/RanksToken.java (rev 0) +++ branches/cdom/code/src/java/plugin/qualifier/skill/RanksToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -0,0 +1,108 @@ +/* + * Copyright 2007 (C) Thomas Parker <th...@us...> + * + * 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 + */ +package plugin.qualifier.skill; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.logging.Level; + +import pcgen.cdom.helper.PrimitiveChoiceFilter; +import pcgen.core.PlayerCharacter; +import pcgen.core.Skill; +import pcgen.persistence.LoadContext; +import pcgen.persistence.lst.ChooseLoader; +import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; + +public class RanksToken implements ChooseLstQualifierToken<Skill> +{ + + private PrimitiveChoiceFilter<Skill> pcs = null; + + private int ranks; + + public String getTokenName() + { + return "RANKS"; + } + + public Class<Skill> getChoiceClass() + { + return Skill.class; + } + + public String getLSTformat() + { + StringBuilder sb = new StringBuilder(); + sb.append(getTokenName()); + if (pcs != null) + { + sb.append('[').append(pcs.getLSTformat()).append(']'); + } + return sb.toString(); + } + + public boolean initialize(LoadContext context, Class<Skill> cl, String condition, String value) + { + if (condition == null) + { + Logging.addParseMessage(Level.SEVERE, getTokenName() + + " Must be a conditional Qualifier, e.g. " + + getTokenName() + "=10"); + return false; + } + try + { + ranks = Integer.parseInt(condition); + } + catch (NumberFormatException e) + { + Logging.addParseMessage(Level.SEVERE, getTokenName() + + " Must be a numerical conditional Qualifier, e.g. " + + getTokenName() + "=10 ... Offending value: " + condition); + return false; + } + if (value != null) + { + pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); + return pcs != null; + } + return true; + } + + public Set<Skill> getSet(PlayerCharacter pc) + { + Set<Skill> skillSet = + new HashSet<Skill>(pc.getContext().ref + .getConstructedCDOMObjects(Skill.class)); + List<Skill> skillList = + pc.getActiveGraph().getGrantedNodeList(Skill.class); + if (skillList != null) + { + for (Skill sk : skillList) + { + if (pc.getTotalWeight(sk) >= ranks) + { + skillSet.add(sk); + } + } + } + return skillSet; + } +} Modified: branches/cdom/code/src/java/plugin/qualifier/stat/RemoveToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/stat/RemoveToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/stat/RemoveToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -19,6 +19,7 @@ import java.util.Iterator; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.helper.PrimitiveChoiceFilter; import pcgen.core.PCStat; @@ -26,6 +27,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class RemoveToken implements ChooseLstQualifierToken<PCStat> { @@ -69,8 +71,15 @@ return sb.toString(); } - public boolean initialize(LoadContext context, Class<PCStat> cl, String value) + public boolean initialize(LoadContext context, Class<PCStat> cl, String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Modified: branches/cdom/code/src/java/plugin/qualifier/weaponprof/DeityWeaponToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/weaponprof/DeityWeaponToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/weaponprof/DeityWeaponToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -20,6 +20,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.CDOMSimpleSingleRef; import pcgen.cdom.enumeration.ListKey; @@ -30,6 +31,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class DeityWeaponToken implements ChooseLstQualifierToken<WeaponProf> { @@ -81,8 +83,15 @@ } public boolean initialize(LoadContext context, Class<WeaponProf> cl, - String value) + String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = ChooseLoader.getPrimitiveChoiceFilter(context, cl, value); Modified: branches/cdom/code/src/java/plugin/qualifier/weaponprof/EquipmentToken.java =================================================================== --- branches/cdom/code/src/java/plugin/qualifier/weaponprof/EquipmentToken.java 2008-01-17 01:04:25 UTC (rev 4946) +++ branches/cdom/code/src/java/plugin/qualifier/weaponprof/EquipmentToken.java 2008-01-17 02:01:19 UTC (rev 4947) @@ -19,6 +19,7 @@ import java.util.HashSet; import java.util.Set; +import java.util.logging.Level; import pcgen.cdom.base.CDOMSimpleSingleRef; import pcgen.cdom.enumeration.ListKey; @@ -31,6 +32,7 @@ import pcgen.persistence.LoadContext; import pcgen.persistence.lst.ChooseLoader; import pcgen.persistence.lst.ChooseLstQualifierToken; +import pcgen.util.Logging; public class EquipmentToken implements ChooseLstQualifierToken<WeaponProf> { @@ -93,8 +95,15 @@ } public boolean initialize(LoadContext context, Class<WeaponProf> cl, - String value) + String condition, String value) { + if (condition != null) + { + Logging.addParseMessage(Level.SEVERE, "Cannot make " + + getTokenName() + + " into a conditional Qualifier, remove ="); + return false; + } if (value != null) { pcs = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |