Skip to content

Commit

Permalink
use DataBlock.getNumElements to get the number of elements of a DataB…
Browse files Browse the repository at this point in the history
…lock
  • Loading branch information
axtimwalde committed Jun 16, 2017
1 parent fb84863 commit 384d647
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 19 deletions.
2 changes: 1 addition & 1 deletion src/main/java/org/janelia/saalfeldlab/n5/DataBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ public static Path getPath(final String datasetPathName, final long[] gridPositi
public static int getNumElements(final int[] size) {
int n = size[0];
for (int i = 1; i < size.length; ++i)
n += size[i];
n *= size[i];
return n;
}
}
30 changes: 12 additions & 18 deletions src/main/java/org/janelia/saalfeldlab/n5/DataType.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
*/
package org.janelia.saalfeldlab.n5;

import static org.janelia.saalfeldlab.n5.DataBlock.getNumElements;

import java.lang.reflect.Type;

import com.google.gson.JsonDeserializationContext;
Expand All @@ -42,16 +44,16 @@
*/
public enum DataType {

UINT8("uint8", (blockSize, gridPosition) -> new ByteArrayDataBlock(blockSize, gridPosition, new byte[blockLength(blockSize)])),
UINT16("uint16", (blockSize, gridPosition) -> new ShortArrayDataBlock(blockSize, gridPosition, new short[blockLength(blockSize)])),
UINT32("uint32", (blockSize, gridPosition) -> new IntArrayDataBlock(blockSize, gridPosition, new int[blockLength(blockSize)])),
UINT64("uint64", (blockSize, gridPosition) -> new LongArrayDataBlock(blockSize, gridPosition, new long[blockLength(blockSize)])),
INT8("int8", (blockSize, gridPosition) -> new ByteArrayDataBlock(blockSize, gridPosition, new byte[blockLength(blockSize)])),
INT16("int16", (blockSize, gridPosition) -> new ShortArrayDataBlock(blockSize, gridPosition, new short[blockLength(blockSize)])),
INT32("int32", (blockSize, gridPosition) -> new IntArrayDataBlock(blockSize, gridPosition, new int[blockLength(blockSize)])),
INT64("int64", (blockSize, gridPosition) -> new LongArrayDataBlock(blockSize, gridPosition, new long[blockLength(blockSize)])),
FLOAT32("float32", (blockSize, gridPosition) -> new FloatArrayDataBlock(blockSize, gridPosition, new float[blockLength(blockSize)])),
FLOAT64("float64", (blockSize, gridPosition) -> new DoubleArrayDataBlock(blockSize, gridPosition, new double[blockLength(blockSize)]));
UINT8("uint8", (blockSize, gridPosition) -> new ByteArrayDataBlock(blockSize, gridPosition, new byte[getNumElements(blockSize)])),
UINT16("uint16", (blockSize, gridPosition) -> new ShortArrayDataBlock(blockSize, gridPosition, new short[getNumElements(blockSize)])),
UINT32("uint32", (blockSize, gridPosition) -> new IntArrayDataBlock(blockSize, gridPosition, new int[getNumElements(blockSize)])),
UINT64("uint64", (blockSize, gridPosition) -> new LongArrayDataBlock(blockSize, gridPosition, new long[getNumElements(blockSize)])),
INT8("int8", (blockSize, gridPosition) -> new ByteArrayDataBlock(blockSize, gridPosition, new byte[getNumElements(blockSize)])),
INT16("int16", (blockSize, gridPosition) -> new ShortArrayDataBlock(blockSize, gridPosition, new short[getNumElements(blockSize)])),
INT32("int32", (blockSize, gridPosition) -> new IntArrayDataBlock(blockSize, gridPosition, new int[getNumElements(blockSize)])),
INT64("int64", (blockSize, gridPosition) -> new LongArrayDataBlock(blockSize, gridPosition, new long[getNumElements(blockSize)])),
FLOAT32("float32", (blockSize, gridPosition) -> new FloatArrayDataBlock(blockSize, gridPosition, new float[getNumElements(blockSize)])),
FLOAT64("float64", (blockSize, gridPosition) -> new DoubleArrayDataBlock(blockSize, gridPosition, new double[getNumElements(blockSize)]));

private final String label;

Expand All @@ -78,14 +80,6 @@ public DataBlock<?> createDataBlock(final int[] blockSize, final long[] gridPosi
return dataBlockFactory.createDataBlock(blockSize, gridPosition);
}

public static int blockLength(final int[] blockSize) {
int n = 1;
for (int d = 0; d < blockSize.length; ++d) {
n *= blockSize[d];
}
return n;
}

private static interface DataBlockFactory {

public DataBlock<?> createDataBlock(final int[] blockSize, final long[] gridPosition);
Expand Down

0 comments on commit 384d647

Please sign in to comment.