Skip to content

Commit df9f5e4

Browse files
Query: use singular setParameter name for changing single parameter
Deprecate the old variants. This is now consistent with the C API.
1 parent d81a3f7 commit df9f5e4

File tree

3 files changed

+113
-38
lines changed

3 files changed

+113
-38
lines changed

objectbox-java/src/main/java/io/objectbox/query/Query.java

Lines changed: 93 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,54 @@ public Query<T> setParameter(String alias, boolean value) {
655655
return setParameter(alias, value ? 1 : 0);
656656
}
657657

658+
/**
659+
* Changes the parameter of the query condition for {@code property} to a new {@code value}.
660+
*
661+
* @param property Property reference from generated entity underscore class, like {@code Example_.example}.
662+
* @param value The new {@code int[]} value to use for the query condition.
663+
*/
664+
public Query<T> setParameter(Property<?> property, int[] value) {
665+
checkOpen();
666+
nativeSetParameters(handle, property.getEntityId(), property.getId(), null, value);
667+
return this;
668+
}
669+
670+
/**
671+
* Changes the parameter of the query condition with the matching {@code alias} to a new {@code value}.
672+
*
673+
* @param alias as defined using {@link PropertyQueryCondition#alias(String)}.
674+
* @param value The new {@code int[]} value to use for the query condition.
675+
*/
676+
public Query<T> setParameter(String alias, int[] value) {
677+
checkOpen();
678+
nativeSetParameters(handle, 0, 0, alias, value);
679+
return this;
680+
}
681+
682+
/**
683+
* Changes the parameter of the query condition for {@code property} to a new {@code value}.
684+
*
685+
* @param property Property reference from generated entity underscore class, like {@code Example_.example}.
686+
* @param value The new {@code long[]} value to use for the query condition.
687+
*/
688+
public Query<T> setParameter(Property<?> property, long[] value) {
689+
checkOpen();
690+
nativeSetParameters(handle, property.getEntityId(), property.getId(), null, value);
691+
return this;
692+
}
693+
694+
/**
695+
* Changes the parameter of the query condition with the matching {@code alias} to a new {@code value}.
696+
*
697+
* @param alias as defined using {@link PropertyQueryCondition#alias(String)}.
698+
* @param value The new {@code long[]} value to use for the query condition.
699+
*/
700+
public Query<T> setParameter(String alias, long[] value) {
701+
checkOpen();
702+
nativeSetParameters(handle, 0, 0, alias, value);
703+
return this;
704+
}
705+
658706
/**
659707
* Changes the parameter of the query condition for {@code property} to a new {@code value}.
660708
*
@@ -679,6 +727,30 @@ public Query<T> setParameter(String alias, float[] value) {
679727
return this;
680728
}
681729

730+
/**
731+
* Changes the parameter of the query condition for {@code property} to a new {@code value}.
732+
*
733+
* @param property Property reference from generated entity underscore class, like {@code Example_.example}.
734+
* @param value The new {@code String[]} value to use for the query condition.
735+
*/
736+
public Query<T> setParameter(Property<?> property, String[] value) {
737+
checkOpen();
738+
nativeSetParameters(handle, property.getEntityId(), property.getId(), null, value);
739+
return this;
740+
}
741+
742+
/**
743+
* Changes the parameter of the query condition with the matching {@code alias} to a new {@code value}.
744+
*
745+
* @param alias as defined using {@link PropertyQueryCondition#alias(String)}.
746+
* @param value The new {@code String[]} value to use for the query condition.
747+
*/
748+
public Query<T> setParameter(String alias, String[] value) {
749+
checkOpen();
750+
nativeSetParameters(handle, 0, 0, alias, value);
751+
return this;
752+
}
753+
682754
/**
683755
* Sets a parameter previously given to the {@link QueryBuilder} to new values.
684756
*/
@@ -701,42 +773,44 @@ public Query<T> setParameters(String alias, long value1, long value2) {
701773

702774
/**
703775
* Sets a parameter previously given to the {@link QueryBuilder} to new values.
776+
*
777+
* @deprecated Use {@link #setParameter(Property, int[])} instead.
704778
*/
779+
@Deprecated
705780
public Query<T> setParameters(Property<?> property, int[] values) {
706-
checkOpen();
707-
nativeSetParameters(handle, property.getEntityId(), property.getId(), null, values);
708-
return this;
781+
return setParameter(property, values);
709782
}
710783

711784
/**
712785
* Sets a parameter previously given to the {@link QueryBuilder} to new values.
713786
*
714787
* @param alias as defined using {@link QueryBuilder#parameterAlias(String)}.
788+
* @deprecated Use {@link #setParameter(String, int[])} instead.
715789
*/
790+
@Deprecated
716791
public Query<T> setParameters(String alias, int[] values) {
717-
checkOpen();
718-
nativeSetParameters(handle, 0, 0, alias, values);
719-
return this;
792+
return setParameter(alias, values);
720793
}
721794

722795
/**
723796
* Sets a parameter previously given to the {@link QueryBuilder} to new values.
797+
*
798+
* @deprecated Use {@link #setParameter(Property, long[])} instead.
724799
*/
800+
@Deprecated
725801
public Query<T> setParameters(Property<?> property, long[] values) {
726-
checkOpen();
727-
nativeSetParameters(handle, property.getEntityId(), property.getId(), null, values);
728-
return this;
802+
return setParameter(property, values);
729803
}
730804

731805
/**
732806
* Sets a parameter previously given to the {@link QueryBuilder} to new values.
733807
*
734808
* @param alias as defined using {@link QueryBuilder#parameterAlias(String)}.
809+
* @deprecated Use {@link #setParameter(String, long[])} instead.
735810
*/
811+
@Deprecated
736812
public Query<T> setParameters(String alias, long[] values) {
737-
checkOpen();
738-
nativeSetParameters(handle, 0, 0, alias, values);
739-
return this;
813+
return setParameter(alias, values);
740814
}
741815

742816
/**
@@ -761,22 +835,23 @@ public Query<T> setParameters(String alias, double value1, double value2) {
761835

762836
/**
763837
* Sets a parameter previously given to the {@link QueryBuilder} to new values.
838+
*
839+
* @deprecated Use {@link #setParameter(Property, String[])} instead.
764840
*/
841+
@Deprecated
765842
public Query<T> setParameters(Property<?> property, String[] values) {
766-
checkOpen();
767-
nativeSetParameters(handle, property.getEntityId(), property.getId(), null, values);
768-
return this;
843+
return setParameter(property, values);
769844
}
770845

771846
/**
772847
* Sets a parameter previously given to the {@link QueryBuilder} to new values.
773848
*
774849
* @param alias as defined using {@link QueryBuilder#parameterAlias(String)}.
850+
* @deprecated Use {@link #setParameter(String, String[])} instead.
775851
*/
852+
@Deprecated
776853
public Query<T> setParameters(String alias, String[] values) {
777-
checkOpen();
778-
nativeSetParameters(handle, 0, 0, alias, values);
779-
return this;
854+
return setParameter(alias, values);
780855
}
781856

782857
/**

tests/objectbox-java-test/src/test/java/io/objectbox/query/QueryTest.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -133,22 +133,22 @@ public void useAfterQueryClose_fails() {
133133
assertThrowsQueryIsClosed(() -> query.setParameter("none", "value"));
134134
assertThrowsQueryIsClosed(() -> query.setParameters("none", "a", "b"));
135135
assertThrowsQueryIsClosed(() -> query.setParameter("none", 1));
136-
assertThrowsQueryIsClosed(() -> query.setParameters("none", new int[]{1, 2}));
137-
assertThrowsQueryIsClosed(() -> query.setParameters("none", new long[]{1, 2}));
136+
assertThrowsQueryIsClosed(() -> query.setParameter("none", new int[]{1, 2}));
137+
assertThrowsQueryIsClosed(() -> query.setParameter("none", new long[]{1, 2}));
138138
assertThrowsQueryIsClosed(() -> query.setParameters("none", 1, 2));
139139
assertThrowsQueryIsClosed(() -> query.setParameter("none", 1.0));
140140
assertThrowsQueryIsClosed(() -> query.setParameters("none", 1.0, 2.0));
141-
assertThrowsQueryIsClosed(() -> query.setParameters("none", new String[]{"a", "b"}));
141+
assertThrowsQueryIsClosed(() -> query.setParameter("none", new String[]{"a", "b"}));
142142
assertThrowsQueryIsClosed(() -> query.setParameter("none", new byte[]{1, 2}));
143143
assertThrowsQueryIsClosed(() -> query.setParameter(simpleString, "value"));
144144
assertThrowsQueryIsClosed(() -> query.setParameters(simpleString, "a", "b"));
145145
assertThrowsQueryIsClosed(() -> query.setParameter(simpleString, 1));
146-
assertThrowsQueryIsClosed(() -> query.setParameters(simpleString, new int[]{1, 2}));
147-
assertThrowsQueryIsClosed(() -> query.setParameters(simpleString, new long[]{1, 2}));
146+
assertThrowsQueryIsClosed(() -> query.setParameter(simpleString, new int[]{1, 2}));
147+
assertThrowsQueryIsClosed(() -> query.setParameter(simpleString, new long[]{1, 2}));
148148
assertThrowsQueryIsClosed(() -> query.setParameters(simpleString, 1, 2));
149149
assertThrowsQueryIsClosed(() -> query.setParameter(simpleString, 1.0));
150150
assertThrowsQueryIsClosed(() -> query.setParameters(simpleString, 1.0, 2.0));
151-
assertThrowsQueryIsClosed(() -> query.setParameters(simpleString, new String[]{"a", "b"}));
151+
assertThrowsQueryIsClosed(() -> query.setParameter(simpleString, new String[]{"a", "b"}));
152152
assertThrowsQueryIsClosed(() -> query.setParameter(simpleString, new byte[]{1, 2}));
153153

154154
// find would throw once first results are obtained, but shouldn't allow creating an observer to begin with.
@@ -201,12 +201,12 @@ public void useAfterStoreClose_failsIfUsingStore() {
201201
assertThrowsEntityDeleted(() -> query.setParameter(simpleString, "value"));
202202
assertThrowsEntityDeleted(() -> query.setParameters(stringObjectMap, "a", "b"));
203203
assertThrowsEntityDeleted(() -> query.setParameter(simpleInt, 1));
204-
assertThrowsEntityDeleted(() -> query.setParameters("oneOf4", new int[]{1, 2}));
205-
assertThrowsEntityDeleted(() -> query.setParameters("oneOf8", new long[]{1, 2}));
204+
assertThrowsEntityDeleted(() -> query.setParameter("oneOf4", new int[]{1, 2}));
205+
assertThrowsEntityDeleted(() -> query.setParameter("oneOf8", new long[]{1, 2}));
206206
assertThrowsEntityDeleted(() -> query.setParameters("between", 1, 2));
207207
assertThrowsEntityDeleted(() -> query.setParameter(simpleInt, 1.0));
208208
assertThrowsEntityDeleted(() -> query.setParameters("between", 1.0, 2.0));
209-
assertThrowsEntityDeleted(() -> query.setParameters("oneOfS", new String[]{"a", "b"}));
209+
assertThrowsEntityDeleted(() -> query.setParameter("oneOfS", new String[]{"a", "b"}));
210210
assertThrowsEntityDeleted(() -> query.setParameter(simpleByteArray, new byte[]{1, 2}));
211211
}
212212

@@ -342,11 +342,11 @@ public void testIntIn() {
342342
assertEquals(3, query.count());
343343

344344
int[] valuesInt2 = {2003};
345-
query.setParameters(simpleInt, valuesInt2);
345+
query.setParameter(simpleInt, valuesInt2);
346346
assertEquals(1, query.count());
347347

348348
int[] valuesInt3 = {2003, 2007};
349-
query.setParameters("int", valuesInt3);
349+
query.setParameter("int", valuesInt3);
350350
assertEquals(2, query.count());
351351
}
352352
}
@@ -360,11 +360,11 @@ public void testLongIn() {
360360
assertEquals(3, query.count());
361361

362362
long[] valuesLong2 = {3003};
363-
query.setParameters(simpleLong, valuesLong2);
363+
query.setParameter(simpleLong, valuesLong2);
364364
assertEquals(1, query.count());
365365

366366
long[] valuesLong3 = {3003, 3007};
367-
query.setParameters("long", valuesLong3);
367+
query.setParameter("long", valuesLong3);
368368
assertEquals(2, query.count());
369369
}
370370
}
@@ -378,11 +378,11 @@ public void testIntNotIn() {
378378
assertEquals(7, query.count());
379379

380380
int[] valuesInt2 = {2003};
381-
query.setParameters(simpleInt, valuesInt2);
381+
query.setParameter(simpleInt, valuesInt2);
382382
assertEquals(9, query.count());
383383

384384
int[] valuesInt3 = {2003, 2007};
385-
query.setParameters("int", valuesInt3);
385+
query.setParameter("int", valuesInt3);
386386
assertEquals(8, query.count());
387387
}
388388
}
@@ -396,11 +396,11 @@ public void testLongNotIn() {
396396
assertEquals(7, query.count());
397397

398398
long[] valuesLong2 = {3003};
399-
query.setParameters(simpleLong, valuesLong2);
399+
query.setParameter(simpleLong, valuesLong2);
400400
assertEquals(9, query.count());
401401

402402
long[] valuesLong3 = {3003, 3007};
403-
query.setParameters("long", valuesLong3);
403+
query.setParameter("long", valuesLong3);
404404
assertEquals(8, query.count());
405405
}
406406
}
@@ -666,7 +666,7 @@ public void testStringIn() {
666666
assertEquals("foo bar", entities.get(2).getSimpleString());
667667

668668
String[] values2 = {"bar"};
669-
query.setParameters(simpleString, values2);
669+
query.setParameter(simpleString, values2);
670670
entities = query.find();
671671
}
672672
assertEquals(2, entities.size());

tests/objectbox-java-test/src/test/java/io/objectbox/query/QueryTestK.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ class QueryTestK : AbstractQueryTest() {
101101
assertEquals(3, query.count())
102102

103103
val valuesInt2 = intArrayOf(2003)
104-
query.setParameters(TestEntity_.simpleInt, valuesInt2)
104+
query.setParameter(TestEntity_.simpleInt, valuesInt2)
105105
assertEquals(1, query.count())
106106

107107
val valuesInt3 = intArrayOf(2003, 2007)
108-
query.setParameters("int", valuesInt3)
108+
query.setParameter("int", valuesInt3)
109109
assertEquals(2, query.count())
110110
}
111111

0 commit comments

Comments
 (0)