summaryrefslogtreecommitdiffstats
path: root/java/src/hdf/hdf5lib/H5.java
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2022-07-11 20:59:52 (GMT)
committerGitHub <noreply@github.com>2022-07-11 20:59:52 (GMT)
commitb9d1d66ab84b492691d3c73e71b1374a7da19e50 (patch)
tree91094aab994ae89fa356bd926726b3909f86d58e /java/src/hdf/hdf5lib/H5.java
parent663321087a73e760a028517584731eb8ef308ba2 (diff)
downloadhdf5-b9d1d66ab84b492691d3c73e71b1374a7da19e50.zip
hdf5-b9d1d66ab84b492691d3c73e71b1374a7da19e50.tar.gz
hdf5-b9d1d66ab84b492691d3c73e71b1374a7da19e50.tar.bz2
Develop HDFFV-11310 (#1811)
* Rework java vl check in read/write. Handle old refs in h5dump * Committing clang-format changes * Java changes allow default VL reads * Fix JNI utility for old refs * HDFFV-11310 - implement vlen read/write for atomic types. * format check fix * Mostly format fixes * More format issues * Two format changes * Use JNI names for sizeof * format change * fix size typo * Change to older method to initialize list * remove unused var * format fix * switch writeVL functions to use datatype instead of java type * Add VL option to generic read/write check * Correct function name typo * Add JIRA issue * Correct note to match change in code. * HDFFV-11318 add VL references as byte arrays * Add release note and format changes * Another format update * Fix unreleased allocations * Fix format * format correction Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'java/src/hdf/hdf5lib/H5.java')
-rw-r--r--java/src/hdf/hdf5lib/H5.java27
1 files changed, 19 insertions, 8 deletions
diff --git a/java/src/hdf/hdf5lib/H5.java b/java/src/hdf/hdf5lib/H5.java
index 905a092..12e5f87 100644
--- a/java/src/hdf/hdf5lib/H5.java
+++ b/java/src/hdf/hdf5lib/H5.java
@@ -1242,6 +1242,10 @@ public class H5 implements java.io.Serializable {
log.trace("H5Aread_string type");
status = H5Aread_string(attr_id, mem_type_id, (String[])obj);
}
+ else if (H5.H5Tget_class(mem_type_id) == HDF5Constants.H5T_VLEN) {
+ log.trace("H5AreadVL type");
+ status = H5AreadVL(attr_id, mem_type_id, (Object[])obj);
+ }
else {
// Create a data buffer to hold the data into a Java Array
HDFArray theArray = new HDFArray(obj);
@@ -1788,6 +1792,10 @@ public class H5 implements java.io.Serializable {
log.trace("H5Dwrite_string type");
status = H5Awrite_string(attr_id, mem_type_id, (String[])obj);
}
+ else if (H5.H5Tget_class(mem_type_id) == HDF5Constants.H5T_VLEN) {
+ log.trace("H5AwriteVL type");
+ status = H5AwriteVL(attr_id, mem_type_id, (Object[])obj);
+ }
else {
HDFArray theArray = new HDFArray(obj);
byte[] buf = theArray.byteify();
@@ -2772,6 +2780,11 @@ public class H5 implements java.io.Serializable {
status = H5Dread_string(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id,
(String[])obj);
}
+ else if (H5.H5Tget_class(mem_type_id) == HDF5Constants.H5T_VLEN) {
+ log.trace("H5DreadVL type");
+ status =
+ H5DreadVL(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id, (Object[])obj);
+ }
else {
// Create a data buffer to hold the data into a Java Array
HDFArray theArray = new HDFArray(obj);
@@ -3450,6 +3463,11 @@ public class H5 implements java.io.Serializable {
status = H5Dwrite_string(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id,
(String[])obj);
}
+ else if (H5.H5Tget_class(mem_type_id) == HDF5Constants.H5T_VLEN) {
+ log.trace("H5DwriteVL type");
+ status = H5DwriteVL(dataset_id, mem_type_id, mem_space_id, file_space_id, xfer_plist_id,
+ (Object[])obj);
+ }
else {
HDFArray theArray = new HDFArray(obj);
byte[] buf = theArray.byteify();
@@ -9356,9 +9374,8 @@ public class H5 implements java.io.Serializable {
byte[] buf = theArray.emptyBytes();
int status = H5Pget_fill_value(plist_id, type_id, buf);
- if (status >= 0) {
+ if (status >= 0)
obj = theArray.arrayify(buf);
- }
return status;
}
@@ -11018,8 +11035,6 @@ public class H5 implements java.io.Serializable {
public synchronized static native void H5Rdestroy(byte[] ref_ptr)
throws HDF5LibraryException, NullPointerException, IllegalArgumentException;
- // Info //
-
/**
* H5Rget_type retrieves the type of a reference.
*
@@ -11076,8 +11091,6 @@ public class H5 implements java.io.Serializable {
public synchronized static native byte[] H5Rcopy(byte[] src_ref_ptr)
throws HDF5LibraryException, NullPointerException, IllegalArgumentException;
- // Dereference //
-
/**
* H5Ropen_object opens that object and returns an identifier.
* The object opened with this function should be closed when it is no longer needed
@@ -11224,8 +11237,6 @@ public class H5 implements java.io.Serializable {
public synchronized static native int H5Rget_obj_type3(byte[] ref_ptr, long rapl_id)
throws HDF5LibraryException, NullPointerException, IllegalArgumentException;
- // Get name //
-
/**
* H5Rget_file_name retrieves the file name for the object, region or attribute reference pointed to.
*