package com.buschmais.xo.neo4j.test.mapping.composite; import static com.buschmais.xo.api.Query.Result; import static com.buschmais.xo.api.annotation.ResultOf.Parameter; import static com.buschmais.xo.neo4j.api.annotation.Relation.Incoming; import static com.buschmais.xo.neo4j.api.annotation.Relation.Outgoing; import com.buschmais.xo.api.annotation.ResultOf; import com.buschmais.xo.neo4j.api.annotation.Cypher; import com.buschmais.xo.neo4j.api.annotation.Relation; @Relation("E2F") public interface E2F { @Outgoing E getE(); @Incoming F getF(); @ResultOf(query = ByValue.class, usingThisAs = "e2f") Result<ByValue> getResultByValueUsingExplicitQuery(@Parameter("value") String value); @ResultOf(usingThisAs = "e2f") Result<ByValue> getResultByValueUsingReturnType(@Parameter("value") String value); @ResultOf(query = ByValue.class, usingThisAs = "e2f") ByValue getByValueUsingExplicitQuery(@Parameter("value") String value); @ResultOf(usingThisAs = "e2f") ByValue getByValueUsingReturnType(@Parameter("value") String value); @ResultOf ByValueUsingImplicitThis getByValueUsingImplicitThis(@Parameter("value") String value); @ResultOf @Cypher("match ()-[e2f:E2F]->(f:F) where e2f.value={value} return f") Result<F> getResultUsingCypher(@Parameter("value") String value); @ResultOf @Cypher("match ()-[e2f:E2F]->(f:F) where e2f.value={value} return f") F getSingleResultUsingCypher(@Parameter("value") String value); @ResultOf @Cypher("match ()-[e2f:E2F]->(f:F) where e2f.value={value} set e2f.result='true'") void voidResultUsingCypher(@Parameter("value") String value); void setValue(String value); String getValue(); @Cypher("match ()-[e2f:E2F]->(f:F) where id(e2f)={e2f} and e2f.value={value} return f") public interface ByValue { F getF(); } @Cypher("match ()-[e2f:E2F]->(f:F) where id(e2f)={this} and e2f.value={value} return f") public interface ByValueUsingImplicitThis { F getF(); } }