// Path: src/main/java/org/tinspin/data/hdf5/HDF5BlockSNOD.java
// 	static class SymbolTableEntry extends HDF5Block {
// 		static final int SIZE = 40;
// 		
// 		//Link Name OffsetO
// 		long l0LinkNameOffsetO;
// 
// 		//Object Header AddressO
// 		int l8ObjectHeaderAddressO;
// 
// 		//Cache Type
// 		long i16CachedType;
// 		
// 		//Reserved (zero)
// 		long i20Zero;
// 
// 		//Scratch-pad Space (16 bytes)
// 		
// 		//CT 1: Address of B-treeO
// 		long l24ct1addressBTreeO;
// 
// 		//CT 1: Address of Name HeapO
// 		long l32ct1addressNameHeapO;
// 
// 		//CT 2: Offset to Link Value (4 bytes)
// 		long i24ct2offsetToLink;
// 		
// 		public SymbolTableEntry(int offset, int version) {
// 			super(offset, version);
// 		}
// 		
// 		@Override
// 		public String toString() {
// 			String ret =  
// 					"SymTE(" + getOffset() + ")" + Reader.L + 
// 					//Link Name OffsetO
// 					"LinkNameOffset=" + l0LinkNameOffsetO + Reader.L +
// 
// 					//Object Header AddressO
// 					"ObjectHeaderAddress=" + l8ObjectHeaderAddressO + Reader.L +
// 
// 					//Cache Type
// 					"CachedType=" + i16CachedType + Reader.L;
// 
// 			//Reserved (zero)
// 			//"Zero=" + i12Zero + Reader.L;
// 
// 			//Scratch-pad Space (16 bytes)
// 
// 			if (i16CachedType == 1) {
// 				ret +=
// 						//CT 1: Address of B-treeO
// 						"ct1addressBTreeO=" + l24ct1addressBTreeO + Reader.L + 
// 
// 						//CT 1: Address of Name HeapO
// 						"ct1addressNameHeapO=" + l32ct1addressNameHeapO;
// 			} else if (i16CachedType == 2) {
// 				ret +=
// 						//CT 2: Offset to Link Value (4 bytes)
// 						"ct2offsetToLink=" + i24ct2offsetToLink;
// 			}
// 			return ret;
// 		}
// 
// 		public int getOffsetTREE() {
// 			if (i16CachedType == 1) {
// 				return (int) l24ct1addressBTreeO;
// 			} else if (i16CachedType == 2) {
// //				ret +=
// //						//CT 2: Offset to Link Value (4 bytes)
// //						"ct2offsetToLink=" + i24ct2offsetToLink;
// 			}
// 			throw new UnsupportedOperationException();
// 		}
// 
// 		public int getOffsetHEAP() {
// 			if (i16CachedType == 1) {
// 				return (int) l32ct1addressNameHeapO;
// 			} else if (i16CachedType == 2) {
// //				ret +=
// //						//CT 2: Offset to Link Value (4 bytes)
// //						"ct2offsetToLink=" + i24ct2offsetToLink;
// 			}
// 			throw new UnsupportedOperationException();
// 		}
// 	}


import java.util.Arrays;
import org.tinspin.data.hdf5.HDF5BlockSNOD.SymbolTableEntry;
/*
 * Copyright 2018 Tilmann Zäschke. All Rights Reserved.
 *
 * This software is the proprietary information of Tilmann Zäschke.
 * Use is subject to license terms.
 */
package org.tinspin.data.hdf5;



class HDF5BlockHEAP extends HDF5Block {
	//Signature
	int i0Signature;
	//Version
	//int b4Version;
	//Reserved (zero)
	int b5Zero;
	int b6Zero;
	int b7Zero;

	//Data Segment SizeL
	long l8dataSegmentSize;

	//Offset to Head of Free-listL
	long l16freeListOffset;

	//Address of Data SegmentO
	long l24dataSegementOffset;
	
	String[] heap;
	int[] heapOffset;
	int heapSize = 0;
	
	public HDF5BlockHEAP(int offset, int version) {
		super(offset, version);
	}
	
