From: <th...@us...> - 2010-07-10 19:33:13
|
Revision: 12505 http://pcgen.svn.sourceforge.net/pcgen/?rev=12505&view=rev Author: thpr Date: 2010-07-10 19:33:06 +0000 (Sat, 10 Jul 2010) Log Message: ----------- First step in Skill Cost Facet system. Moves positive aspects of CLASSES: token from Skill LST into master list system Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/ListKey.java Trunk/pcgen/code/src/java/pcgen/core/Skill.java Trunk/pcgen/code/src/java/pcgen/core/analysis/SkillCostCalc.java Trunk/pcgen/code/src/java/pcgen/gui/editor/EditorMainForm.java Trunk/pcgen/code/src/java/pcgen/rules/context/AbstractListContext.java Trunk/pcgen/code/src/java/pcgen/rules/context/ConsolidatedListCommitStrategy.java Trunk/pcgen/code/src/java/plugin/lsttokens/skill/ClassesToken.java Trunk/pcgen/code/src/test/pcgen/core/PlayerCharacterTest.java Trunk/pcgen/code/src/test/pcgen/core/prereq/PreMultTest.java Trunk/pcgen/code/src/test/pcgen/core/prereq/PreSkillTest.java Trunk/pcgen/code/src/test/pcgen/io/ExportHandlerTest.java Trunk/pcgen/code/src/test/plugin/exporttokens/SkillTokenTest.java Trunk/pcgen/code/src/utest/plugin/lsttokens/skill/ClassesTokenTest.java Modified: Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/ListKey.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/ListKey.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/ListKey.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -162,7 +162,6 @@ public static final ListKey<CampaignSourceEntry> FILE_ARMOR_PROF = new ListKey<CampaignSourceEntry>(); public static final ListKey<CampaignSourceEntry> FILE_SHIELD_PROF = new ListKey<CampaignSourceEntry>(); public static final ListKey<CDOMReference<WeaponProf>> DEITYWEAPON = new ListKey<CDOMReference<WeaponProf>>(); - public static final ListKey<CDOMReference<ClassSkillList>> CLASSES = new ListKey<CDOMReference<ClassSkillList>>(); public static final ListKey<CDOMReference<ClassSkillList>> PREVENTED_CLASSES = new ListKey<CDOMReference<ClassSkillList>>(); public static final ListKey<RaceSubType> RACESUBTYPE = new ListKey<RaceSubType>(); public static final ListKey<RaceSubType> REMOVED_RACESUBTYPE = new ListKey<RaceSubType>(); Modified: Trunk/pcgen/code/src/java/pcgen/core/Skill.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Skill.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/java/pcgen/core/Skill.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -37,4 +37,19 @@ PCStat keyStat = get(ObjectKey.KEY_STAT); return keyStat == null ? "" : keyStat.getAbb(); } + + @Override + public boolean equals(final Object obj) + { + return obj instanceof Skill + && getKeyName().equals(((Skill) obj).getKeyName()) + && isCDOMEqual(((Skill) obj)); + } + + @Override + public int hashCode() + { + return getKeyName().hashCode(); + } + } Modified: Trunk/pcgen/code/src/java/pcgen/core/analysis/SkillCostCalc.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/analysis/SkillCostCalc.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/java/pcgen/core/analysis/SkillCostCalc.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -26,6 +26,7 @@ import pcgen.cdom.base.AssociatedPrereqObject; import pcgen.cdom.base.CDOMReference; +import pcgen.cdom.base.MasterListInterface; import pcgen.cdom.enumeration.AssociationKey; import pcgen.cdom.enumeration.AssociationListKey; import pcgen.cdom.enumeration.ListKey; @@ -36,6 +37,7 @@ import pcgen.core.Domain; import pcgen.core.Equipment; import pcgen.core.EquipmentModifier; +import pcgen.core.Globals; import pcgen.core.PCClass; import pcgen.core.PCTemplate; import pcgen.core.PObject; @@ -166,20 +168,29 @@ } } } - List<CDOMReference<ClassSkillList>> classes = sk - .getListFor(ListKey.CLASSES); - if (classes != null) + + List<ClassSkillList> skillLists = ClassSkillApplication + .getClassSkillList(aPC, aClass); + MasterListInterface masterLists = Globals.getMasterLists(); + for (CDOMReference<ClassSkillList> ref : masterLists.getActiveLists()) { - for (CDOMReference<ClassSkillList> ref : classes) + boolean found = false; + for (ClassSkillList csl : skillLists) { - for (ClassSkillList csl : ClassSkillApplication.getClassSkillList(aPC, aClass)) + if (ref.contains(csl)) { - if (ref.contains(csl)) - { - return true; - } + found = true; + break; } } + if (found) + { + Collection<AssociatedPrereqObject> assoc = masterLists.getAssociations(ref, sk); + if (assoc != null && !assoc.isEmpty()) + { + return true; + } + } } return false; } Modified: Trunk/pcgen/code/src/java/pcgen/gui/editor/EditorMainForm.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/editor/EditorMainForm.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/java/pcgen/gui/editor/EditorMainForm.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -111,6 +111,7 @@ import pcgen.persistence.lst.prereq.PreParserFactory; import pcgen.persistence.lst.prereq.PrerequisiteParserInterface; import pcgen.rules.context.AssociatedChanges; +import pcgen.rules.context.Changes; import pcgen.rules.context.LoadContext; import pcgen.util.Logging; import pcgen.util.PropertyFactory; @@ -846,7 +847,9 @@ } } - ((Skill) thisPObject).removeListFor(ListKey.CLASSES); + Globals.getContext().getListContext().clearAllMasterLists( + "CLASSES", thisPObject); + context.commit(); ((Skill) thisPObject).removeListFor(ListKey.PREVENTED_CLASSES); sel = pnlClasses.getSelectedList2(); @@ -859,15 +862,9 @@ CDOMDirectSingleRef.getRef(cl)); } - sel = pnlClasses.getSelectedList(); - - for (int i = 0; i < sel.length; ++i) + for (Object o : pnlClasses.getSelectedList()) { - ClassSkillList cl = Globals.getContext().ref - .silentlyGetConstructedCDOMObject(ClassSkillList.class, - sel[i].toString()); - ((Skill) thisPObject).addToListFor(ListKey.CLASSES, - CDOMDirectSingleRef.getRef(cl)); + context.unconditionallyProcess(thisPObject, "CLASSES", o.toString()); } break; @@ -1782,11 +1779,13 @@ availableSkillList.add(aClass.getKeyName()); } - Collection<CDOMReference<ClassSkillList>> added = ((Skill) thisPObject) - .getListFor(ListKey.CLASSES); - if (added != null) + Changes<CDOMReference> masterChanges = Globals.getContext().getListContext() + .getMasterListChanges("CLASSES", thisPObject, + ClassSkillList.class); + Collection<CDOMReference> add = masterChanges.getAdded(); + if (add != null) { - for (CDOMReference<ClassSkillList> ref : added) + for (CDOMReference<ClassSkillList> ref : add) { String className = ref.getLSTformat(); selectedSkillList.add(className); Modified: Trunk/pcgen/code/src/java/pcgen/rules/context/AbstractListContext.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/rules/context/AbstractListContext.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/java/pcgen/rules/context/AbstractListContext.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -24,6 +24,7 @@ import java.util.IdentityHashMap; import java.util.List; import java.util.Set; +import java.util.TreeSet; import pcgen.base.util.DoubleKeyMap; import pcgen.base.util.DoubleKeyMapToList; @@ -41,6 +42,7 @@ import pcgen.cdom.base.PrereqObject; import pcgen.cdom.base.SimpleAssociatedObject; import pcgen.cdom.enumeration.AssociationKey; +import pcgen.cdom.reference.ReferenceUtilities; import pcgen.core.Globals; public abstract class AbstractListContext @@ -449,7 +451,8 @@ CDOMObject owner, Class<? extends CDOMList<?>> cl) { OwnerURI lo = new OwnerURI(extractURI, owner); - ArrayList<CDOMReference> list = new ArrayList<CDOMReference>(); + TreeSet<CDOMReference> list = new TreeSet( + ReferenceUtilities.REFERENCE_SORTER); Set<CDOMReference<? extends CDOMList<?>>> set = positiveMasterMap .getKeySet(); if (set != null) Modified: Trunk/pcgen/code/src/java/pcgen/rules/context/ConsolidatedListCommitStrategy.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/rules/context/ConsolidatedListCommitStrategy.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/java/pcgen/rules/context/ConsolidatedListCommitStrategy.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -22,6 +22,7 @@ import java.util.Collection; import java.util.List; import java.util.Set; +import java.util.TreeSet; import pcgen.base.util.DoubleKeyMapToList; import pcgen.base.util.MapToList; @@ -35,6 +36,7 @@ import pcgen.cdom.base.PrereqObject; import pcgen.cdom.base.SimpleAssociatedObject; import pcgen.cdom.enumeration.AssociationKey; +import pcgen.cdom.reference.ReferenceUtilities; public class ConsolidatedListCommitStrategy implements ListCommitStrategy, MasterListInterface @@ -90,7 +92,8 @@ public Changes<CDOMReference> getMasterListChanges(String tokenName, CDOMObject owner, Class<? extends CDOMList<?>> cl) { - ArrayList<CDOMReference> list = new ArrayList<CDOMReference>(); + TreeSet<CDOMReference> set = new TreeSet( + ReferenceUtilities.REFERENCE_SORTER); LIST: for (CDOMReference<? extends CDOMList<?>> ref : masterList .getKeySet()) { @@ -108,13 +111,13 @@ && tokenName.equals(assoc .getAssociation(AssociationKey.TOKEN))) { - list.add(ref); + set.add(ref); continue LIST; } } } } - return new CollectionChanges<CDOMReference>(list, null, false); + return new CollectionChanges<CDOMReference>(set, null, false); } public void clearAllMasterLists(String tokenName, CDOMObject owner) Modified: Trunk/pcgen/code/src/java/plugin/lsttokens/skill/ClassesToken.java =================================================================== --- Trunk/pcgen/code/src/java/plugin/lsttokens/skill/ClassesToken.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/java/plugin/lsttokens/skill/ClassesToken.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -122,7 +122,7 @@ private void addSkillAllowed(LoadContext context, Skill skill, CDOMReference<ClassSkillList> ref) { - context.obj.addToList(skill, ListKey.CLASSES, ref); + context.list.addToMasterList(getTokenName(), skill, ref, skill); } private void addSkillNotAllowed(LoadContext context, Skill skill, @@ -133,8 +133,8 @@ public String[] unparse(LoadContext context, Skill skill) { - Changes<CDOMReference<ClassSkillList>> masterChanges = context.obj - .getListChanges(skill, ListKey.CLASSES); + Changes<CDOMReference> masterChanges = context.getListContext() + .getMasterListChanges(getTokenName(), skill, SKILLLIST_CLASS); Changes<CDOMReference<ClassSkillList>> removedChanges = context.obj .getListChanges(skill, ListKey.PREVENTED_CLASSES); if (masterChanges.includesGlobalClear() @@ -151,12 +151,11 @@ + " does not support .CLEAR."); return null; } - Collection<CDOMReference<ClassSkillList>> added = masterChanges - .getAdded(); + Collection<CDOMReference> added = masterChanges.getAdded(); Collection<CDOMReference<ClassSkillList>> prevented = removedChanges .getAdded(); StringBuilder sb = new StringBuilder(); - if (added == null || added.isEmpty()) + if (added.isEmpty()) { if (prevented == null || prevented.isEmpty()) { Modified: Trunk/pcgen/code/src/test/pcgen/core/PlayerCharacterTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/core/PlayerCharacterTest.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/test/pcgen/core/PlayerCharacterTest.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -53,7 +53,6 @@ import pcgen.cdom.enumeration.VariableKey; import pcgen.cdom.helper.StatLock; import pcgen.cdom.inst.PCClassLevel; -import pcgen.cdom.list.ClassSkillList; import pcgen.cdom.list.CompanionList; import pcgen.cdom.reference.CDOMDirectSingleRef; import pcgen.cdom.reference.CDOMSimpleSingleRef; @@ -613,24 +612,24 @@ Skill guiSkill = new Skill(); Skill outputSkill = new Skill(); Skill defaultSkill = new Skill(); - ClassSkillList csl = new ClassSkillList(); - csl.put(StringKey.NAME, "MyClass"); - guiSkill.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + LoadContext context = Globals.getContext(); + + context.unconditionallyProcess(guiSkill, "CLASSES", "MyClass"); guiSkill.setName("GUI"); guiSkill.addToListFor(ListKey.TYPE, Type.getConstant("INT")); guiSkill.put(ObjectKey.VISIBILITY, Visibility.DISPLAY_ONLY); SkillRankControl.modRanks(1.0, pcClass, true, pc, guiSkill); pc.addSkill(guiSkill); - outputSkill.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(outputSkill, "CLASSES", "MyClass"); outputSkill.setName("Output"); outputSkill.addToListFor(ListKey.TYPE, Type.getConstant("INT")); outputSkill.put(ObjectKey.VISIBILITY, Visibility.OUTPUT_ONLY); SkillRankControl.modRanks(1.0, pcClass, true, pc, outputSkill); pc.addSkill(outputSkill); - defaultSkill.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(defaultSkill, "CLASSES", "MyClass"); defaultSkill.setName("Default"); defaultSkill.addToListFor(ListKey.TYPE, Type.getConstant("INT")); defaultSkill.put(ObjectKey.VISIBILITY, Visibility.DEFAULT); Modified: Trunk/pcgen/code/src/test/pcgen/core/prereq/PreMultTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/core/prereq/PreMultTest.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/test/pcgen/core/prereq/PreMultTest.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -30,8 +30,6 @@ import pcgen.cdom.enumeration.ListKey; import pcgen.cdom.enumeration.StringKey; import pcgen.cdom.enumeration.Type; -import pcgen.cdom.list.ClassSkillList; -import pcgen.cdom.reference.CDOMDirectSingleRef; import pcgen.core.Ability; import pcgen.core.AbilityCategory; import pcgen.core.Globals; @@ -86,11 +84,8 @@ myClass = new PCClass(); myClass.setName("My Class"); - ClassSkillList csl = new ClassSkillList(); - csl.put(StringKey.NAME, "MyClass"); - knowledge = new Skill(); - knowledge.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + Globals.getContext().unconditionallyProcess(knowledge, "CLASSES", "My Class"); knowledge.setName("KNOWLEDGE (ARCANA)"); TestHelper.addType(knowledge, "KNOWLEDGE.INT"); character.addSkill(knowledge); @@ -251,11 +246,8 @@ assertFalse("Should not pass 2 knowledge skill test with 1 skill", passes); - ClassSkillList csl = new ClassSkillList(); - csl.put(StringKey.NAME, "MyClass"); - final Skill extraKnow = new Skill(); - extraKnow.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + Globals.getContext().unconditionallyProcess(extraKnow, "CLASSES", "MyClass"); extraKnow.setName("KNOWLEDGE (RELIGION)"); TestHelper.addType(extraKnow, "KNOWLEDGE.INT"); character.addSkill(extraKnow); @@ -266,6 +258,5 @@ character.removeSkill(knowledge); character.calcActiveBonuses(); - } } Modified: Trunk/pcgen/code/src/test/pcgen/core/prereq/PreSkillTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/core/prereq/PreSkillTest.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/test/pcgen/core/prereq/PreSkillTest.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -33,9 +33,7 @@ import junit.textui.TestRunner; import pcgen.AbstractCharacterTestCase; import pcgen.cdom.enumeration.ListKey; -import pcgen.cdom.enumeration.StringKey; import pcgen.cdom.enumeration.Type; -import pcgen.cdom.list.ClassSkillList; import pcgen.cdom.reference.CDOMDirectSingleRef; import pcgen.core.Globals; import pcgen.core.PCClass; @@ -43,6 +41,7 @@ import pcgen.core.Skill; import pcgen.core.analysis.SkillRankControl; import pcgen.persistence.lst.prereq.PreParserFactory; +import pcgen.rules.context.LoadContext; import pcgen.util.TestHelper; public class PreSkillTest extends AbstractCharacterTestCase @@ -80,63 +79,64 @@ final PCClass myClass = new PCClass(); myClass.setName("My Class"); - ClassSkillList csl = new ClassSkillList(); - csl.put(StringKey.NAME, "MyClass"); + LoadContext context = Globals.getContext(); knowledge = new Skill(); - knowledge.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(knowledge, "CLASSES", "MyClass"); knowledge.setName("KNOWLEDGE (ARCANA)"); TestHelper.addType(knowledge, "KNOWLEDGE.INT"); - Globals.getContext().ref.importObject(knowledge); + context.ref.importObject(knowledge); character.addSkill(knowledge); SkillRankControl.modRanks(8.0, myClass, true, character, knowledge); tumble = new Skill(); - tumble.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(tumble, "CLASSES", "MyClass"); tumble.setName("Tumble"); tumble.addToListFor(ListKey.TYPE, Type.getConstant("DEX")); - Globals.getContext().ref.importObject(tumble); + context.ref.importObject(tumble); character.addSkill(tumble); SkillRankControl.modRanks(8.0, myClass, true, character, tumble); balance = new Skill(); - balance.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(balance, "CLASSES", "MyClass"); balance.setName("Balance"); balance.addToListFor(ListKey.TYPE, Type.getConstant("DEX")); - Globals.getContext().ref.importObject(balance); + context.ref.importObject(balance); character.addSkill(balance); SkillRankControl.modRanks(4.0, myClass, true, character, balance); target = new Skill(); - target.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(target, "CLASSES", "MyClass"); target.setName("Target"); target.addToListFor(ListKey.TYPE, Type.getConstant("STR")); - Globals.getContext().ref.importObject(target); + context.ref.importObject(target); target2 = new Skill(); - target2.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(target2, "CLASSES", "MyClass"); target2.setName("Target2"); target2.addToListFor(ListKey.TYPE, Type.getConstant("STR")); - Globals.getContext().ref.importObject(target2); + context.ref.importObject(target2); fake = new Skill(); - fake.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(fake, "CLASSES", "MyClass"); fake.setName("Fake"); fake.addToListFor(ListKey.TYPE, Type.getConstant("WIS")); fake.addToListFor(ListKey.SERVES_AS_SKILL, CDOMDirectSingleRef.getRef(target)); fake.addToListFor(ListKey.SERVES_AS_SKILL, CDOMDirectSingleRef.getRef(target2)); - Globals.getContext().ref.importObject(fake); + context.ref.importObject(fake); character.addSkill(fake); SkillRankControl.modRanks(6.0, myClass, true, character, fake); fake2 = new Skill(); - fake2.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(fake2, "CLASSES", "MyClass"); fake2.setName("Fake 2"); fake2.addToListFor(ListKey.TYPE, Type.getConstant("INT")); - Globals.getContext().ref.importObject(fake2); + context.ref.importObject(fake2); character.addSkill(fake2); SkillRankControl.modRanks(8.0, myClass, true, character, fake2); + context.ref.buildDerivedObjects(); + context.resolveReferences(); } /* (non-Javadoc) Modified: Trunk/pcgen/code/src/test/pcgen/io/ExportHandlerTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/io/ExportHandlerTest.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/test/pcgen/io/ExportHandlerTest.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -39,11 +39,8 @@ import pcgen.cdom.enumeration.FormulaKey; import pcgen.cdom.enumeration.ListKey; import pcgen.cdom.enumeration.ObjectKey; -import pcgen.cdom.enumeration.StringKey; import pcgen.cdom.enumeration.Type; import pcgen.cdom.enumeration.VariableKey; -import pcgen.cdom.list.ClassSkillList; -import pcgen.cdom.reference.CDOMDirectSingleRef; import pcgen.core.Ability; import pcgen.core.AbilityCategory; import pcgen.core.Equipment; @@ -59,6 +56,7 @@ import pcgen.core.bonus.Bonus; import pcgen.core.bonus.BonusObj; import pcgen.core.character.EquipSet; +import pcgen.rules.context.LoadContext; import pcgen.util.TestHelper; /** @@ -137,13 +135,12 @@ myClass.put(FormulaKey.START_SKILL_POINTS, FormulaFactory.getFormulaFor(3)); character.incrementClassLevel(5, myClass, true); - ClassSkillList csl = new ClassSkillList(); - csl.put(StringKey.NAME, "MyClass"); + LoadContext context = Globals.getContext(); // Skills knowledge = new Skill[2]; knowledge[0] = new Skill(); - knowledge[0].addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(knowledge[0], "CLASSES", "MyClass"); knowledge[0].setName("KNOWLEDGE (ARCANA)"); TestHelper.addType(knowledge[0], "KNOWLEDGE.INT"); knowledge[0].put(ObjectKey.KEY_STAT, intel); @@ -153,7 +150,7 @@ SkillRankControl.modRanks(8.0, myClass, true, character, knowledge[0]); knowledge[1] = new Skill(); - knowledge[1].addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(knowledge[1], "CLASSES", "MyClass"); knowledge[1].setName("KNOWLEDGE (RELIGION)"); TestHelper.addType(knowledge[1], "KNOWLEDGE.INT"); knowledge[1].put(ObjectKey.KEY_STAT, intel); @@ -163,7 +160,7 @@ SkillRankControl.modRanks(5.0, myClass, true, character, knowledge[1]); tumble = new Skill(); - tumble.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(tumble, "CLASSES", "MyClass"); tumble.setName("Tumble"); tumble.addToListFor(ListKey.TYPE, Type.getConstant("DEX")); tumble.put(ObjectKey.KEY_STAT, dex); @@ -173,7 +170,7 @@ SkillRankControl.modRanks(7.0, myClass, true, character, tumble); balance = new Skill(); - balance.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(balance, "CLASSES", "MyClass"); balance.setName("Balance"); balance.addToListFor(ListKey.TYPE, Type.getConstant("DEX")); balance.put(ObjectKey.KEY_STAT, dex); @@ -202,6 +199,9 @@ armor = new Equipment(); armor.setName("TestArmorSuit"); TestHelper.addType(armor, "armor.suit"); + + context.ref.buildDerivedObjects(); + context.resolveReferences(); } /** Modified: Trunk/pcgen/code/src/test/plugin/exporttokens/SkillTokenTest.java =================================================================== --- Trunk/pcgen/code/src/test/plugin/exporttokens/SkillTokenTest.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/test/plugin/exporttokens/SkillTokenTest.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -30,10 +30,7 @@ import pcgen.cdom.enumeration.FormulaKey; import pcgen.cdom.enumeration.ListKey; import pcgen.cdom.enumeration.ObjectKey; -import pcgen.cdom.enumeration.StringKey; import pcgen.cdom.enumeration.Type; -import pcgen.cdom.list.ClassSkillList; -import pcgen.cdom.reference.CDOMDirectSingleRef; import pcgen.core.GameMode; import pcgen.core.Globals; import pcgen.core.LevelInfo; @@ -46,6 +43,7 @@ import pcgen.core.bonus.Bonus; import pcgen.core.bonus.BonusObj; import pcgen.io.exporttoken.SkillToken; +import pcgen.rules.context.LoadContext; import pcgen.util.TestHelper; /** @@ -121,40 +119,39 @@ myClass.put(FormulaKey.START_SKILL_POINTS, FormulaFactory.getFormulaFor(3)); character.incrementClassLevel(5, myClass, true); - ClassSkillList csl = new ClassSkillList(); - csl.put(StringKey.NAME, "MyClass"); + LoadContext context = Globals.getContext(); //Skills knowledge = new Skill[2]; knowledge[0] = new Skill(); - knowledge[0].addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(knowledge[0], "CLASSES", "MyClass"); knowledge[0].setName("KNOWLEDGE (ARCANA)"); TestHelper.addType(knowledge[0], "KNOWLEDGE.INT"); knowledge[0].put(ObjectKey.KEY_STAT, intel); - Globals.getContext().ref.importObject(knowledge[0]); + context.ref.importObject(knowledge[0]); character.addSkill(knowledge[0]); SkillRankControl.modRanks(8.0, myClass, true, character, knowledge[0]); knowledge[1] = new Skill(); - knowledge[1].addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(knowledge[1], "CLASSES", "MyClass"); knowledge[1].setName("KNOWLEDGE (RELIGION)"); TestHelper.addType(knowledge[1], "KNOWLEDGE.INT"); knowledge[1].put(ObjectKey.KEY_STAT, intel); - Globals.getContext().ref.importObject(knowledge[1]); + context.ref.importObject(knowledge[1]); character.addSkill(knowledge[1]); SkillRankControl.modRanks(5.0, myClass, true, character, knowledge[1]); tumble = new Skill(); - tumble.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(tumble, "CLASSES", "MyClass"); tumble.setName("Tumble"); tumble.addToListFor(ListKey.TYPE, Type.getConstant("DEX")); tumble.put(ObjectKey.KEY_STAT, dex); - Globals.getContext().ref.importObject(tumble); + context.ref.importObject(tumble); character.addSkill(tumble); SkillRankControl.modRanks(7.0, myClass, true, character, tumble); balance = new Skill(); - balance.addToListFor(ListKey.CLASSES, CDOMDirectSingleRef.getRef(csl)); + context.unconditionallyProcess(balance, "CLASSES", "MyClass"); balance.setName("Balance"); balance.addToListFor(ListKey.TYPE, Type.getConstant("DEX")); balance.put(ObjectKey.KEY_STAT, dex); @@ -164,10 +161,13 @@ { balance.addToListFor(ListKey.BONUS, aBonus); } - Globals.getContext().ref.importObject(balance); + context.ref.importObject(balance); character.addSkill(balance); SkillRankControl.modRanks(4.0, myClass, true, character, balance); + context.ref.buildDerivedObjects(); + context.resolveReferences(); + character.calcActiveBonuses(); } Modified: Trunk/pcgen/code/src/utest/plugin/lsttokens/skill/ClassesTokenTest.java =================================================================== --- Trunk/pcgen/code/src/utest/plugin/lsttokens/skill/ClassesTokenTest.java 2010-07-10 14:26:49 UTC (rev 12504) +++ Trunk/pcgen/code/src/utest/plugin/lsttokens/skill/ClassesTokenTest.java 2010-07-10 19:33:06 UTC (rev 12505) @@ -32,7 +32,6 @@ import plugin.lsttokens.testsupport.CDOMTokenLoader; import plugin.lsttokens.testsupport.ConsolidationRule; import plugin.lsttokens.testsupport.TokenRegistration; -import plugin.lsttokens.testsupport.ConsolidationRule.AppendingConsolidation; import plugin.pretokens.parser.PreClassParser; public class ClassesTokenTest extends AbstractTokenTestCase<Skill> @@ -266,12 +265,19 @@ @Override protected String getLegalValue() { - return "Wizard|Bard"; + return "Bard|Wizard"; } @Override protected ConsolidationRule getConsolidationRule() { - return new AppendingConsolidation('|'); + return new ConsolidationRule() + { + + public String[] getAnswer(String... strings) + { + return new String[]{"Bard|Sorcerer|Wizard"}; + } + }; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |