Hi guys,

I have continued to work on the Cypher DSL. For reference, have a look here:
https://github.com/neo4j/cypher-dsl/blob/master/src/test/java/org/neo4j/cypherdsl/CypherReferenceTest.java

The main DSL is starting to stabilize, and it should now be reasonably 
easy to use. For the design decisions that I posted before, the results are:
1) Statics vs initialization block: both are supported! Examples:
assertEquals( "START john=node(0) RETURN john", new CypherQuery()
{{
     starts( node( "john", 0 ) ).returns( nodes( "john" ) );
}}.toString() );

is the same as:
starts(node("john", 0)).returns(nodes("john"));

In first version there are no static imports, so it's very 
tab-completion friendly. Second is more compact, but requires static 
imports for alot.

2) Path syntax. To declare a path for the MATCH clause, it looks like so:
.match(path("p").from("x").as("r").optional().out("KNOWS").hops(1,3).to("y")
->
MATCH p=(x)-[r?:KNOWS*1..3]->(y)

So that's that! Have a look at the GitHub class above for more details.

I have also started integrating with QueryDSL for expressions and object 
mapping. I'll post separately about that to make it easier to follow any 
discussions.

/Rickard
-- 
Rickard Öberg
Developer
Neo Technology
Twitter: @rickardoberg, Skype: rickardoberg
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to