From: <jde...@us...> - 2014-06-15 03:01:54
|
Revision: 24146 http://sourceforge.net/p/pcgen/code/24146 Author: jdempsey Date: 2014-06-15 03:01:48 +0000 (Sun, 15 Jun 2014) Log Message: ----------- Freemarker output - Remove access to pc and exporthandler variables Issue#: CODE-2616 Modified Paths: -------------- Trunk/pcgen/code/src/java/pcgen/io/ExportHandler.java Trunk/pcgen/code/src/java/pcgen/io/freemarker/EquipSetLoopDirective.java Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCBooleanFunction.java Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCStringDirective.java Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCVarFunction.java Modified: Trunk/pcgen/code/src/java/pcgen/io/ExportHandler.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/io/ExportHandler.java 2014-06-15 02:36:26 UTC (rev 24145) +++ Trunk/pcgen/code/src/java/pcgen/io/ExportHandler.java 2014-06-15 03:01:48 UTC (rev 24146) @@ -319,17 +319,16 @@ Template template = cfg.getTemplate(templateFile.getName()); // Configure our custom directives and functions. - cfg.setSharedVariable("pcstring", new PCStringDirective()); - cfg.setSharedVariable("pcvar", new PCVarFunction()); - cfg.setSharedVariable("pcboolean", new PCBooleanFunction()); + cfg.setSharedVariable("pcstring", new PCStringDirective(aPC, this)); + cfg.setSharedVariable("pcvar", new PCVarFunction(aPC)); + cfg.setSharedVariable("pcboolean", new PCBooleanFunction(aPC, this)); cfg.setSharedVariable("loop", new LoopDirective()); - cfg.setSharedVariable("equipsetloop", new EquipSetLoopDirective()); - cfg.setSharedVariable("pc", aPC); + cfg.setSharedVariable("equipsetloop", new EquipSetLoopDirective(aPC)); // data-model Map<String, Object> input = new HashMap<String, Object>(); - input.put("pc", aPC); - input.put("exportHandler", this); +// input.put("pc", aPC); +// input.put("exportHandler", this); // input.put("gameModeVarCountMap", gameModeVarCountMap); // input.put("pathIgnoreLen", dataPathLen + 1); Modified: Trunk/pcgen/code/src/java/pcgen/io/freemarker/EquipSetLoopDirective.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/io/freemarker/EquipSetLoopDirective.java 2014-06-15 02:36:26 UTC (rev 24145) +++ Trunk/pcgen/code/src/java/pcgen/io/freemarker/EquipSetLoopDirective.java 2014-06-15 03:01:48 UTC (rev 24146) @@ -30,7 +30,6 @@ import pcgen.core.PlayerCharacter; import pcgen.core.character.EquipSet; import freemarker.core.Environment; -import freemarker.template.AdapterTemplateModel; import freemarker.template.TemplateDirectiveBody; import freemarker.template.TemplateDirectiveModel; import freemarker.template.TemplateException; @@ -50,6 +49,18 @@ */ public class EquipSetLoopDirective implements TemplateDirectiveModel { + private PlayerCharacter pc; + + /** + * Create a new instance of EquipSetLoopDirective + * @param pc The character being exported. + */ + public EquipSetLoopDirective(PlayerCharacter pc) + { + super(); + this.pc = pc; + } + @SuppressWarnings("rawtypes") @Override public void execute(Environment env, Map params, TemplateModel[] loopVars, @@ -61,12 +72,6 @@ "This directive must have content."); } - - TemplateModel model = env.getVariable("pc"); - PlayerCharacter pc = - (PlayerCharacter) ((AdapterTemplateModel) model) - .getAdaptedObject(PlayerCharacter.class); - List<EquipSet> eqSetList = new ArrayList<EquipSet>(); EquipSet currSet = null; String currIdPath = pc.getCalcEquipSetId(); Modified: Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCBooleanFunction.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCBooleanFunction.java 2014-06-15 02:36:26 UTC (rev 24145) +++ Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCBooleanFunction.java 2014-06-15 03:01:48 UTC (rev 24146) @@ -24,10 +24,7 @@ import pcgen.core.PlayerCharacter; import pcgen.io.ExportHandler; -import freemarker.core.Environment; -import freemarker.template.AdapterTemplateModel; import freemarker.template.TemplateMethodModelEx; -import freemarker.template.TemplateModel; import freemarker.template.TemplateModelException; /** @@ -40,8 +37,22 @@ */ public class PCBooleanFunction extends CharacterExportAction implements TemplateMethodModelEx { + private PlayerCharacter pc; + private ExportHandler eh; /** + * Create a new instance of PCBooleanFunction + * @param pc The character being exported. + * @param eh The managing export handler. + */ + public PCBooleanFunction(PlayerCharacter pc, ExportHandler eh) + { + super(); + this.pc = pc; + this.eh = eh; + } + + /** * {@inheritDoc} */ @SuppressWarnings("rawtypes") @@ -56,17 +67,6 @@ String tag = arg0.get(0).toString(); - Environment env = Environment.getCurrentEnvironment(); - TemplateModel model = env.getVariable("pc"); - PlayerCharacter pc = - (PlayerCharacter) ((AdapterTemplateModel) model) - .getAdaptedObject(PlayerCharacter.class); - - TemplateModel modelEh = env.getVariable("exportHandler"); - ExportHandler eh = - (ExportHandler) ((AdapterTemplateModel) modelEh) - .getAdaptedObject(ExportHandler.class); - String value = getExportVariable(tag, pc, eh); return Boolean.valueOf(value); Modified: Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCStringDirective.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCStringDirective.java 2014-06-15 02:36:26 UTC (rev 24145) +++ Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCStringDirective.java 2014-06-15 03:01:48 UTC (rev 24146) @@ -29,7 +29,6 @@ import pcgen.core.PlayerCharacter; import pcgen.io.ExportHandler; import freemarker.core.Environment; -import freemarker.template.AdapterTemplateModel; import freemarker.template.TemplateDirectiveBody; import freemarker.template.TemplateDirectiveModel; import freemarker.template.TemplateException; @@ -50,6 +49,21 @@ public class PCStringDirective extends CharacterExportAction implements TemplateDirectiveModel, TemplateMethodModelEx { + private PlayerCharacter pc; + private ExportHandler eh; + + /** + * Create a new instance of PCStringDirective + * @param pc The character being exported. + * @param eh The managing export handler. + */ + public PCStringDirective(PlayerCharacter pc, ExportHandler eh) + { + super(); + this.pc = pc; + this.eh = eh; + } + @SuppressWarnings("rawtypes") @Override public void execute(Environment env, Map params, TemplateModel[] loopVars, @@ -71,15 +85,6 @@ throw new TemplateModelException( "This directive cannot take a body."); } - - TemplateModel model = env.getVariable("pc"); - PlayerCharacter pc = - (PlayerCharacter) ((AdapterTemplateModel) model) - .getAdaptedObject(PlayerCharacter.class); - TemplateModel modelEh = env.getVariable("exportHandler"); - ExportHandler eh = - (ExportHandler) ((AdapterTemplateModel) modelEh) - .getAdaptedObject(ExportHandler.class); String tag = params.get("tag").toString(); String value = getExportVariable(tag, pc, eh); @@ -99,16 +104,6 @@ throw new TemplateModelException( "Wrong arguments. tag required"); } - - Environment env = Environment.getCurrentEnvironment(); - TemplateModel model = env.getVariable("pc"); - PlayerCharacter pc = - (PlayerCharacter) ((AdapterTemplateModel) model) - .getAdaptedObject(PlayerCharacter.class); - TemplateModel modelEh = env.getVariable("exportHandler"); - ExportHandler eh = - (ExportHandler) ((AdapterTemplateModel) modelEh) - .getAdaptedObject(ExportHandler.class); String tag = arg0.get(0).toString(); String value = getExportVariable(tag, pc, eh); Modified: Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCVarFunction.java =================================================================== --- Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCVarFunction.java 2014-06-15 02:36:26 UTC (rev 24145) +++ Trunk/pcgen/code/src/java/pcgen/io/freemarker/PCVarFunction.java 2014-06-15 03:01:48 UTC (rev 24146) @@ -23,10 +23,7 @@ import java.util.List; import pcgen.core.PlayerCharacter; -import freemarker.core.Environment; -import freemarker.template.AdapterTemplateModel; import freemarker.template.TemplateMethodModelEx; -import freemarker.template.TemplateModel; import freemarker.template.TemplateModelException; /** @@ -38,8 +35,19 @@ */ public class PCVarFunction implements TemplateMethodModelEx { + private PlayerCharacter pc; /** + * Create a new instance of PCVarFunction + * @param pc The character being exported. + */ + public PCVarFunction(PlayerCharacter pc) + { + super(); + this.pc = pc; + } + + /** * {@inheritDoc} */ @SuppressWarnings("rawtypes") @@ -54,12 +62,6 @@ String formula = arg0.get(0).toString(); - Environment env = Environment.getCurrentEnvironment(); - TemplateModel model = env.getVariable("pc"); - PlayerCharacter pc = - (PlayerCharacter) ((AdapterTemplateModel) model) - .getAdaptedObject(PlayerCharacter.class); - Float result = pc.getVariableValue(formula, ""); return result; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |