From: <th...@us...> - 2009-08-31 01:46:28
|
Revision: 10356 http://pcgen.svn.sourceforge.net/pcgen/?rev=10356&view=rev Author: thpr Date: 2009-08-31 01:46:21 +0000 (Mon, 31 Aug 2009) Log Message: ----------- transfer ownership of current class level to ClassFacet (vs. an association to the PlayerCharacter) Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/AssociationKey.java Trunk/pcgen/code/src/java/pcgen/cdom/facet/ClassFacet.java Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java Modified: Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/AssociationKey.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/AssociationKey.java 2009-08-31 01:38:35 UTC (rev 10355) +++ Trunk/pcgen/code/src/java/pcgen/cdom/enumeration/AssociationKey.java 2009-08-31 01:46:21 UTC (rev 10356) @@ -103,8 +103,6 @@ public static final AssociationKey<Integer> HIT_POINTS = new AssociationKey<Integer>(); - public static final AssociationKey<Integer> CLASS_LEVEL = new AssociationKey<Integer>(); - public static final AssociationKey<Boolean> IS_APPLIED = new AssociationKey<Boolean>(); public static final AssociationKey<SpellSupportForPCClass> SPELL_SUPPORT = new AssociationKey<SpellSupportForPCClass>(); Modified: Trunk/pcgen/code/src/java/pcgen/cdom/facet/ClassFacet.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/cdom/facet/ClassFacet.java 2009-08-31 01:38:35 UTC (rev 10355) +++ Trunk/pcgen/code/src/java/pcgen/cdom/facet/ClassFacet.java 2009-08-31 01:46:21 UTC (rev 10356) @@ -32,7 +32,7 @@ { private final Class<?> thisClass = getClass(); - public void add(CharID id, PCClass obj) + public void addClass(CharID id, PCClass obj) { if (getConstructingCachedSet(id).addClass(obj)) { @@ -40,14 +40,14 @@ } } - public boolean setLevel(CharID id, PCClass obj, PCClassLevel pcl) + public boolean setClassLevel(CharID id, PCClass obj, PCClassLevel pcl) throws CloneNotSupportedException { ClassInfo info = getClassInfo(id); return info != null && info.setClassLevel(obj, pcl); } - public PCClassLevel getLevel(CharID id, PCClass obj, Integer level) + public PCClassLevel getClassLevel(CharID id, PCClass obj, Integer level) { ClassInfo info = getClassInfo(id); if (info == null) @@ -57,7 +57,7 @@ return info.getClassLevel(obj, level); } - public void remove(CharID id, PCClass obj) + public void removeClass(CharID id, PCClass obj) { ClassInfo info = getClassInfo(id); if (info != null) @@ -70,7 +70,7 @@ } } - public ClassInfo removeAll(CharID id) + public ClassInfo removeAllClasses(CharID id) { ClassInfo info = (ClassInfo) FacetCache.remove(id, thisClass); if (info != null) @@ -84,7 +84,7 @@ return info; } - public void replace(CharID id, PCClass oldClass, PCClass newClass) + public void replaceClass(CharID id, PCClass oldClass, PCClass newClass) { ClassInfo info = getClassInfo(id); if (info != null) @@ -93,7 +93,7 @@ } } - public Set<PCClass> getSet(CharID id) + public Set<PCClass> getClassSet(CharID id) { ClassInfo info = getClassInfo(id); if (info == null) @@ -125,6 +125,21 @@ return info != null && info.containsClass(obj); } + public void setLevel(CharID id, PCClass pcc, int level) + { + ClassInfo info = getClassInfo(id); + if (info != null) + { + info.setLevel(pcc, level); + } + } + + public int getLevel(CharID id, PCClass pcc) + { + ClassInfo info = getClassInfo(id); + return (info == null) ? 0 : info.getLevel(pcc); + } + private ClassInfo getClassInfo(CharID id) { return (ClassInfo) FacetCache.get(id, thisClass); @@ -144,11 +159,23 @@ private class ClassInfo { private Map<PCClass, Map<Integer, PCClassLevel>> map = new LinkedHashMap<PCClass, Map<Integer, PCClassLevel>>(); + private Map<PCClass, Integer> levelmap = new HashMap<PCClass, Integer>(); public ClassInfo() { } + public void setLevel(PCClass pcc, int level) + { + levelmap.put(pcc, level); + } + + public int getLevel(PCClass pcc) + { + Integer level = levelmap.get(pcc); + return (level == null) ? 0 : level; + } + public void replace(PCClass oldClass, PCClass newClass) { Map<PCClass, Map<Integer, PCClassLevel>> oldMap = map; Modified: Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-08-31 01:38:35 UTC (rev 10355) +++ Trunk/pcgen/code/src/java/pcgen/core/PlayerCharacter.java 2009-08-31 01:46:21 UTC (rev 10356) @@ -988,7 +988,7 @@ public Set<PCClass> getClassSet() { - return classFacet.getSet(id); + return classFacet.getClassSet(id); } /** @@ -5674,7 +5674,7 @@ // Get existing classes final List<PCClass> existingClasses = new ArrayList<PCClass>(getClassSet()); - classFacet.removeAll(id); + classFacet.removeAllClasses(id); // // Remove all saved monster level information @@ -5728,7 +5728,7 @@ // if (!pcClass.isMonster()) { - classFacet.add(id, pcClass); + classFacet.addClass(id, pcClass); final int cLevels = getLevel(pcClass); @@ -8944,7 +8944,7 @@ setAssoc(topcl, AssociationKey.HIT_POINTS, hp); } - classFacet.replace(id, aClass, bClass); + classFacet.replaceClass(id, aClass, bClass); } else { @@ -8961,7 +8961,7 @@ setAssoc(topcl, AssociationKey.HIT_POINTS, hp); } - classFacet.remove(id, aClass); + classFacet.removeClass(id, aClass); } // @@ -11857,7 +11857,7 @@ } // Add the class to the character classes as level 0 - classFacet.add(id, pcClassClone); + classFacet.addClass(id, pcClassClone); // do the following only if adding a level of a class for the // first time @@ -12523,7 +12523,7 @@ //aClone.langAutoFacet.copyContents(id, aClone.id); aClone.startingLangFacet.copyContents(id, aClone.id); aClone.classFacet.copyContents(id, aClone.id); - for (PCClass cloneClass : aClone.classFacet.getSet(aClone.id)) + for (PCClass cloneClass : aClone.classFacet.getClassSet(aClone.id)) { cloneClass.addFeatPoolBonus(aClone); } @@ -16120,7 +16120,7 @@ { try { - classFacet.setLevel(id, pcc, originalClassLevel.clone()); + classFacet.setClassLevel(id, pcc, originalClassLevel.clone()); } catch (CloneNotSupportedException e) { @@ -16131,7 +16131,7 @@ public PCClassLevel getActiveClassLevel(PCClass pcc, int lvl) { - return classFacet.getLevel(id, pcc, lvl); + return classFacet.getClassLevel(id, pcc, lvl); } public int getClassCount() @@ -16146,27 +16146,26 @@ public void removeClass(PCClass pcc) { - classFacet.remove(id, pcc); + classFacet.removeClass(id, pcc); } public void addClass(PCClass pcc) { - classFacet.add(id, pcc); + classFacet.addClass(id, pcc); } public final int getLevel(PCClass pcc) { - Integer level = getAssoc(pcc, AssociationKey.CLASS_LEVEL); - return level == null ? 0 : level; + return classFacet.getLevel(id, pcc); } /** * set the level to arg without impacting spells, hp, or anything else - use * this with great caution only */ - public final void setLevelWithoutConsequence(PCClass pcc, final int arg) + public final void setLevelWithoutConsequence(PCClass pcc, final int level) { - setAssoc(pcc, AssociationKey.CLASS_LEVEL, arg); + classFacet.setLevel(id, pcc, level); } /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |