Skip to content

Commit 9428ef1

Browse files
Added QueryCondition class and functionality
1 parent 6b06c65 commit 9428ef1

File tree

8 files changed

+408
-49
lines changed

8 files changed

+408
-49
lines changed

src/main/c/generated/tiledb_wrap.cxx

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1220,6 +1220,27 @@ static tiledb_fragment_info_t* tiledb_fragment_info_tpp_value(tiledb_fragment_in
12201220
}
12211221

12221222

1223+
static tiledb_query_condition_t* *new_tiledb_query_condition_tpp() {
1224+
return new tiledb_query_condition_t*();
1225+
}
1226+
1227+
static tiledb_query_condition_t* *copy_tiledb_query_condition_tpp(tiledb_query_condition_t* value) {
1228+
return new tiledb_query_condition_t*(value);
1229+
}
1230+
1231+
static void delete_tiledb_query_condition_tpp(tiledb_query_condition_t* *obj) {
1232+
if (obj) delete obj;
1233+
}
1234+
1235+
static void tiledb_query_condition_tpp_assign(tiledb_query_condition_t* *obj, tiledb_query_condition_t* value) {
1236+
*obj = value;
1237+
}
1238+
1239+
static tiledb_query_condition_t* tiledb_query_condition_tpp_value(tiledb_query_condition_t* *obj) {
1240+
return *obj;
1241+
}
1242+
1243+
12231244
#ifdef __cplusplus
12241245
extern "C" {
12251246
#endif
@@ -4504,6 +4525,68 @@ SWIGEXPORT jlong JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1fragment_1in
45044525
}
45054526

45064527