	@Override
	public String toString() {
		return "HEAP(" + getOffset() + ")" + Reader.L + 
//				//Signature
//				"Signature=" + i0Signature + Reader.L +
				//Version
				"Version=" + getVersion() + Reader.L +
				//Reserved (zero)
				//"" + b5Zero + L +
				//"" + b6Zero + L +
				//"" + b7Zero + L +

				//Data Segment SizeL
				"dataSegmentSize=" + l8dataSegmentSize + Reader.L +

				//Offset to Head of Free-listL
				"freeListOffset=" + l16freeListOffset + Reader.L +

				//Address of Data SegmentO
				"dataSegementOffset=" + l24dataSegementOffset;
	}

// Path: src/main/java/org/tinspin/data/hdf5/HDF5BlockSNOD.java
// 	static class SymbolTableEntry extends HDF5Block {
// 		static final int SIZE = 40;
// 		
// 		//Link Name OffsetO
// 		long l0LinkNameOffsetO;
// 
// 		//Object Header AddressO
// 		int l8ObjectHeaderAddressO;
// 
// 		//Cache Type
// 		long i16CachedType;
// 		
// 		//Reserved (zero)
// 		long i20Zero;
// 
// 		//Scratch-pad Space (16 bytes)
// 		
// 		//CT 1: Address of B-treeO
// 		long l24ct1addressBTreeO;
// 
// 		//CT 1: Address of Name HeapO
// 		long l32ct1addressNameHeapO;
// 
// 		//CT 2: Offset to Link Value (4 bytes)
// 		long i24ct2offsetToLink;
// 		
// 		public SymbolTableEntry(int offset, int version) {
// 			super(offset, version);
// 		}
// 		
// 		@Override
// 		public String toString() {
// 			String ret =  
// 					"SymTE(" + getOffset() + ")" + Reader.L + 
// 					//Link Name OffsetO
// 					"LinkNameOffset=" + l0LinkNameOffsetO + Reader.L +
// 
// 					//Object Header AddressO
// 					"ObjectHeaderAddress=" + l8ObjectHeaderAddressO + Reader.L +
// 
// 					//Cache Type
// 					"CachedType=" + i16CachedType + Reader.L;
// 
// 			//Reserved (zero)
// 			//"Zero=" + i12Zero + Reader.L;
// 
// 			//Scratch-pad Space (16 bytes)
// 
// 			if (i16CachedType == 1) {
// 				ret +=
// 						//CT 1: Address of B-treeO
// 						"ct1addressBTreeO=" + l24ct1addressBTreeO + Reader.L + 
// 
// 						//CT 1: Address of Name HeapO
// 						"ct1addressNameHeapO=" + l32ct1addressNameHeapO;
// 			} else if (i16CachedType == 2) {
// 				ret +=
// 						//CT 2: Offset to Link Value (4 bytes)
// 						"ct2offsetToLink=" + i24ct2offsetToLink;
// 			}
// 			return ret;
// 		}
// 
// 		public int getOffsetTREE() {
// 			if (i16CachedType == 1) {
// 				return (int) l24ct1addressBTreeO;
// 			} else if (i16CachedType == 2) {
// //				ret +=
// //						//CT 2: Offset to Link Value (4 bytes)
// //						"ct2offsetToLink=" + i24ct2offsetToLink;
// 			}
// 			throw new UnsupportedOperationException();
// 		}
// 
// 		public int getOffsetHEAP() {
// 			if (i16CachedType == 1) {
// 				return (int) l32ct1addressNameHeapO;
// 			} else if (i16CachedType == 2) {
// //				ret +=
// //						//CT 2: Offset to Link Value (4 bytes)
// //						"ct2offsetToLink=" + i24ct2offsetToLink;
// 			}
// 			throw new UnsupportedOperationException();
// 		}
// 	}


// Path: src/main/java/org/tinspin/data/hdf5/HDF5BlockHEAP.java
import java.util.Arrays;
import org.tinspin.data.hdf5.HDF5BlockSNOD.SymbolTableEntry;

/*
 * Copyright 2018 Tilmann Zäschke. All Rights Reserved.
 *
 * This software is the proprietary information of Tilmann Zäschke.
 * Use is subject to license terms.
 */
package org.tinspin.data.hdf5;



class HDF5BlockHEAP extends HDF5Block {
	//Signature
	int i0Signature;
	//Version
	//int b4Version;
	//Reserved (zero)
	int b5Zero;
	int b6Zero;
	int b7Zero;

	//Data Segment SizeL
	long l8dataSegmentSize;

	//Offset to Head of Free-listL
	long l16freeListOffset;

	//Address of Data SegmentO
	long l24dataSegementOffset;
	
	String[] heap;
	int[] heapOffset;
	int heapSize = 0;
	
	public HDF5BlockHEAP(int offset, int version) {
		super(offset, version);
	}
	
	@Override
	public String toString() {
		return "HEAP(" + getOffset() + ")" + Reader.L + 
//				//Signature
//				"Signature=" + i0Signature + Reader.L +
				//Version
				"Version=" + getVersion() + Reader.L +
				//Reserved (zero)
				//"" + b5Zero + L +
				//"" + b6Zero + L +
				//"" + b7Zero + L +

				//Data Segment SizeL
				"dataSegmentSize=" + l8dataSegmentSize + Reader.L +

				//Offset to Head of Free-listL
				"freeListOffset=" + l16freeListOffset + Reader.L +

				//Address of Data SegmentO
				"dataSegementOffset=" + l24dataSegementOffset;
	}

	public String getLinkName(SymbolTableEntry ste) {