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

Marko A. Rodriguez commented on TINKERPOP-786:
----------------------------------------------

Jeremy Hanna was interested in how this will look. Its easy.

{code}
public SocailTraversal<S,E> extends DefaultTraversal<S,E> {

  private final GraphTraversal<S,E> rawTraversal = new 
DefaultGraphTraversal<S,E>();

  public SocialTraversal<S,Vertex> know(final String personName) {
    this.rawTraversal.out("knows").hasLabel("person").has("name",personName);
    return this;
  }

  public SocialTraversal<S,Vertex> olderThan(final String personName) {
    
this.rawTraversal.filter(as("xx").V().has("name",personName").values("age").where(lt("xx")));
   return this;
  }

 public SocialTraversal<S,Vertex> people() {
    this.rawTraversal.V().hasLabel("person");
    return this;
 }

 public SocialTraversal<S,String> name() {
   this.rawTraversal.values("name");
   return this;
 }
 
 public SocialTraversal<S,E> who() {
   return this;
  }

  public SocialTraversal<S,E> thatAre() {
   return this;
  }
  ......
}
{code}

They will then need a {{TraversalSource}} implementation which we will have a 
{{DefaultTraversalSource}} to make things easy. And finally, in action:

{code}
social = graph.traversal(SocialTraversal.class)
final String name = 
social.people().who().know("stephen").thatAre().olderThan("daniel").name().next()
{code}

TADA!

> Patterns for DSL Development
> ----------------------------
>
>                 Key: TINKERPOP-786
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-786
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.0.2-incubating
>            Reporter: stephen mallette
>            Assignee: Marko A. Rodriguez
>             Fix For: 3.2.0-incubating
>
>
> Develop and document the patterns for custom DSLs.  The method previously 
> described and under consideration at 3.0.0 seems a bit cumbersome to deal 
> with.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to