4528+
SWIGEXPORT jlong JNICALL Java_io_tiledb_libtiledb_tiledbJNI_new_1tiledb_1query_1condition_1tpp(JNIEnv *jenv, jclass jcls) {
4529+
jlong jresult = 0 ;
4530+
tiledb_query_condition_t **result = 0 ;
4531+
4532+
(void)jenv;
4533+
(void)jcls;
4534+
result = (tiledb_query_condition_t **)new_tiledb_query_condition_tpp();
4535+
*(tiledb_query_condition_t ***)&jresult = result;
4536+
return jresult;
4537+
}
4538+
4539+
4540+
SWIGEXPORT jlong JNICALL Java_io_tiledb_libtiledb_tiledbJNI_copy_1tiledb_1query_1condition_1tpp(JNIEnv *jenv, jclass jcls, jlong jarg1) {
4541+
jlong jresult = 0 ;
4542+
tiledb_query_condition_t *arg1 = (tiledb_query_condition_t *) 0 ;
4543+
tiledb_query_condition_t **result = 0 ;
4544+
4545+
(void)jenv;
4546+
(void)jcls;
4547+
arg1 = *(tiledb_query_condition_t **)&jarg1;
4548+
result = (tiledb_query_condition_t **)copy_tiledb_query_condition_tpp(arg1);
4549+
*(tiledb_query_condition_t ***)&jresult = result;
4550+
return jresult;
4551+
}
4552+
4553+
4554+
SWIGEXPORT void JNICALL Java_io_tiledb_libtiledb_tiledbJNI_delete_1tiledb_1query_1condition_1tpp(JNIEnv *jenv, jclass jcls, jlong jarg1) {
4555+
tiledb_query_condition_t **arg1 = (tiledb_query_condition_t **) 0 ;
4556+
4557+
(void)jenv;
4558+
(void)jcls;
4559+
arg1 = *(tiledb_query_condition_t ***)&jarg1;
4560+
delete_tiledb_query_condition_tpp(arg1);
4561+
}
4562+
4563+
4564+
SWIGEXPORT void JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1query_1condition_1tpp_1assign(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
4565+
tiledb_query_condition_t **arg1 = (tiledb_query_condition_t **) 0 ;
4566+
tiledb_query_condition_t *arg2 = (tiledb_query_condition_t *) 0 ;
4567+
4568+
(void)jenv;
4569+
(void)jcls;
4570+
arg1 = *(tiledb_query_condition_t ***)&jarg1;
4571+
arg2 = *(tiledb_query_condition_t **)&jarg2;
4572+
tiledb_query_condition_tpp_assign(arg1,arg2);
4573+
}
4574+
4575+
4576+
SWIGEXPORT jlong JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1query_1condition_1tpp_1value(JNIEnv *jenv, jclass jcls, jlong jarg1) {
4577+
jlong jresult = 0 ;
4578+
tiledb_query_condition_t **arg1 = (tiledb_query_condition_t **) 0 ;
4579+
tiledb_query_condition_t *result = 0 ;
4580+
4581+
(void)jenv;
4582+
(void)jcls;
4583+
arg1 = *(tiledb_query_condition_t ***)&jarg1;
4584+
result = (tiledb_query_condition_t *)tiledb_query_condition_tpp_value(arg1);
4585+
*(tiledb_query_condition_t **)&jresult = result;
4586+
return jresult;
4587+
}
4588+
4589+
45074590
SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1query_1type_1to_1str(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2) {
45084591
jint jresult = 0 ;
45094592
tiledb_query_type_t arg1 ;

src/main/java/io/tiledb/java/api/Condition.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/main/java/io/tiledb/java/api/Query.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1761,8 +1761,19 @@ public String getStats() throws TileDBError {
17611761
return stats;
17621762
}
17631763

1764-
public void setCondition(Condition condition) {
1765-
// SWIGTYPE_p_p_tiledb_query_condition_t condition_t = tiledb.new_tiledb_quer
1764+
/**
1765+
* TODO
1766+
*
1767+
* @param queryCondition
1768+
* @throws TileDBError
1769+
*/
1770+
public void setCondition(QueryCondition queryCondition) throws TileDBError {
1771+
SWIGTYPE_p_tiledb_query_condition_t condition_t = queryCondition.getConditionp();
1772+
try {
1773+
ctx.handleError(tiledb.tiledb_query_set_condition(ctx.getCtxp(), getQueryp(), condition_t));
1774+
} catch (TileDBError err) {
1775+
throw err;
1776+
}
17661777
}
17671778

17681779
/**
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
package io.tiledb.java.api;
2+
3+
import io.tiledb.libtiledb.*;
4+
import java.math.BigInteger;
5+
6+
public class QueryCondition implements AutoCloseable {
7+
private Context ctx;
8+
private SWIGTYPE_p_tiledb_query_condition_t conditionp;
9+
private SWIGTYPE_p_p_tiledb_query_condition_t conditionpp;
10+
private Datatype type;
11+
12+
protected QueryCondition(Context ctx, SWIGTYPE_p_p_tiledb_query_condition_t conditionpp) {
13+
this.ctx = ctx;
14+
this.conditionp = tiledb.tiledb_query_condition_tpp_value(conditionpp);
15+
this.conditionpp = conditionpp;
16+
}
17+
18+
protected QueryCondition(
19+
Context ctx,
20+
String attributeName,
21+
Object value,
22+
Class conditionType,
23+
tiledb_query_condition_op_t OP)
24+
throws TileDBError {
25+
try {
26+
if (conditionType != null) {
27+
this.type = Types.getNativeType(conditionType);
28+
}
29+
conditionpp = tiledb.new_tiledb_query_condition_tpp();
30+
ctx.handleError(tiledb.tiledb_query_condition_alloc(ctx.getCtxp(), conditionpp));
31+
NativeArray array = null;
32+
if (value.getClass().isArray()) {
33+
array = new NativeArray(ctx, value, this.type.javaClass());
34+
} else {
35+
if (this.type != null) {
36+
int byteSize = this.type.getNativeSize();
37+
array = new NativeArray(ctx, byteSize, this.type.javaClass());
38+
array.setItem(0, value);
39+
}
40+
}
41+
conditionp = tiledb.tiledb_query_condition_tpp_value(conditionpp);
42+
if (this.type == null) {
43+
ctx.handleError(
44+
tiledb.tiledb_query_condition_init(
45+
ctx.getCtxp(), conditionp, attributeName, null, BigInteger.valueOf(4), OP));
46+
} else {
47+
ctx.handleError(
48+
tiledb.tiledb_query_condition_init(
49+
ctx.getCtxp(),
50+
conditionp,
51+
attributeName,
52+
array.toVoidPointer(),
53+
BigInteger.valueOf(array.getSize()),
54+
OP));
55+
}
56+
} catch (TileDBError err) {
57+
tiledb.delete_tiledb_query_condition_tpp(conditionpp);
58+
throw err;
59+
}
60+
this.ctx = ctx;
61+
}
62+
63+
protected SWIGTYPE_p_tiledb_query_condition_t getConditionp() {
64+
return this.conditionp;
65+
}
66+
67+
protected Context getCtx() {
68+
return this.ctx;
69+
}
70+
71+
public void close() {
72+
if (conditionp != null && conditionpp != null) {
73+
tiledb.tiledb_query_condition_free(conditionpp);
74+
conditionpp = null;
75+
conditionp = null;
76+
}
77+
}
78+
79+
public QueryCondition combine(QueryCondition con2, tiledb_query_condition_combination_op_t OP)
80+
throws TileDBError {
81+
SWIGTYPE_p_p_tiledb_query_condition_t combinedCondition;
82+
try {
83+
combinedCondition = tiledb.new_tiledb_query_condition_tpp();
84+
ctx.handleError(tiledb.tiledb_query_condition_alloc(ctx.getCtxp(), conditionpp));
85+
ctx.handleError(
86+
tiledb.tiledb_query_condition_combine(
87+
ctx.getCtxp(), conditionp, con2.getConditionp(), OP, combinedCondition));
88+
} catch (TileDBError err) {
89+
tiledb.delete_tiledb_query_condition_tpp(conditionpp);
90+
throw err;
91+
}
92+
return new QueryCondition(ctx, combinedCondition);
93+
}
94+
}

src/main/java/io/tiledb/libtiledb/NativeLibLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ private static Path extractLibraryFile(
317317
*/
318318
private static Path findNativeLibrary(String libraryName, boolean mapLibraryName) {
319319
String mappedLibraryName = mapLibraryName ? System.mapLibraryName(libraryName) : libraryName;
320-
String libDir = LIB_RESOURCE_DIR + "/" + getOSClassifier();
320+
String libDir = LIB_RESOURCE_DIR;
321321
String libPath = libDir + "/" + mappedLibraryName;
322322

323323
boolean hasNativeLib = hasResource(libPath);

src/main/java/io/tiledb/libtiledb/tiledb.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -919,6 +919,38 @@ public static SWIGTYPE_p_tiledb_fragment_info_t tiledb_fragment_info_tpp_value(
919919
return (cPtr == 0) ? null : new SWIGTYPE_p_tiledb_fragment_info_t(cPtr, false);
920920
}
921921

922+
public static SWIGTYPE_p_p_tiledb_query_condition_t new_tiledb_query_condition_tpp() {
923+
long cPtr = tiledbJNI.new_tiledb_query_condition_tpp();
924+
return (cPtr == 0) ? null : new SWIGTYPE_p_p_tiledb_query_condition_t(cPtr, false);
925+
}
926+
927+
public static SWIGTYPE_p_p_tiledb_query_condition_t copy_tiledb_query_condition_tpp(
928+
SWIGTYPE_p_tiledb_query_condition_t value) {
929+
long cPtr =
930+
tiledbJNI.copy_tiledb_query_condition_tpp(
931+
SWIGTYPE_p_tiledb_query_condition_t.getCPtr(value));
932+
return (cPtr == 0) ? null : new SWIGTYPE_p_p_tiledb_query_condition_t(cPtr, false);
933+
}
934+
935+
public static void delete_tiledb_query_condition_tpp(SWIGTYPE_p_p_tiledb_query_condition_t obj) {
936+
tiledbJNI.delete_tiledb_query_condition_tpp(SWIGTYPE_p_p_tiledb_query_condition_t.getCPtr(obj));
937+
}
938+
939+
public static void tiledb_query_condition_tpp_assign(
940+
SWIGTYPE_p_p_tiledb_query_condition_t obj, SWIGTYPE_p_tiledb_query_condition_t value) {
941+
tiledbJNI.tiledb_query_condition_tpp_assign(
942+
SWIGTYPE_p_p_tiledb_query_condition_t.getCPtr(obj),
943+
SWIGTYPE_p_tiledb_query_condition_t.getCPtr(value));
944+
}
945+
946+
public static SWIGTYPE_p_tiledb_query_condition_t tiledb_query_condition_tpp_value(
947+
SWIGTYPE_p_p_tiledb_query_condition_t obj) {
948+
long cPtr =
949+
tiledbJNI.tiledb_query_condition_tpp_value(
950+
SWIGTYPE_p_p_tiledb_query_condition_t.getCPtr(obj));
951+
return (cPtr == 0) ? null : new SWIGTYPE_p_tiledb_query_condition_t(cPtr, false);
952+
}
953+
922954
public static int sizeOfInt32() {
923955
return tiledbJNI.sizeOfInt32();
924956
}

src/main/java/io/tiledb/libtiledb/tiledbJNI.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -577,6 +577,16 @@ public static final native void uint64_tArray_setitem(
577577

578578
public static final native long tiledb_fragment_info_tpp_value(long jarg1);
579579

580+
public static final native long new_tiledb_query_condition_tpp();
581+
582+
public static final native long copy_tiledb_query_condition_tpp(long jarg1);
583+
584+
public static final native void delete_tiledb_query_condition_tpp(long jarg1);
585+
586+
public static final native void tiledb_query_condition_tpp_assign(long jarg1, long jarg2);
587+
588+
public static final native long tiledb_query_condition_tpp_value(long jarg1);
589+
580590
public static final native int sizeOfInt32();
581591

582592
public static final native int sizeOfInt64();

0 commit comments

Comments
 (0)