[ 
http://jira.codehaus.org/browse/QDOX-81?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Scholte resolved QDOX-81.
--------------------------------

    Resolution: Cannot Reproduce
      Assignee: Robert Scholte

Let's close it as {{cannot reproduce}}. Main reason is that I've refactored the 
classlibrary/parser architecture, so it's pretty unlikely that this is still a 
problem.

> JavaSource.getURL should be available at parse-time.
> ----------------------------------------------------
>
>                 Key: QDOX-81
>                 URL: http://jira.codehaus.org/browse/QDOX-81
>             Project: QDox
>          Issue Type: Improvement
>          Components: Java API
>    Affects Versions: 1.5, 1.6, 1.7
>         Environment: Windows 2000, jdk 1.4.2, ANT 1.5.4, Eclipse 3.0 / 3.1M4, 
> QDOX: 1.5 as well as cvs-checkout.
>            Reporter: Achim Westermann
>            Assignee: Robert Scholte
>   Original Estimate: 1 hour
>  Remaining Estimate: 1 hour
>
> Description:
> At parse-time, when the JavaSource Object is created by the JavadocBuilder -> 
> (ModelBuilder <-> parser), the URL member of the JavaSource (source) is not 
> set. This is due to the chaining: 
> addSource(File file){
>  -> addSource(URL url){
>      -> addSource(Reader reader, String sourceInfo){
>         }
>      <aJavaSource>.setURL(url);
>     }
> }
> Problem: 
> A custom DocletTagFactory (constructor) may be used to parse for Annotations. 
> It might be very useful to report syntax-errors from this custom parser. But 
> these reporting is useless, when no information about the current url being 
> processed is at hand. The DocletTagFactory or the triggered custom parser 
> cannot access that information. The sourceInfo String is provided for the 
> qdox parser's exception reporting, but that information is not available for 
> the DocletTagFactory as well. Throwing an Exception would be a way of 
> bringing the file name to the console, but warnings or debugging should not 
> terminate the application.
> Suggestion: 
> Medium change of the API: 
> Strip the creation of the JavaSource Object out of the ModelBuilder. Feed the 
> ModelBuilder with a JavaSource instance (replace no-arg Constructor and 
> extend the 2nd) that is already initialized with the URL. 
> Within JavadocBuilder: 
> change  
>   addSource(Reader reader, String sourceInfo)
> to 
>   addSource(Reader reader, JavaSource source)
> and declare it private (delegation only). 
> The code will then look like: 
>   ModelBuilder builder = new ModelBuilder(
>    classLibrary, 
>    docletTagFactory,
>    source
>   );
>   ...
> remove
>   addSource(Reader reader) 
> change code of method: 
>  addSource(URL url){
>   JavaSource source = new JavaSource();
>   source.setURL(url);
>   addSource(new InputStreamReader(url.openStream(),encoding),source);
>   return source;
> }
> Ok, ok, I completely have no clue about the side effects of this suggested 
> refactoring. But would be pleased, if you do. 
> BTW: Great work, really. I used xjavadoc and switched to QDox. Similar API, 
> same author, improved from scratch. 
> Achim

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to