From: <jde...@us...> - 2009-01-07 10:56:29
|
Revision: 8927 http://pcgen.svn.sourceforge.net/pcgen/?rev=8927&view=rev Author: jdempsey Date: 2009-01-07 10:56:18 +0000 (Wed, 07 Jan 2009) Log Message: ----------- FReq: PLUSCOST calculations: Add PLUSTOTAL as a COST tag variable Issue#: 1250730 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/core/term/TermEvaluatorBuilderEQVar.java Trunk/pcgen/code/src/test/pcgen/core/term/EvaluatorFactoryTest.java Added Paths: ----------- Trunk/pcgen/code/src/java/pcgen/core/term/EQPlusTotalTermEvaluator.java Added: Trunk/pcgen/code/src/java/pcgen/core/term/EQPlusTotalTermEvaluator.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/term/EQPlusTotalTermEvaluator.java (rev 0) +++ Trunk/pcgen/code/src/java/pcgen/core/term/EQPlusTotalTermEvaluator.java 2009-01-07 10:56:18 UTC (rev 8927) @@ -0,0 +1,88 @@ +/* + * EQPlusTermEvaluator.java + * Copyright 2009 (C) James Dempsey + * + * 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 + * + * Created on 07/01/2009 9:26:13 PM + * + * $Id: $ + */ +package pcgen.core.term; + +import pcgen.core.Equipment; +import pcgen.core.PlayerCharacter; + +/** + * The Class <code>EQPlusTotalTermEvaluator</code> is responsible for producing + * the value of the PLUS token for use in equipment and eqmod cost formulas. + * + * Last Editor: $Author: $ + * Last Edited: $Date: $ + * + * @author James Dempsey <jde...@us...> + * @version $Revision: $ + */ +public class EQPlusTotalTermEvaluator extends BaseEQTermEvaluator implements TermEvaluator +{ + + /** + * Instantiates a new eQ plus term evaluator. + * + * @param expressionString the expression string + */ + public EQPlusTotalTermEvaluator(String expressionString) + { + this.originalText = expressionString; + } + + /* (non-Javadoc) + * @see pcgen.core.term.TermEvaluator#resolve(pcgen.core.Equipment, boolean, pcgen.core.PlayerCharacter) + */ + public Float resolve( + Equipment eq, + boolean primary, + PlayerCharacter pc) + { + return convertToFloat(originalText, evaluate(eq, primary, pc)); + } + + /* (non-Javadoc) + * @see pcgen.core.term.TermEvaluator#evaluate(pcgen.core.Equipment, boolean, pcgen.core.PlayerCharacter) + */ + public String evaluate( + Equipment eq, + boolean primary, + PlayerCharacter pc) { + return Integer.toString(eq.calcPlusForCosting()); + } + + /* (non-Javadoc) + * @see pcgen.core.term.TermEvaluator#isSourceDependant() + */ + public boolean isSourceDependant() + { + return false; + } + + /* (non-Javadoc) + * @see pcgen.core.term.TermEvaluator#isStatic() + */ + public boolean isStatic() + { + return false; + } + +} Modified: Trunk/pcgen/code/src/java/pcgen/core/term/TermEvaluatorBuilderEQVar.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/core/term/TermEvaluatorBuilderEQVar.java 2009-01-07 08:10:21 UTC (rev 8926) +++ Trunk/pcgen/code/src/java/pcgen/core/term/TermEvaluatorBuilderEQVar.java 2009-01-07 10:56:18 UTC (rev 8927) @@ -159,6 +159,20 @@ } }, + COMPLETE_EQ_PLUSTOTAL + ("PLUSTOTAL", + new String[] { "PLUSTOTAL" }, + true ) { + + public TermEvaluator getTermEvaluator( + final String expressionString, + final String src, + final String matchedSection) { + + return new EQPlusTotalTermEvaluator(expressionString); + } + }, + COMPLETE_EQ_RANGE ("RANGE", new String[] { "RANGE" }, Modified: Trunk/pcgen/code/src/test/pcgen/core/term/EvaluatorFactoryTest.java =================================================================== --- Trunk/pcgen/code/src/test/pcgen/core/term/EvaluatorFactoryTest.java 2009-01-07 08:10:21 UTC (rev 8926) +++ Trunk/pcgen/code/src/test/pcgen/core/term/EvaluatorFactoryTest.java 2009-01-07 10:56:18 UTC (rev 8927) @@ -13,7 +13,7 @@ /** * EvaluatorFactory Tester. - * Copyright \xA9 2008 Andrew Wilson <nu...@us...>. + * Copyright � 2008 Andrew Wilson <nu...@us...>. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -12162,7 +12162,45 @@ is(field0, strEq(term), "GetTermEvaluator209 stored term is correct " + term); } + /** + * Method: getTermEvaluator(String term, String source) + */ + public void testGetTermEvaluatorPlusTotal() { + TestHelper.loadAll(); + String term = "PLUSTOTAL"; + + TermEvaluator t = EvaluatorFactory.EQ.getTermEvaluator(term, ""); + + is(t instanceof EQPlusTotalTermEvaluator, eq(true), + "EQPlusTotalTermEvaluator evaluator correct for " + term); + + Class<?> uClass = EQPlusTotalTermEvaluator.class; + + Field pF0 = (Field) TestHelper.findField(uClass, "originalText"); + + String field0 = ""; + boolean ok; + try + { + ok = true; + field0 = (String) pF0.get(t); + } + catch (ClassCastException e) + { + ok = false; + } + catch (IllegalAccessException e) + { + ok = false; + } + + is(ok, eq(true), "No illegal access in testGetTermEvaluatorPlusTotal"); + + is(field0, strEq(term), "testGetTermEvaluatorPlusTotal stored term is correct " + term); + } + + /** * Method: getTermEvaluator(String term, String source) */ @@ -12333,7 +12371,6 @@ TermEvaluator t = EvaluatorFactory.EQ.getTermEvaluator(term, ""); - System.err.println("Matched Size " + t); is(t instanceof EQSizeTermEvaluator, eq(true), "GetTermEvaluator214 evaluator correct for " + term); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |