tinkerpop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TINKERPOP-2280) Make toString() of T less susceptible to confusion with property overloads
Date Thu, 15 Aug 2019 20:22:00 GMT

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

ASF GitHub Bot commented on TINKERPOP-2280:
-------------------------------------------

spmallette commented on pull request #1181: TINKERPOP-2280 Changed toString of T
URL: https://github.com/apache/tinkerpop/pull/1181
 
 
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> 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
>            Priority: Major
>
> 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