tinkerpop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stephen mallette (JIRA)" <j...@apache.org>
Subject [jira] [Created] (TINKERPOP-2280) Make toString() of T less susceptible to confusion with property overloads
Date Tue, 13 Aug 2019 12:34:00 GMT
stephen mallette created TINKERPOP-2280:
-------------------------------------------

             Summary: Make toString() of T less susceptible to confusion with property overloads
                 Key: TINKERPOP-2280
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2280
             Project: TinkerPop
          Issue Type: Improvement
          Components: structure
    Affects Versions: 3.3.8
            Reporter: stephen mallette
            Assignee: stephen mallette


It's not a great practice but we often see folks overloading "label" and "id" as property
keys on elements. The problem here is that `valueMap()` will tend to end up looking like this:

{code}
gremlin> g.V().has('label').valueMap(true)
==>[id:13,label:[thing],label:person]
{code}

The {{toString()}} representation is confusing as you can't really tell what's an {{T}} instance
in the keys and what is not. If we alter {{toString()}} to include the {{T}} we get:

{code}
gremlin> g.V().has('label').valueMap(true)
==>[T.id:13,label:[thing],T.label:person]
{code}

It's not as pretty as before (assuming no overloading) but at least we eliminate confusions
folks used to have with this. I don't think this is a breaking change really because most
folks won't be operating on the {{toString()}} value of a {{Map}}. They will be accessing
this {{Map}} with a {{T}} instance.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Mime
View raw message