[
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)