Ya I don't think that makes sense, but let me talk this through and see if
I'm missing something... Internally my database uses 128bit vertex
identifiers, so I have a custom internal data type to represent that ID.
But I want to allow the user to be able to hand me IDs of many different
types for convenience, like type String, Long, Int, UUID, BigInteger, etc.
when they call addVertex or the vertices() method. Internally, however,
whether they were created with Longs or Strings and then fetched with
BigIntegers or Shorts, I currently convert all these to my internal
representation and that is what is returned by the vertex.id() method call.
If the API required that vertex.id() return the same object type that was
used as a user supplied ID on the addVertex() call, then the API is forcing
the database to have to remember that information. Imagine one day creating
a vertex v1 using a String ID, and the next day creating one (v2) using a
Long ID. Is it a requirement of the API that fetching the first vertex from
the database preserve String as the returned data type of v1.id() and Long
as the returned data type of v2.id() for all time? Maybe I'm not
understanding something but that seems like an odd requirement of the API.
Perhaps it seems equally odd to the user to receive a different data type
back from vertex.id() than they used to specify the ID in the first place?
Has this problem been discussed before?

Best,
Jonathan
On Wed, Dec 9, 2015 at 3:49 AM Stephen Mallette <[email protected]>
wrote:

> The test assumes some symmetry.  I pass in a String as my identifier, and I
> get back a String - logical, no?
>
> Are you saying that you transform the String that the user supplies to a
> custom type, such that when they call id() they don't get a String?
>
> On Wed, Dec 9, 2015 at 12:58 AM, Jonathan Ellithorpe <[email protected]>
> wrote:
>
> > Hello,
> >
> > I've implemented support for being able to supply String type user
> supplied
> > IDs, and being able to retrieve vertices based on a given String type
> > supplied ID. However, I am failing the following test:
> >
> > shouldAddVertexWithUserSuppliedStringId
> >
> > Because the test is testing to see if:
> >
> > assertEquals("1000", v.id());
> >
> > It seems that the test is assuming that v.id() is a String, which it
> isn't
> > for my implementation, it's a custom type. Why is the test assuming that
> > v.id() returns a String?
> >
> > Best,
> > Jonathan
> >
>

Reply via email to