Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 113 additions & 0 deletions src/main/c/generated/tiledb_wrap.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -6068,6 +6068,71 @@ SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1attribute_1du
}


SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1attribute_1set_1fill_1value(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3, jobject jarg4) {
jint jresult = 0 ;
tiledb_ctx_t *arg1 = (tiledb_ctx_t *) 0 ;
tiledb_attribute_t *arg2 = (tiledb_attribute_t *) 0 ;
void *arg3 = (void *) 0 ;
uint64_t arg4 ;
int32_t result;

(void)jenv;
(void)jcls;
arg1 = *(tiledb_ctx_t **)&jarg1;
arg2 = *(tiledb_attribute_t **)&jarg2;
arg3 = *(void **)&jarg3;
{
jclass clazz;
jmethodID mid;
jbyteArray ba;
jbyte* bae;
jsize sz;
int i;

if (!jarg4) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "BigInteger null");
return 0;
}
clazz = jenv->GetObjectClass(jarg4);
mid = jenv->GetMethodID(clazz, "toByteArray", "()[B");
ba = (jbyteArray)jenv->CallObjectMethod(jarg4, mid);
bae = jenv->GetByteArrayElements(ba, 0);
sz = jenv->GetArrayLength(ba);
arg4 = 0;
if (sz > 0) {
arg4 = (uint64_t)(signed char)bae[0];
for(i=1; i<sz; i++) {
arg4 = (arg4 << 8) | (uint64_t)(unsigned char)bae[i];
}
}
jenv->ReleaseByteArrayElements(ba, bae, 0);
}
result = (int32_t)tiledb_attribute_set_fill_value(arg1,arg2,(void const *)arg3,arg4);
jresult = (jint)result;
return jresult;
}


SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1attribute_1get_1fill_1value(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
jint jresult = 0 ;
tiledb_ctx_t *arg1 = (tiledb_ctx_t *) 0 ;
tiledb_attribute_t *arg2 = (tiledb_attribute_t *) 0 ;
void **arg3 = (void **) 0 ;
uint64_t *arg4 = (uint64_t *) 0 ;
int32_t result;

(void)jenv;
(void)jcls;
arg1 = *(tiledb_ctx_t **)&jarg1;
arg2 = *(tiledb_attribute_t **)&jarg2;
arg3 = *(void ***)&jarg3;
arg4 = *(uint64_t **)&jarg4;
result = (int32_t)tiledb_attribute_get_fill_value(arg1,arg2,(void const **)arg3,arg4);
jresult = (jint)result;
return jresult;
}


SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1domain_1alloc(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
jint jresult = 0 ;
tiledb_ctx_t *arg1 = (tiledb_ctx_t *) 0 ;
Expand Down Expand Up @@ -7338,6 +7403,24 @@ SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1query_1get_1l
}


SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1query_1get_1array(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3) {
jint jresult = 0 ;
tiledb_ctx_t *arg1 = (tiledb_ctx_t *) 0 ;
tiledb_query_t *arg2 = (tiledb_query_t *) 0 ;
tiledb_array_t **arg3 = (tiledb_array_t **) 0 ;
int32_t result;

(void)jenv;
(void)jcls;
arg1 = *(tiledb_ctx_t **)&jarg1;
arg2 = *(tiledb_query_t **)&jarg2;
arg3 = *(tiledb_array_t ***)&jarg3;
result = (int32_t)tiledb_query_get_array(arg1,arg2,arg3);
jresult = (jint)result;
return jresult;
}


SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1query_1add_1range(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6) {
jint jresult = 0 ;
tiledb_ctx_t *arg1 = (tiledb_ctx_t *) 0 ;
Expand Down Expand Up @@ -9235,6 +9318,36 @@ SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1vfs_1move_1di
}


SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1vfs_1copy_1file(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jstring jarg3, jstring jarg4) {
jint jresult = 0 ;
tiledb_ctx_t *arg1 = (tiledb_ctx_t *) 0 ;
tiledb_vfs_t *arg2 = (tiledb_vfs_t *) 0 ;
char *arg3 = (char *) 0 ;
char *arg4 = (char *) 0 ;
int32_t result;

(void)jenv;
(void)jcls;
arg1 = *(tiledb_ctx_t **)&jarg1;
arg2 = *(tiledb_vfs_t **)&jarg2;
arg3 = 0;
if (jarg3) {
arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
if (!arg3) return 0;
}
arg4 = 0;
if (jarg4) {
arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
if (!arg4) return 0;
}
result = (int32_t)tiledb_vfs_copy_file(arg1,arg2,(char const *)arg3,(char const *)arg4);
jresult = (jint)result;
if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
return jresult;
}


