From: <jde...@us...> - 2013-05-21 13:04:33
|
Revision: 20225 http://sourceforge.net/p/pcgen/code/20225 Author: jdempsey Date: 2013-05-21 13:04:30 +0000 (Tue, 21 May 2013) Log Message: ----------- DEFINESTAT proposal Issue#: NEWTAG-272 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/cdom/facet/UserEquipmentFacet.java Added Paths: ----------- Trunk/pcgen/code/src/java/pcgen/cdom/facet/analysis/NonStatStatFacet.java Modified: Trunk/pcgen/code/src/java/pcgen/cdom/facet/UserEquipmentFacet.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/cdom/facet/UserEquipmentFacet.java 2013-05-21 13:02:58 UTC (rev 20224) +++ Trunk/pcgen/code/src/java/pcgen/cdom/facet/UserEquipmentFacet.java 2013-05-21 13:04:30 UTC (rev 20225) @@ -56,7 +56,7 @@ * Removes a piece of Equipment from this facet when the Equipment has been * removed from a Player Character. * - * Triggered when one of the Facets to which UnlockedStatFacet listens fires + * Triggered when one of the Facets to which UserEquipmentFacet listens fires * a DataFacetChangeEvent to indicate a piece of Equipment was removed from * a Player Character. * Added: Trunk/pcgen/code/src/java/pcgen/cdom/facet/analysis/NonStatStatFacet.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/cdom/facet/analysis/NonStatStatFacet.java (rev 0) +++ Trunk/pcgen/code/src/java/pcgen/cdom/facet/analysis/NonStatStatFacet.java 2013-05-21 13:04:30 UTC (rev 20225) @@ -0,0 +1,106 @@ +/* + * Copyright (c) James Dempsey 2013 + * + * This program 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 program 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., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ +package pcgen.cdom.facet.analysis; + +import java.util.List; + +import pcgen.cdom.base.CDOMObject; +import pcgen.cdom.enumeration.ListKey; +import pcgen.cdom.facet.CDOMObjectConsolidationFacet; +import pcgen.cdom.facet.base.AbstractSourcedListFacet; +import pcgen.cdom.facet.event.DataFacetChangeEvent; +import pcgen.cdom.facet.event.DataFacetChangeListener; +import pcgen.core.PCStat; + +/** + * NonStatStatFacet is a Facet that tracks the Stats that have been locked to + * non stats on a Player Character. + * + * <br/> + * Last Editor: $Author$ + * Last Edited: $Date$ + * + * @author James Dempsey <jde...@us...> + * @version $Revision$ + */ +public class NonStatStatFacet extends AbstractSourcedListFacet<PCStat> implements + DataFacetChangeListener<CDOMObject> +{ + private CDOMObjectConsolidationFacet consolidationFacet; + + /** + * Adds a PCStat to this facet if the PCStat was set to a non stat by a CDOMObject + * which has been added to a Player Character. + * + * Triggered when one of the Facets to which NonStatStatFacet listens fires a + * DataFacetChangeEvent to indicate a CDOMObject was added to a Player + * Character. + * + * @param dfce + * The DataFacetChangeEvent containing the information about the + * change + * + * @see pcgen.cdom.facet.event.DataFacetChangeListener#dataAdded(pcgen.cdom.facet.event.DataFacetChangeEvent) + */ + @Override + public void dataAdded(DataFacetChangeEvent<CDOMObject> dfce) + { + CDOMObject cdo = dfce.getCDOMObject(); + List<PCStat> locks = cdo.getListFor(ListKey.NONSTAT_STATS); + if (locks != null) + { + addAll(dfce.getCharID(), locks, cdo); + } + } + + /** + * Removes StatLock objects granted by a CDOMObject which has been removed + * from a Player Character. + * + * Triggered when one of the Facets to which NonStatStatFacet listens fires a + * DataFacetChangeEvent to indicate a CDOMObject was removed from a Player + * Character. + * + * @param dfce + * The DataFacetChangeEvent containing the information about the + * change + * + * @see pcgen.cdom.facet.event.DataFacetChangeListener#dataRemoved(pcgen.cdom.facet.event.DataFacetChangeEvent) + */ + @Override + public void dataRemoved(DataFacetChangeEvent<CDOMObject> dfce) + { + removeAll(dfce.getCharID(), dfce.getCDOMObject()); + } + + public void setConsolidationFacet(CDOMObjectConsolidationFacet consolidationFacet) + { + this.consolidationFacet = consolidationFacet; + } + + /** + * Initializes the connections for NonStatStatFacet to other facets. + * + * This method is automatically called by the Spring framework during + * initialization of the NonStatStatFacet. + */ + public void init() + { + consolidationFacet.addDataFacetChangeListener(this); + } +} Property changes on: Trunk/pcgen/code/src/java/pcgen/cdom/facet/analysis/NonStatStatFacet.java ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Date Author Revision Id \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |