limit(1) means "first" and tail(1) means "last" (in both global and local
manifestations).

In the Path.get results, you get a list whose first element is the
first/oldest object matching the step label, so that felt like "head" to
me, while the last element is the most recent and thus "tail".

get => [a,b,c,d]
getSingle(head) => a
getSingle(tail) => d

In other words the following should be equal:

...map{it->it.path().get('foo')}.tail(local, 1)
...map{it->it.path().getSingle(tail, 'foo')}

I used ImmutablePathImpl because I needed HeadPath to have the
getSingleTail/getSingleHead methods, too.  Thus, a common interface between
ImmutablePath and HeadPath was required.  The interface has package scope,
so it is not part of the public API.

On Thu, Jun 11, 2015 at 11:12 AM, Marko Rodriguez <[email protected]>
wrote:

> Hi Matt,
>
> limit(1) means the most recent value.
> tail(1) means the oldest value. ?
>
> path: [a,b,c,d]
>   a = tail
>   d = head
>
> No?
>
> Also, why did you do ImmutablePathImpl? Seems that can just be private
> methods inside of ImmutablePath?
>
> Thanks,
> Marko.
>
> http://markorodriguez.com
>
> On Jun 11, 2015, at 11:56 AM, mhfrantz <[email protected]> wrote:
>
> > GitHub user mhfrantz opened a pull request:
> >
> >    https://github.com/apache/incubator-tinkerpop/pull/76
> >
> >    TINKERPOP3-700 Path getSingle/getList improvements
> >
> >    As requested in the comments of TINKERPOP3-700.  I also reversed the
> sense of `Pop` to align with `tail(local)`.  Thus `Pop.tail` now means the
> most recent value.
> >
> > You can merge this pull request into a Git repository by running:
> >
> >    $ git pull https://github.com/RedSeal-co/incubator-tinkerpop
> TINKERPOP3-700-Path-getSingle
> >
> > Alternatively you can review and apply these changes as the patch at:
> >
> >    https://github.com/apache/incubator-tinkerpop/pull/76.patch
> >
> > To close this pull request, make a commit to your master/trunk branch
> > with (at least) the following in the commit message:
> >
> >    This closes #76
> >
> > ----
> > commit e1e1a40b068ffe6da3d321256d6200dee0504074
> > Author: mhfrantz <[email protected]>
> > Date:   2015-06-11T16:47:41Z
> >
> >    Add javadoc for Path getList/getSingle
> >
> > commit 4939cf0a22c4fc44a4f86ed3e023fa30e4e872cc
> > Author: mhfrantz <[email protected]>
> > Date:   2015-06-11T17:10:27Z
> >
> >    Reverse sense of Path.getSingle Pop to align with tail(local) step
> >
> > commit 027d6319f9ff06ca26d785e83bf17b21364c3dca
> > Author: mhfrantz <[email protected]>
> > Date:   2015-06-11T17:51:23Z
> >
> >    Optimize MutablePath.getSingle
> >
> > commit 5e9ad8d7dff6c63b9746147a1d255cbf7258cea3
> > Author: mhfrantz <[email protected]>
> > Date:   2015-06-11T17:52:43Z
> >
> >    Optimize ImmutablePath getSingle and getList
> >
> > ----
> >
> >
> > ---
> > If your project is set up for it, you can reply to this email and have
> your
> > reply appear on GitHub as well. If your project does not have this
> feature
> > enabled and wishes so, or if the feature is enabled but not working,
> please
> > contact infrastructure at [email protected] or file a JIRA
> ticket
> > with INFRA.
> > ---
>
>

Reply via email to