From 9f2ee63e75c313a732fc0348a218531407724c78 Mon Sep 17 00:00:00 2001 From: Stefan Armbruster Date: Thu, 1 Dec 2011 15:19:09 +0100 Subject: [PATCH] neo4j: implementing property comparing search criteria --- .../datastore/gorm/neo4j/Neo4jQuery.groovy | 24 +++++++++++++++++++ .../tests/PropertyComparisonQuerySpec.groovy | 14 ----------- 2 files changed, 24 insertions(+), 14 deletions(-) delete mode 100644 grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/PropertyComparisonQuerySpec.groovy diff --git a/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jQuery.groovy b/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jQuery.groovy index f7a8996be..2763af69f 100644 --- a/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jQuery.groovy +++ b/grails-datastore-gorm-neo4j/src/main/groovy/org/grails/datastore/gorm/neo4j/Neo4jQuery.groovy @@ -196,6 +196,30 @@ class Neo4jQuery extends Query { result } + boolean matchesCriterionNotEqualsProperty(Node node, Query.NotEqualsProperty criterion) { + getNodeProperty(node, criterion.property) != getNodeProperty(node, criterion.otherProperty) + } + + boolean matchesCriterionEqualsProperty(Node node, Query.EqualsProperty criterion) { + getNodeProperty(node, criterion.property) == getNodeProperty(node, criterion.otherProperty) + } + + boolean matchesCriterionGreaterThanEqualsProperty(Node node, Query.GreaterThanEqualsProperty criterion) { + getNodeProperty(node, criterion.property) >= getNodeProperty(node, criterion.otherProperty) + } + + boolean matchesCriterionGreaterThanProperty(Node node, Query.GreaterThanProperty criterion) { + getNodeProperty(node, criterion.property) > getNodeProperty(node, criterion.otherProperty) + } + + boolean matchesCriterionLessThanEqualsProperty(Node node, Query.LessThanEqualsProperty criterion) { + getNodeProperty(node, criterion.property) <= getNodeProperty(node, criterion.otherProperty) + } + + boolean matchesCriterionLessThanProperty(Node node, Query.LessThanProperty criterion) { + getNodeProperty(node, criterion.property) < getNodeProperty(node, criterion.otherProperty) + } + protected getNodePropertyAsType(Node node, String propertyName, Class targetClass) { def val = getNodeProperty(node, propertyName) session.mappingContext.conversionService.convert(val, targetClass) diff --git a/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/PropertyComparisonQuerySpec.groovy b/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/PropertyComparisonQuerySpec.groovy deleted file mode 100644 index 5547a7197..000000000 --- a/grails-datastore-gorm-neo4j/src/test/groovy/grails/gorm/tests/PropertyComparisonQuerySpec.groovy +++ /dev/null @@ -1,14 +0,0 @@ -package grails.gorm.tests - -import org.junit.Ignore - -/** - * Tests for criteria queries that compare two properties - */ -class PropertyComparisonQuerySpec extends GormDatastoreSpec{ - - @Ignore - void "Test eqProperty criterion"() { - // TODO: implement eqProperty query operations - } -}