You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2019/08/13 12:34:00 UTC
[jira] [Created] (TINKERPOP-2280) Make toString() of T less
susceptible to confusion with property overloads
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)