User: ara_e_w Date: 02/06/08 05:37:26 Modified: core/src/xdoclet GenerationManager.java TemplateSubTask.java XDocletTagSupport.java Log: - fixes second-generation-run-fails bug - fixes isOfType problem (type is comma-separated, code was lost during xjavadoc transition) Revision Changes Path 1.14 +15 -6 xdoclet/core/src/xdoclet/GenerationManager.java Index: GenerationManager.java =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/GenerationManager.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -w -r1.13 -r1.14 --- GenerationManager.java 7 Jun 2002 14:18:58 -0000 1.13 +++ GenerationManager.java 8 Jun 2002 12:37:25 -0000 1.14 @@ -16,7 +16,9 @@ import xdoclet.tagshandler.AbstractProgramElementTagsHandler; import xdoclet.tagshandler.ClassTagsHandler; import xdoclet.tagshandler.PackageTagsHandler; +import xdoclet.template.TemplateEngine; import xdoclet.template.TemplateException; +import xdoclet.template.TemplateParser; import xdoclet.util.LogUtil; /** @@ -24,7 +26,7 @@ * * @author Vincent Harcq ([EMAIL PROTECTED]) * @created March 30, 2002 - * @version $Revision: 1.13 $ + * @version $Revision: 1.14 $ */ public class GenerationManager { @@ -254,22 +256,29 @@ String[] files; if (getParserDb().get(templateFile) == null) { + TemplateEngine the_engine = subTask.getEngine(); + TemplateParser the_parser = TemplateParser.getParserInstance(); + + subTask.setEngine(the_parser); + // Why is setOutput called here? We're only checking _IF_ we're going to generate! (Aslak) - subTask.getParser().setOutput(file); - subTask.getParser().setTemplateURL(templateURL); + the_parser.setOutput(file); + the_parser.setTemplateURL(templateURL); try { - // THIS IS WHERE IT GOES WRONG WHEN RUNNING 2ND TIME (Aslak) - subTask.getParser().start(); + the_parser.start(); } catch (TemplateException e) { throw new XDocletException(e.toString()); } - files = subTask.getParser().getMergeFiles(); + files = the_parser.getMergeFiles(); if (files != null) { updateParserDb(templateURL, files); } + + //restore + subTask.setEngine(the_engine); } else { files = (String[]) getParserDb().get(new File(templateURL.getFile()).getName()); 1.49 +2 -25 xdoclet/core/src/xdoclet/TemplateSubTask.java Index: TemplateSubTask.java =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/TemplateSubTask.java,v retrieving revision 1.48 retrieving revision 1.49 diff -u -w -r1.48 -r1.49 --- TemplateSubTask.java 7 Jun 2002 14:15:04 -0000 1.48 +++ TemplateSubTask.java 8 Jun 2002 12:37:25 -0000 1.49 @@ -24,7 +24,6 @@ import xdoclet.tagshandler.TypeTagsHandler; import xdoclet.template.TemplateEngine; import xdoclet.template.TemplateException; -import xdoclet.template.TemplateParser; import xdoclet.template.XDocletTemplateMessages; import xdoclet.util.LogUtil; import xdoclet.util.Translator; @@ -36,7 +35,7 @@ * @author Ara Abrahamian ([EMAIL PROTECTED]) * @created Sep 25, 2001 * @xdoclet:subtask name="template" parent="xdoclet.DocletTask" - * @version $Revision: 1.48 $ + * @version $Revision: 1.49 $ */ public class TemplateSubTask extends SubTask { @@ -46,8 +45,6 @@ private transient TemplateEngine engine = null; - private transient TemplateParser parser = null; - private boolean prefixWithPackageStructure = true; /** @@ -165,16 +162,6 @@ } /** - * Gets the Parser attribute of the TemplateSubTask object - * - * @return The Parser value - */ - public TemplateParser getParser() - { - return parser; - } - - /** * Gets the TemplateURL attribute of the TemplateSubTask object * * @return The TemplateURL value @@ -291,16 +278,6 @@ } /** - * Sets the Parser attribute of the TemplateSubTask object - * - * @param parser The new Parser value - */ - public void setParser(TemplateParser parser) - { - this.parser = parser; - } - - /** * Sets the DestinationFile attribute of the TemplateSubTask object * * @param destinationFile The new DestinationFile value @@ -444,7 +421,6 @@ super.init(); setEngine(TemplateEngine.getEngineInstance()); - setParser(TemplateParser.getParserInstance()); } /** @@ -631,6 +607,7 @@ String type = (String) ((OfType) it.next()).getType(); if (TypeTagsHandler.isOfType(clazz, type, TypeTagsHandler.extractExtentType(getExtent())) == true) { + if (log.isDebugEnabled()) { log.debug("Accept class '" + clazz.getQualifiedName() + "' because it is of type '" + type + "'."); } 1.47 +34 -1 xdoclet/core/src/xdoclet/XDocletTagSupport.java Index: XDocletTagSupport.java =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/XDocletTagSupport.java,v retrieving revision 1.46 retrieving revision 1.47 diff -u -w -r1.46 -r1.47 --- XDocletTagSupport.java 31 May 2002 20:43:50 -0000 1.46 +++ XDocletTagSupport.java 8 Jun 2002 12:37:25 -0000 1.47 @@ -22,6 +22,9 @@ import xjavadoc.XProgramElement; import xjavadoc.XTag; +import xdoclet.template.TemplateEngine; +import xdoclet.template.TemplateException; + import xdoclet.template.TemplateTagHandler; import xdoclet.util.LogUtil; import xdoclet.util.Translator; @@ -32,7 +35,7 @@ * * @author Dmitri Colebatch ([EMAIL PROTECTED]) * @created October 12, 2001 - * @version $Revision: 1.46 $ + * @version $Revision: 1.47 $ */ public abstract class XDocletTagSupport extends TemplateTagHandler { @@ -791,6 +794,36 @@ else { throw new XDocletException(Translator.getString(XDocletMessages.class, XDocletMessages.INVALID_TAG_PARAM_VALUE_METHOD, new String[]{programElement.toString()})); + } + } + + /** + * Gets the Engine attribute of the TemplateTagHandler object. + * + * @return The Engine value + */ + public TemplateEngine getEngine() + { + return ((TemplateSubTask) getDocletContext().getActiveSubTask()).getEngine(); + } + + /** + * @param template + * @exception XDocletException + * @todo throw TemplateException instead + */ + public void generate(String template) throws XDocletException + { + try { + getEngine().generate(template); + } + catch (TemplateException e) { + if (e instanceof XDocletException) { + throw (XDocletException) e; + } + else { + throw new XDocletException(e, Translator.getString(XDocletMessages.class, XDocletMessages.RUNNING_FAILED)); + } } }
_______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas - http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink _______________________________________________ Xdoclet-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-devel