[ 
https://issues.apache.org/jira/browse/DERBY-673?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13692763#comment-13692763
 ] 

Dag H. Wanvik edited comment on DERBY-673 at 6/25/13 5:42 AM:
--------------------------------------------------------------

Attaching derby-673-typesafe-lists-1, which introduces generics to the lists 
based on QueryTreeNodeVector. I also let the latter implement the Iterable 
interface, which opens up for using Java 6 "foreach" syntax in many cases. The 
patch makes use of this too. Together, these changes enables many casts to be 
eliminated and code clarification in the compiler implementation.

It also removes most -Xlint warnings from impl/sql/compile classes, so it 
should be ready to run with full lint. The one remaining I wasn't sure how to 
handle, but I believe
it could be suppressed:

   ParseException.java:33: warning: [serial] serializable class ParseException 
has no definition of serialVersionUID
   class ParseException extends Exception {

Diffstat summary;

63 files changed, 854 insertions(+), 1236 deletions(-)

Regressions passed, ready for review.
                
      was (Author: dagw):
    Attaching derby-673-typesafe-lists-1, which introduces generics to the 
lists based on QueryTreeNodeVector. I also let the latter implement the 
Iterable interface, which opens up for using Java 6 "foreach" syntax in many 
cases. The patch makes use of this too. Together, these changes enables many 
casts to be eliminated and code clarification in the compiler implementation.

Diffstat summary;

63 files changed, 854 insertions(+), 1236 deletions(-)

Regressions passed, ready for review.
                  
> Get rid of the NodeFactory
> --------------------------
>
>                 Key: DERBY-673
>                 URL: https://issues.apache.org/jira/browse/DERBY-673
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>            Reporter: Rick Hillegas
>            Assignee: Dag H. Wanvik
>         Attachments: derby-673-1.diff.gz, derby-673-1.status, 
> derby-673-2.diff.gz, derby-673-2.status, derby-673-3.diff.gz, 
> derby-673-3.status, derby-673-fixcomments.diff, 
> derby-673-typesafe-lists-1.diff, derby-673-typesafe-lists-1.status, 
> nodefactory-31.status, nodefactory-31.zip
>
>
> This piece of code once had a purpose in life. It was one of the 
> double-joints which allowed cloudscape to ship with and without compiler 
> support for the synchronization language. Synchronization has been removed. 
> If we want to plug in optional language components, I think there are better 
> ways to do this.
> The NodeFactory turned into a big, sprawling piece of code. At some point 
> this code was slimmed down by telescoping all of its factory methods into a 
> couple unwieldly, weakly-typed overloads backed by cumbersome logic in the 
> actual node constructors. I would like to reintroduce strongly typed node 
> constructors which the parser can call directly. This will make node 
> generation easier to read and less brittle and it will get rid of the now 
> useless NodeFactory class.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to