Skip to content

Commit 48abf07

Browse files
committed
add query support for !=, in, not-in & array-contains-any
1 parent 91572e4 commit 48abf07

3 files changed

Lines changed: 89 additions & 5 deletions

File tree

pom.xml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>in.kuros</groupId>
1414
<artifactId>jFirebase</artifactId>
15-
<version>0.6.16</version>
15+
<version>1.0.0</version>
1616

1717

1818
<description>This project aims at building a wrapper over nosql technologies - Firebase</description>
@@ -53,7 +53,7 @@
5353

5454
<properties>
5555
<guava.version>25.1-jre</guava.version>
56-
<firebase-admin.version>6.10.0</firebase-admin.version>
56+
<firebase-admin.version>7.1.1</firebase-admin.version>
5757
<lombok.version>1.18.10</lombok.version>
5858
<surefire.version>2.17</surefire.version>
5959
<coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
@@ -74,9 +74,8 @@
7474
<version>0.9.11</version>
7575
</dependency>
7676
<dependency>
77-
<groupId>com.google.firebase</groupId>
78-
<artifactId>firebase-admin</artifactId>
79-
<version>${firebase-admin.version}</version>
77+
<groupId>com.google.cloud</groupId>
78+
<artifactId>google-cloud-firestore</artifactId>
8079
<scope>provided</scope>
8180
</dependency>
8281
<dependency>
@@ -93,6 +92,18 @@
9392
</dependency>
9493
</dependencies>
9594

95+
<dependencyManagement>
96+
<dependencies>
97+
<dependency>
98+
<groupId>com.google.cloud</groupId>
99+
<artifactId>libraries-bom</artifactId>
100+
<version>19.0.0</version>
101+
<type>pom</type>
102+
<scope>import</scope>
103+
</dependency>
104+
</dependencies>
105+
</dependencyManagement>
106+
96107

97108
<repositories>
98109
<repository>

src/main/java/in/kuros/jfirebase/provider/firebase/query/QueryImpl.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,23 @@ public <X> Query<T> whereEqualTo(final String field, final X value) {
3737
return this;
3838
}
3939

40+
@Override
41+
public <X> Query<T> whereNotEqualTo(final Attribute<T, X> field, final X value) {
42+
whereNotEqualTo(field.getName(), value);
43+
return this;
44+
}
45+
46+
@Override
47+
public <K, V> Query<T> whereNotEqualTo(final MapAttribute<T, K, V> field, final K key, final V value) {
48+
return whereNotEqualTo(field.getName() + "." + key, value);
49+
}
50+
51+
@Override
52+
public <X> Query<T> whereNotEqualTo(final String field, final X value) {
53+
queries.add(query -> query.whereNotEqualTo(field, value));
54+
return this;
55+
}
56+
4057
@Override
4158
public <X> Query<T> whereGreaterThan(final Attribute<T, X> field, final X value) {
4259
whereGreaterThan(field.getName(), value);
@@ -97,6 +114,42 @@ public Query<T> whereArrayContains(final String field, final Object value) {
97114
return this;
98115
}
99116

117+
@Override
118+
public <X> Query<T> whereArrayContainsAny(final Attribute<T, X> field, final List<Object> values) {
119+
whereArrayContainsAny(field.getName(), values);
120+
return this;
121+
}
122+
123+
@Override
124+
public Query<T> whereArrayContainsAny(final String field, final List<Object> values) {
125+
queries.add(query -> query.whereArrayContainsAny(field, values));
126+
return this;
127+
}
128+
129+
@Override
130+
public <X> Query<T> whereIn(final Attribute<T, X> field, final List<X> values) {
131+
whereIn(field.getName(), values);
132+
return this;
133+
}
134+
135+
@Override
136+
public Query<T> whereIn(final String field, final List<?> values) {
137+
queries.add(query -> query.whereArrayContainsAny(field, values));
138+
return this;
139+
}
140+
141+
@Override
142+
public <X> Query<T> whereNotIn(final Attribute<T, X> field, final List<X> values) {
143+
whereNotIn(field.getName(), values);
144+
return this;
145+
}
146+
147+
@Override
148+
public Query<T> whereNotIn(final String field, final List<?> values) {
149+
queries.add(query -> query.whereArrayContainsAny(field, values));
150+
return this;
151+
}
152+
100153
@Override
101154
public Query<T> limit(final int limit) {
102155
queries.add(query -> query.limit(limit));

src/main/java/in/kuros/jfirebase/query/Query.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import in.kuros.jfirebase.metadata.Attribute;
55
import in.kuros.jfirebase.metadata.MapAttribute;
66

7+
import java.util.List;
8+
79
public interface Query<T> {
810

911
<X> Query<T> whereEqualTo(Attribute<T, X> field, X value);
@@ -12,6 +14,12 @@ public interface Query<T> {
1214

1315
<X> Query<T> whereEqualTo(String field, X value);
1416

17+
<X> Query<T> whereNotEqualTo(Attribute<T, X> field, X value);
18+
19+
<K, V> Query<T> whereNotEqualTo(MapAttribute<T, K, V> field, K key, V value);
20+
21+
<X> Query<T> whereNotEqualTo(String field, X value);
22+
1523
<X> Query<T> whereGreaterThan(Attribute<T, X> field, X value);
1624

1725
<X> Query<T> whereGreaterThan(String field, X value);
@@ -32,6 +40,18 @@ public interface Query<T> {
3240

3341
Query<T> whereArrayContains(String field, Object value);
3442

43+
<X> Query<T> whereArrayContainsAny(Attribute<T, X> field, List<Object> value);
44+
45+
Query<T> whereArrayContainsAny(String field, List<Object> value);
46+
47+
<X> Query<T> whereIn(Attribute<T, X> field, List<X> value);
48+
49+
Query<T> whereIn(String field, List<?> value);
50+
51+
<X> Query<T> whereNotIn(Attribute<T, X> field, List<X> value);
52+
53+
Query<T> whereNotIn(String field, List<?> value);
54+
3555
Query<T> limit(int limit);
3656

3757
Query<T> endAt(Object... values);

0 commit comments

Comments
 (0)