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

Reply via email to