Skip to content

Commit fdfbfb8

Browse files
committed
refactor v2 code
1 parent df6b4f7 commit fdfbfb8

3 files changed

Lines changed: 8 additions & 13 deletions

File tree

src/main/java/org/hdf5javalib/examples/hdf5examples/HDF5Debug.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ private void run() {
4747
// List all .h5 files in HDF5Examples resources directory
4848
// ATL03_20250302235544_11742607_006_01
4949
// Path dirPath = Paths.get(Objects.requireNonNull(HDF5Debug.class.getClassLoader().getResource("HDF5Examples/h5ex_g_compact2.h5")).toURI());
50-
Path dirPath = Paths.get("c:/users/karln/Downloads/ATL03_20250302235544_11742607_006_01.h5");
50+
Path dirPath = Paths.get("c:/users/karnicho/Downloads/ATL03_20250302235544_11742607_007_01.h5");
5151
processFile(dirPath);
5252
} catch (Exception e) {
5353
throw new IllegalStateException(e);
@@ -69,7 +69,7 @@ private static void processFile(Path filePath) {
6969
// System.out.println("{} " + dataSet);
7070
//// System.out.println("{} " + dataSet.getObjectPath());
7171
//// log.info("{} ", dataSet);
72-
// HdfDisplaySumUtils.displayData(channel, dataSet, reader);
72+
// HdfDisplayUtils.displayData(channel, dataSet, reader, HdfDisplayUtils.DisplayMode.SUMMARY_STATS);
7373
//// displayScalarData(channel, dataSet, HdfFloatPoint.class, reader);
7474

7575
} catch (Exception e) {

src/main/java/org/hdf5javalib/hdfjava/HdfDataset.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -282,10 +282,10 @@ public synchronized ByteBuffer getDatasetData(SeekableByteChannel channel, long
282282
}
283283
chunkBuffer.flip();
284284

285-
Optional<FilterPipelineMessage> fpm = objectHeader.findMessageByType(FilterPipelineMessage.class);
286-
if ( fpm.isPresent() ) {
287-
chunkBuffer = fpm.get().getDeflater().deflate(chunkBuffer);
288-
}
285+
Optional<FilterPipelineMessage> fpm = objectHeader.findMessageByType(FilterPipelineMessage.class);
286+
if ( fpm.isPresent() ) {
287+
chunkBuffer = fpm.get().getDeflater().deflate(chunkBuffer);
288+
}
289289
// Handle filters/decompression (stubbed)
290290
if (entry.getFilterMask() != 0) {
291291
throw new UnsupportedOperationException("Filters not supported yet");

src/main/java/org/hdf5javalib/hdfjava/HdfFileReader.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ private void readV1GroupHierarchy(HdfGroup parentGroup, HdfLocalHeap localHeap,
181181
} else {
182182
// Leaf node: process symbol table entries
183183
for (HdfGroupForGroupBTreeEntry entry : groupBTree.getEntries()) {
184-
HdfGroupSymbolTableNode groupSymbolTableNode = ((HdfGroupForGroupBTreeEntry) entry).getGroupSymbolTableNode();
184+
HdfGroupSymbolTableNode groupSymbolTableNode = entry.getGroupSymbolTableNode();
185185
if (groupSymbolTableNode != null) {
186186
for (HdfSymbolTableEntry symbolTableEntry : groupSymbolTableNode.getSymbolTableEntries()) {
187187
String objectName = localHeap.stringAtOffset(symbolTableEntry.getLinkNameOffset());
@@ -250,9 +250,7 @@ private void processV2GroupLinks(HdfGroup group) throws Exception {
250250
// 2. Process links stored directly as Link Messages in the header (for smaller, compact groups)
251251
for (HdfMessage hdfMessage : group.getObjectHeader().getHeaderMessages()) {
252252
if (hdfMessage instanceof LinkMessage linkMessage) {
253-
long objectHeaderOffset = linkMessage.getLinkInformation().getInstance(Long.class);
254-
String linkName = linkMessage.getLinkName();
255-
processLink(group, linkName, objectHeaderOffset);
253+
processLink(group, linkMessage.getLinkName(), linkMessage.getLinkInformation().getInstance(Long.class));
256254
}
257255
}
258256
}
@@ -643,9 +641,7 @@ private static HdfBTreeV1ForGroup readFromSeekableByteChannelRecursiveForGroups(
643641
for (int i = 0; i < entriesUsed; i++) {
644642
HdfFixedPoint childPointer = HdfReadUtils.readHdfFixedPointFromBuffer(hdfOffset, entriesBuffer);
645643
HdfFixedPoint key = HdfReadUtils.readHdfFixedPointFromBuffer(hdfLength, entriesBuffer);
646-
long filePosAfterEntriesBlock = fileChannel.position();
647644
long childAddress = childPointer.getInstance(Long.class);
648-
fileChannel.position(childAddress);
649645

650646
HdfGroupForGroupBTreeEntry entry;
651647
if (nodeLevel == 1) {
@@ -657,7 +653,6 @@ private static HdfBTreeV1ForGroup readFromSeekableByteChannelRecursiveForGroups(
657653
HdfGroupSymbolTableNode child = readSnodFromSeekableByteChannel(fileChannel, hdfDataFile);
658654
entry = new HdfGroupForGroupBTreeEntry(key, childPointer, null, child); // Assuming entry constructor accepts Object for last param
659655
}
660-
fileChannel.position(filePosAfterEntriesBlock);
661656
entries.add(entry);
662657
}
663658
return currentNode;

0 commit comments

Comments
 (0)