You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Marko A. Rodriguez (JIRA)" <ji...@apache.org> on 2015/08/05 21:35:04 UTC

[jira] [Created] (TINKERPOP3-800) [Proposal] Domain/Range checking during traversal construction.

Marko A. Rodriguez created TINKERPOP3-800:
---------------------------------------------

             Summary: [Proposal] Domain/Range checking during traversal construction.
                 Key: TINKERPOP3-800
                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-800
             Project: TinkerPop 3
          Issue Type: Improvement
          Components: process
    Affects Versions: 3.0.0-incubating
            Reporter: Marko A. Rodriguez
            Assignee: Marko A. Rodriguez


I think we should add two new methods to {{Step}}.

{code}
Step.getDomain() -> Class
Step.getRange() -> Class
{code}

Now, when someone does:

{code}
g.V().out()
{code}

{{GraphStep}} will report that its range is {{Vertex.class}}. {{VertexStep}} will report its domain to be {{Vertex.class}}. Good. No typing issues. However, when you do this:

{code}
g.E().out()
{code}

{{GraphStep}} will report that its range is {{Edge.class}}. {{VertexStep}} will report its domain to be {{Vertex.class}} --- {{IllegalArgumentException: "The provided traversal has an illegal function composition."}}.

Why is this good -- much better than getting random {{ClassCastExceptions}} at execution time.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)