/** * Copyright (c) 2002-2011 "Neo Technology," * Network Engine for Objects in Lund AB [http://neotechnology.com] * * This file is part of Neo4j. * * Neo4j is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.neo4j.jdbc; import org.neo4j.cypherdsl.expression.Expression; import org.neo4j.cypherdsl.grammar.Execute; import org.neo4j.cypherdsl.grammar.ExecuteWithParameters; import static org.neo4j.cypherdsl.CypherQuery.*; /** * This class contains all the Cypher queries that the driver needs to issue. */ public class DriverQueries { public Execute getTables() { return start(nodesById("n", 0)). match(node("n").out("TYPE").node("type")). returns(identifier("type").property("type")); } public Execute getColumns() { return start(nodesById("n", 0)). match(node("n").out("TYPE").node("type").out("HAS_PROPERTY").node("property")). returns(identifier("type").property("type"), identifier("property").property("name"), identifier("property").property("type")); } public ExecuteWithParameters getColumns(String typeName) { return start(nodesById("n", 0)). match(node("n").out("TYPE").node("type").out("HAS_PROPERTY").node("property")). where(identifier("type").string("type").eq(param("typename"))). returns(identifier("type").string("type"), identifier("property").string("name"), identifier("property").string("type")).parameter("typename", typeName); } public ExecuteWithParameters getData(String typeName, Iterable<Expression> returnProperties) { return start(nodesById("n",0)). match(node("n").out("TYPE").node("type").in("IS_A").node("instance")). where(identifier("type").string("type").eq(param("typename"))). returns(returnProperties). parameter("typename", typeName); } }