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

Vladimir Sitnikov commented on CALCITE-3976:
--------------------------------------------

Closed https://github.com/apache/calcite/pull/1963: it conflicts with main, and 
it switches the bound of the graph classes to {{TypedEdge}}, which breaks 
existing {{DefaultEdge}} users. The issue stays open; a new contribution should 
keep {{DefaultEdge}}-based graphs compiling.

> Generify the DefaultEdge class
> ------------------------------
>
>                 Key: CALCITE-3976
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3976
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: Liya Fan
>            Assignee: Liya Fan
>            Priority: Major
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Currently, the {{source}} and {{target}} fields of class {{DefaultEdge}} is 
> {{Object}}. This makes it necessary for some casts in the code base. In 
> addition, it does not enforce the assertion that in a graph, the vertices 
> have the same type as sources and targes in the edges. 
> To solve the problem, we generify the DefaultEdge class with the type of the 
> source/target vertices.
> The benefits of generfication includes type safety: the above assertion can 
> be enforced by the generified class. It also gives the compiler an 
> opportunity to detect type related problems at compilation time. Without 
> generification, some problems can only be detected at runtime, when a 
> ClassCastException is thrown. 



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to