[jira] Updated: (QDOX-81) JavaSource.getURL should be available at parse-time.

View: New views
1 Messages — Rating Filter:   Alert me  

Parent Message unknown [jira] Updated: (QDOX-81) JavaSource.getURL should be available at parse-time.

by JIRA jira@codehaus.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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

Paul Hammant updated QDOX-81:
-----------------------------

    Fix Version/s:     (was: 1.10)
                   1.11

> 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
>             Fix For: 1.11
>
>   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