From: <th...@us...> - 2007-01-06 18:20:33
|
Revision: 1893 http://svn.sourceforge.net/pcgen/?rev=1893&view=rev Author: thpr Date: 2007-01-06 10:20:21 -0800 (Sat, 06 Jan 2007) Log Message: ----------- Clean up PrereqObject semantic behavior Make some clone() calls specific Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/Campaign.java Trunk/pcgen/code/src/java/pcgen/core/Deity.java Trunk/pcgen/code/src/java/pcgen/core/Equipment.java Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java Trunk/pcgen/code/src/java/pcgen/core/PCClass.java Trunk/pcgen/code/src/java/pcgen/core/PCStat.java Trunk/pcgen/code/src/java/pcgen/core/PCTemplate.java Trunk/pcgen/code/src/java/pcgen/core/PObject.java Trunk/pcgen/code/src/java/pcgen/core/PrereqObject.java Trunk/pcgen/code/src/java/pcgen/core/Race.java Trunk/pcgen/code/src/java/pcgen/core/Skill.java Trunk/pcgen/code/src/java/pcgen/core/bonus/BonusObj.java Trunk/pcgen/code/src/java/pcgen/core/character/CompanionMod.java Trunk/pcgen/code/src/java/pcgen/core/levelability/LevelAbilityFeat.java Trunk/pcgen/code/src/java/pcgen/core/spell/Spell.java Trunk/pcgen/code/src/java/pcgen/gui/editor/EditorMainForm.java Trunk/pcgen/code/src/java/pcgen/gui/filter/FilterFactory.java Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoSkills.java Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoTempMod.java Trunk/pcgen/code/src/java/pcgen/gui/tabs/ability/AbilityModel.java Trunk/pcgen/code/src/java/pcgen/persistence/lst/output/prereq/PrerequisiteWriter.java Modified: Trunk/pcgen/code/src/java/pcgen/core/Campaign.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Campaign.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/Campaign.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -1271,7 +1271,7 @@ return ret; } - public Object clone() + public Campaign clone() { Campaign newCampaign = null; Modified: Trunk/pcgen/code/src/java/pcgen/core/Deity.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Deity.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/Deity.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -134,7 +134,7 @@ * * @return A clone of the Deity object. */ - public Object clone() + public Deity clone() { Deity d = null; Modified: Trunk/pcgen/code/src/java/pcgen/core/Equipment.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Equipment.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/Equipment.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -3268,7 +3268,7 @@ * * @return Description of the Return Value */ - public Object clone() + public Equipment clone() { Equipment eq = null; @@ -4040,10 +4040,8 @@ // // Since we've just resized the item, we need to modify any PRESIZE prerequisites // - for (int i = 0; i < getPreReqCount(); ++i) + for (Prerequisite aBonus : getPreReqList()) { - final Prerequisite aBonus = getPreReq(i); - if ("SIZE".equalsIgnoreCase(aBonus.getKind())) { final int iOldPre = Globals.sizeInt( aBonus.getOperand() ); @@ -4051,8 +4049,9 @@ if ((iNewSize >= 0) && (iNewSize <= (SettingsHandler.getGame().getSizeAdjustmentListSize() - 1))) { + // Note: This actually impacts the Prereq in this Equipment, since it is returned + // by reference from the get above ... thus no need to perform a set aBonus.setOperand( SettingsHandler.getGame().getSizeAdjustmentAtIndex(iNewSize).getAbbreviation() ); - setPreReq(i, aBonus); } } } Modified: Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/EquipmentModifier.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -192,14 +192,7 @@ if (aBonus.hasPreReqs()) { - try - { - newBonus.setPrereqList(aBonus.getClonePreReqList()); - } - catch (CloneNotSupportedException e) - { - // TODO Handle this? - } + newBonus.addPrerequisites(aBonus.getPreReqList()); } // call expandToken to handle prereqs @@ -812,7 +805,7 @@ * * @return a clone of the EquipmentModifier */ - public Object clone() + public EquipmentModifier clone() { EquipmentModifier aObj = null; @@ -1370,10 +1363,8 @@ return true; } - for (int i = 0; i < getPreReqCount(); ++i) + for (Prerequisite preReq : getPreReqList()) { - final Prerequisite preReq = getPreReq(i); - if ( "TYPE".equalsIgnoreCase(preReq.getKind()) && ( Modified: Trunk/pcgen/code/src/java/pcgen/core/PCClass.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/PCClass.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -3995,7 +3995,7 @@ } @Override - public Object clone() { + public PCClass clone() { PCClass aClass = null; try { Modified: Trunk/pcgen/code/src/java/pcgen/core/PCStat.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCStat.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/PCStat.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -124,7 +124,7 @@ return rolled; } - public Object clone() + public PCStat clone() { PCStat newObj = null; Modified: Trunk/pcgen/code/src/java/pcgen/core/PCTemplate.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PCTemplate.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/PCTemplate.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -1362,7 +1362,7 @@ * * @throws CloneNotSupportedException */ - public Object clone() throws CloneNotSupportedException + public PCTemplate clone() throws CloneNotSupportedException { final PCTemplate aTemp = (PCTemplate) super.clone(); aTemp.templates = new ArrayList<String>(templates); Modified: Trunk/pcgen/code/src/java/pcgen/core/PObject.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PObject.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/PObject.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -1,5 +1,4 @@ /* - * PObject.java * Copyright 2001 (C) Bryan McRoberts <mer...@ya...> * * This library is free software; you can redistribute it and/or @@ -1267,7 +1266,7 @@ * @throws CloneNotSupportedException */ @Override - public Object clone() throws CloneNotSupportedException + public PObject clone() throws CloneNotSupportedException { final PObject retVal = (PObject) super.clone(); retVal.stringChar = new HashMap<StringKey, String>(); @@ -2802,14 +2801,11 @@ txt.append(movement.toLSTString()); } - iCount = getPreReqCount(); - - if (iCount != 0) + if (hasPreReqs()) { final StringWriter writer = new StringWriter(); - for (int i = 0; i < iCount; ++i) + for (Prerequisite prereq : getPreReqList()) { - final Prerequisite prereq = getPreReq(i); final PrerequisiteWriter prereqWriter = new PrerequisiteWriter(); try { Modified: Trunk/pcgen/code/src/java/pcgen/core/PrereqObject.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PrereqObject.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/PrereqObject.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -111,36 +111,6 @@ } /** - * Replaces the prerequisite at the index specified. - * - * <p><b>Warning:</b> This method is dangerous and should not be used unless - * you know what you are doing. - * - * @param index The index into the list of prerequisites to replace. - * @param aPreReq The new prerequisite object. - * - * @throws IndexOutOfBoundsException if the index is out of range - * (index < 0 || index >= size()). - */ - final void setPreReq(final int index, final Prerequisite aPreReq) - { - thePrereqs.set(index, aPreReq); - } - - /** - * Set the prerequisite list to the list specified. - * - * <p><b>Warning:</b> This method is dangerous and should not be used unless - * you know what you are doing. - * - * @param aPrereqList The list of prerequisites to set. - */ - public void setPrereqList(final List<Prerequisite> aPrereqList) - { - thePrereqs = aPrereqList; - } - - /** * Tests if the specified PlayerCharacter passes all the prerequisites. * * @param aPC The <tt>PlayerCharacter</tt> to test. @@ -160,7 +130,7 @@ /** TODO This is rather foobar'd */ final public boolean passesPreReqToGain(final Equipment p, final PlayerCharacter aPC) { - if (getPreReqCount() == 0) + if (!hasPreReqs()) { return true; } @@ -168,20 +138,7 @@ return PrereqHandler.passesAll(thePrereqs, p, aPC); } - /** - * Get the pre requesite at an index - * - * @param i The index to retrieve. - * - * @return the <tt>Prerequesite</tt> at the index - */ - public final Prerequisite getPreReq(final int i) - { - return thePrereqs.get(i); - } - - /** * Get the list of <tt>Prerequesite</tt>s. * * @return An unmodifiable <tt>List</tt> of <tt>Prerequesite</tt>s or <tt> @@ -197,26 +154,6 @@ } /** - * Get a clone of the prerequisite list. - * - * <p>This is a deep copy of the prerequisite list, meaning that not only - * is the list itself cloned but all the prerequisites are cloned as well. - * - * @return A clone of the prerequisite list - * @throws CloneNotSupportedException if the prerequisite objects can't be - * cloned. - */ - public List<Prerequisite> getClonePreReqList() throws CloneNotSupportedException - { - final List<Prerequisite> newList = new ArrayList<Prerequisite>(thePrereqs.size()); - for ( Prerequisite element : thePrereqs ) - { - newList.add( (Prerequisite)element.clone()); - } - return newList; - } - - /** * Clear the prerequisite list. */ public final void clearPreReq() @@ -292,15 +229,13 @@ */ public final boolean hasPreReqTypeOf(final String matchType) { - if (getPreReqCount() == 0) + if (!hasPreReqs()) { return false; } - for (int i = 0; i < getPreReqCount(); ++i) + for (Prerequisite prereq : getPreReqList()) { - final Prerequisite prereq = getPreReq(i); - if (prereq != null) { if (matchType == null && prereq.getKind() == null) Modified: Trunk/pcgen/code/src/java/pcgen/core/Race.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Race.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/Race.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -846,7 +846,7 @@ startingAC = anInt; } - public Object clone() + public Race clone() { Race aRace = null; @@ -1051,12 +1051,10 @@ boolean canBeAlignment(final String aString) { - if (getPreReqCount() != 0) + if (hasPreReqs()) { - for (int e = 0; e < getPreReqCount(); e++) + for (Prerequisite prereq : getPreReqList()) { - final Prerequisite prereq = getPreReq(e); - if ("ALIGN".equalsIgnoreCase( prereq.getKind() )) { String alignStr = aString; Modified: Trunk/pcgen/code/src/java/pcgen/core/Skill.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/Skill.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/Skill.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -865,7 +865,7 @@ return skillReadOnly; } - public Object clone() + public Skill clone() { Skill newSkill = null; Modified: Trunk/pcgen/code/src/java/pcgen/core/bonus/BonusObj.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/bonus/BonusObj.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/bonus/BonusObj.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -592,15 +592,13 @@ boolean bEmpty = true; sb.append('['); - if (getPreReqList() != null) - { - for (int i = 0; i < getPreReqList().size(); ++i) - { - if (i > 0) + if (hasPreReqs()) { + for (Prerequisite p : getPreReqList()) { + if (!bEmpty) { sb.append('|'); } - sb.append(this.getPreReq(i).getDescription(shortForm)); + sb.append(p.getDescription(shortForm)); bEmpty = false; } } Modified: Trunk/pcgen/code/src/java/pcgen/core/character/CompanionMod.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/character/CompanionMod.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/character/CompanionMod.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -57,7 +57,7 @@ * * @return a copy of this Ability */ - public Object clone() + public CompanionMod clone() { CompanionMod cmpMod = null; Modified: Trunk/pcgen/code/src/java/pcgen/core/levelability/LevelAbilityFeat.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/levelability/LevelAbilityFeat.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/levelability/LevelAbilityFeat.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -396,7 +396,7 @@ if (allowDups) { - if (anAbility.getPreReqCount() != 0) + if (anAbility.hasPreReqs()) { hasPrereqs = true; } Modified: Trunk/pcgen/code/src/java/pcgen/core/spell/Spell.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/spell/Spell.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/core/spell/Spell.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -948,7 +948,7 @@ //////////////////////////////////////////////////////////// // Public method(s) //////////////////////////////////////////////////////////// - public Object clone() + public Spell clone() { Spell aSpell = null; Modified: Trunk/pcgen/code/src/java/pcgen/gui/editor/EditorMainForm.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/editor/EditorMainForm.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/gui/editor/EditorMainForm.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -3032,25 +3032,25 @@ } } - for (int i = 0, x = thisPObject.getPreReqCount(); i < x; ++i) - { - // TODO: This hack is here because there is currently no - // specific Prerequisite editor. The code curently relies - // on the assumption that input format==in memory format== output format - // This assumption is WRONG - StringWriter writer = new StringWriter(); - Prerequisite prereq = thisPObject.getPreReq(i); - PrerequisiteWriter prereqWriter = new PrerequisiteWriter(); - try - { - prereqWriter.write(writer, prereq); + if (thisPObject.hasPreReqs()) { + for (Prerequisite p : thisPObject.getPreReqList()) { + // TODO: This hack is here because there is currently no + // specific Prerequisite editor. The code curently relies + // on the assumption that input format==in memory format== output format + // This assumption is WRONG + StringWriter writer = new StringWriter(); + PrerequisiteWriter prereqWriter = new PrerequisiteWriter(); + try + { + prereqWriter.write(writer, p); + } + catch (PersistenceLayerException e1) + { + e1.printStackTrace(); + } + + selectedList.add(writer.toString()); } - catch (PersistenceLayerException e1) - { - e1.printStackTrace(); - } - - selectedList.add(writer.toString()); } if (anEditType != EditorConstants.EDIT_CLASS) Modified: Trunk/pcgen/code/src/java/pcgen/gui/filter/FilterFactory.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/filter/FilterFactory.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/gui/filter/FilterFactory.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -20,6 +20,13 @@ */ package pcgen.gui.filter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; + import pcgen.core.*; import pcgen.core.prereq.Prerequisite; import pcgen.core.spell.Spell; @@ -29,8 +36,6 @@ import pcgen.util.PropertyFactory; import pcgen.util.enumeration.Visibility; -import java.util.*; - /** * <code>FilterFactory</code> * <br> @@ -1117,15 +1122,15 @@ return false; } - for (int it = 0; it < pObject.getPreReqCount(); it++) - { - Prerequisite tmp = pObject.getPreReq(it); - // TODO - Fix prereqs to not use/give out strings. - if ("ALIGN".equalsIgnoreCase( tmp.getKind() )) //$NON-NLS-1$ - { - prealign = new StringBuffer(tmp.getKey() ); + if (pObject.hasPreReqs()) { + for (Prerequisite p : pObject.getPreReqList()) { + // TODO - Fix prereqs to not use/give out strings. + if ("ALIGN".equalsIgnoreCase( p.getKind() )) //$NON-NLS-1$ + { + prealign = new StringBuffer(p.getKey() ); - break; + break; + } } } Modified: Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoSkills.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoSkills.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoSkills.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -874,7 +874,7 @@ // boolean dirty = false; int pointsLeft = points; - if ((pointsLeft > 0) && (theSkill.getPreReqCount() != 0)) + if ((pointsLeft > 0) && theSkill.hasPreReqs()) { while (pointsLeft > classSkillCost) { @@ -4137,7 +4137,7 @@ { if (theSkill.compareTo(aSkill) != 0) { - if ((aSkill.getPreReqCount() != 0) + if (aSkill.hasPreReqs() && PrereqHandler.passesAll(aSkill.getPreReqList(), pc, aSkill)) { Modified: Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoTempMod.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoTempMod.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/gui/tabs/InfoTempMod.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -1074,7 +1074,7 @@ { // We clear the prereqs and add the non-PREAPPLY prereqs from the old bonus // TODO - Why are we doing this? - newB.setPrereqList(new ArrayList<Prerequisite>()); + newB.clearPreReq(); for (Prerequisite prereq : aBonus.getPreReqList()) { if (prereq.getKind() == null Modified: Trunk/pcgen/code/src/java/pcgen/gui/tabs/ability/AbilityModel.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/gui/tabs/ability/AbilityModel.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/gui/tabs/ability/AbilityModel.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -459,10 +459,8 @@ // the other prereqs List<Prerequisite> preReqList = new ArrayList<Prerequisite>(); - for (int pi = ability.getPreReqCount() - 1; pi >= 0; --pi) + for (Prerequisite prereq : ability.getPreReqList()) { - final Prerequisite prereq = ability.getPreReq(pi); - // TODO - Fix this. See comment above. if ((prereq.getKind() != null) && prereq.getKind().equalsIgnoreCase("FEAT")) //$NON-NLS-1$ Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/output/prereq/PrerequisiteWriter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/persistence/lst/output/prereq/PrerequisiteWriter.java 2007-01-06 14:30:09 UTC (rev 1892) +++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/output/prereq/PrerequisiteWriter.java 2007-01-06 18:20:21 UTC (rev 1893) @@ -61,18 +61,14 @@ */ static public String prereqsToString(final PObject pObj) { - final int iCount = pObj.getPreReqCount(); - if (iCount != 0) - { + if (pObj.hasPreReqs()) { final PrerequisiteWriter prereqWriter = new PrerequisiteWriter(); final StringWriter swriter = new StringWriter(); - for (int i = 0; i < iCount; ++i) - { - final Prerequisite prereq = pObj.getPreReq(i); + for (Prerequisite p : pObj.getPreReqList()) { try { swriter.write('\t'); - prereqWriter.write(swriter, prereq); + prereqWriter.write(swriter, p); } catch (Exception e1) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |