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)