SWIGEXPORT jint JNICALL Java_io_tiledb_libtiledb_tiledbJNI_tiledb_1vfs_1open(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jstring jarg3, jint jarg4, jlong jarg5) {
jint jresult = 0 ;
tiledb_ctx_t *arg1 = (tiledb_ctx_t *) 0 ;
Expand Down
30 changes: 30 additions & 0 deletions src/main/java/io/tiledb/java/api/Attribute.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import static io.tiledb.java.api.Constants.TILEDB_VAR_NUM;

import io.tiledb.libtiledb.*;
import java.math.BigInteger;

/**
* Describes an Attribute of an Array cell.
Expand Down Expand Up @@ -260,6 +261,35 @@ public FilterList getFilterList() throws TileDBError {
return filterlist;
}

public void setFillValue(NativeArray value, BigInteger size) throws TileDBError {
try {
ctx.handleError(
tiledb.tiledb_attribute_set_fill_value(
ctx.getCtxp(), attributep, value.toVoidPointer(), size));
} catch (TileDBError err) {
throw err;
}
}

public Pair<Object, Long> getFillValue() throws TileDBError {

try (NativeArray value = new NativeArray(ctx, this.type.getNativeSize(), this.type)) {
SWIGTYPE_p_unsigned_long_long size = tiledb.new_ullp();
SWIGTYPE_p_p_void v = tiledb.new_voidpArray(1);

ctx.handleError(tiledb.tiledb_attribute_get_fill_value(ctx.getCtxp(), attributep, v, size));

Object fillValue;
try (NativeArray fillValueArray = new NativeArray(ctx, getType(), v, 1)) {
fillValue = fillValueArray.getItem(0);
}

return new Pair(fillValue, tiledb.ullp_value(size));
} catch (TileDBError err) {
throw err;
}
}

/** @return A String representation for the Attribute. */
@Override
public String toString() {
Expand Down
43 changes: 43 additions & 0 deletions src/main/java/io/tiledb/libtiledb/tiledb.java
Original file line number Diff line number Diff line change
Expand Up @@ -1652,6 +1652,30 @@ public static int tiledb_attribute_dump(
SWIGTYPE_p_FILE.getCPtr(out));
}

public static int tiledb_attribute_set_fill_value(
SWIGTYPE_p_tiledb_ctx_t ctx,
SWIGTYPE_p_tiledb_attribute_t attr,
SWIGTYPE_p_void value,
java.math.BigInteger size) {
return tiledbJNI.tiledb_attribute_set_fill_value(
SWIGTYPE_p_tiledb_ctx_t.getCPtr(ctx),
SWIGTYPE_p_tiledb_attribute_t.getCPtr(attr),
SWIGTYPE_p_void.getCPtr(value),
size);
}

public static int tiledb_attribute_get_fill_value(
SWIGTYPE_p_tiledb_ctx_t ctx,
SWIGTYPE_p_tiledb_attribute_t attr,
SWIGTYPE_p_p_void value,
SWIGTYPE_p_unsigned_long_long size) {
return tiledbJNI.tiledb_attribute_get_fill_value(
SWIGTYPE_p_tiledb_ctx_t.getCPtr(ctx),
SWIGTYPE_p_tiledb_attribute_t.getCPtr(attr),
SWIGTYPE_p_p_void.getCPtr(value),
SWIGTYPE_p_unsigned_long_long.getCPtr(size));
}

public static int tiledb_domain_alloc(
SWIGTYPE_p_tiledb_ctx_t ctx, SWIGTYPE_p_p_tiledb_domain_t domain) {
return tiledbJNI.tiledb_domain_alloc(
Expand Down Expand Up @@ -2295,6 +2319,16 @@ public static int tiledb_query_get_layout(
SWIGTYPE_p_tiledb_layout_t.getCPtr(query_layout));
}

public static int tiledb_query_get_array(
SWIGTYPE_p_tiledb_ctx_t ctx,
SWIGTYPE_p_tiledb_query_t query,
SWIGTYPE_p_p_tiledb_array_t array) {
return tiledbJNI.tiledb_query_get_array(
SWIGTYPE_p_tiledb_ctx_t.getCPtr(ctx),
SWIGTYPE_p_tiledb_query_t.getCPtr(query),
SWIGTYPE_p_p_tiledb_array_t.getCPtr(array));
}

public static int tiledb_query_add_range(
SWIGTYPE_p_tiledb_ctx_t ctx,
SWIGTYPE_p_tiledb_query_t query,
Expand Down Expand Up @@ -3081,6 +3115,15 @@ public static int tiledb_vfs_move_dir(
new_uri);
}

public static int tiledb_vfs_copy_file(
SWIGTYPE_p_tiledb_ctx_t ctx, SWIGTYPE_p_tiledb_vfs_t vfs, String old_uri, String new_uri) {
return tiledbJNI.tiledb_vfs_copy_file(
SWIGTYPE_p_tiledb_ctx_t.getCPtr(ctx),
SWIGTYPE_p_tiledb_vfs_t.getCPtr(vfs),
old_uri,
new_uri);
}

public static int tiledb_vfs_open(
SWIGTYPE_p_tiledb_ctx_t ctx,
SWIGTYPE_p_tiledb_vfs_t vfs,
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/io/tiledb/libtiledb/tiledbConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ public interface tiledbConstants {
public static final int TILEDB_OK = 0;
public static final int TILEDB_OOM = (-2);
public static final int TILEDB_VERSION_MAJOR = 2;
public static final int TILEDB_VERSION_MINOR = 0;
public static final int TILEDB_VERSION_PATCH = 5;
public static final int TILEDB_VERSION_MINOR = 1;
public static final int TILEDB_VERSION_PATCH = 2;
}
11 changes: 11 additions & 0 deletions src/main/java/io/tiledb/libtiledb/tiledbJNI.java
Original file line number Diff line number Diff line change
Expand Up @@ -795,6 +795,12 @@ public static final native int tiledb_attribute_get_cell_val_num(

public static final native int tiledb_attribute_dump(long jarg1, long jarg2, long jarg3);

public static final native int tiledb_attribute_set_fill_value(
long jarg1, long jarg2, long jarg3, java.math.BigInteger jarg4);

public static final native int tiledb_attribute_get_fill_value(
long jarg1, long jarg2, long jarg3, long jarg4);

public static final native int tiledb_domain_alloc(long jarg1, long jarg2);

public static final native void tiledb_domain_free(long jarg1);
Expand Down Expand Up @@ -965,6 +971,8 @@ public static final native int tiledb_query_submit_async(

public static final native int tiledb_query_get_layout(long jarg1, long jarg2, long jarg3);

public static final native int tiledb_query_get_array(long jarg1, long jarg2, long jarg3);

public static final native int tiledb_query_add_range(
long jarg1, long jarg2, long jarg3, long jarg4, long jarg5, long jarg6);

Expand Down Expand Up @@ -1170,6 +1178,9 @@ public static final native int tiledb_vfs_move_file(
public static final native int tiledb_vfs_move_dir(
long jarg1, long jarg2, String jarg3, String jarg4);

public static final native int tiledb_vfs_copy_file(
long jarg1, long jarg2, String jarg3, String jarg4);

public static final native int tiledb_vfs_open(
long jarg1, long jarg2, String jarg3, int jarg4, long jarg5);

Expand Down
49 changes: 49 additions & 0 deletions src/test/java/io/tiledb/java/api/AttributeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

import static io.tiledb.java.api.Constants.TILEDB_VAR_NUM;

import java.math.BigInteger;
import org.junit.Assert;
import org.junit.Test;

Expand Down Expand Up @@ -59,4 +60,52 @@ public void testAttributeDatatype() throws Exception {
Assert.assertEquals(Datatype.TILEDB_FLOAT32, a.getType());
}
}

@Test
public void testAttributeSetFillValue() throws Exception {
try (Context ctx = new Context();
Attribute a = new Attribute(ctx, "a2", Datatype.TILEDB_INT32)) {

NativeArray arr = new NativeArray(ctx, 1, Datatype.TILEDB_INT32);

arr.setItem(0, 5);

a.setFillValue(arr, BigInteger.valueOf(arr.getNativeTypeSize() * arr.getSize()));

Assert.assertEquals(5, a.getFillValue().getFirst());
Assert.assertEquals(
BigInteger.valueOf(arr.getNativeTypeSize() * arr.getSize()),
a.getFillValue().getSecond());
}

try (Context ctx = new Context();
Attribute a = new Attribute(ctx, "a2", Datatype.TILEDB_INT64)) {

NativeArray arr = new NativeArray(ctx, 1, Datatype.TILEDB_INT64);

arr.setItem(0, 5L);

a.setFillValue(arr, BigInteger.valueOf(arr.getNativeTypeSize() * arr.getSize()));

Assert.assertEquals(5L, a.getFillValue().getFirst());
Assert.assertEquals(
BigInteger.valueOf(arr.getNativeTypeSize() * arr.getSize()),
a.getFillValue().getSecond());
}

try (Context ctx = new Context();
Attribute a = new Attribute(ctx, "a2", Datatype.TILEDB_CHAR)) {

NativeArray arr = new NativeArray(ctx, 1, Datatype.TILEDB_CHAR);

arr.setItem(0, "c");

a.setFillValue(arr, BigInteger.valueOf(arr.getNativeTypeSize() * arr.getSize()));

Assert.assertEquals((byte) 'c', a.getFillValue().getFirst());
Assert.assertEquals(
BigInteger.valueOf(arr.getNativeTypeSize() * arr.getSize()),
a.getFillValue().getSecond());
}
}
}