From 1e39c24934151491dcc868759e335f35cf15aa7d Mon Sep 17 00:00:00 2001
From: Tobias Pietzsch <tobias.pietzsch@gmail.com>
Date: Thu, 16 Mar 2017 14:44:45 -0400
Subject: [PATCH] Implement VolatileUnsignedLongType.createSuitableNativeImg()

---
 .../type/volatiles/VolatileUnsignedLongType.java    | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/main/java/net/imglib2/type/volatiles/VolatileUnsignedLongType.java b/src/main/java/net/imglib2/type/volatiles/VolatileUnsignedLongType.java
index 6a069ed2..ef11805c 100644
--- a/src/main/java/net/imglib2/type/volatiles/VolatileUnsignedLongType.java
+++ b/src/main/java/net/imglib2/type/volatiles/VolatileUnsignedLongType.java
@@ -36,6 +36,7 @@ import net.imglib2.img.basictypeaccess.LongAccess;
 import net.imglib2.img.basictypeaccess.volatiles.VolatileLongAccess;
 import net.imglib2.img.basictypeaccess.volatiles.array.VolatileLongArray;
 import net.imglib2.type.numeric.integer.UnsignedLongType;
+import net.imglib2.util.Fraction;
 
 /**
  * A {@link Volatile} variant of {@link UnsignedLongType}. It uses an underlying
@@ -108,7 +109,17 @@ public class VolatileUnsignedLongType extends AbstractVolatileNativeRealType< Un
 	@Override
 	public NativeImg< VolatileUnsignedLongType, ? extends VolatileLongAccess > createSuitableNativeImg( final NativeImgFactory< VolatileUnsignedLongType > storageFactory, final long[] dim )
 	{
-		throw new UnsupportedOperationException();
+		// create the container
+		@SuppressWarnings( "unchecked" )
+		final NativeImg< VolatileUnsignedLongType, ? extends VolatileLongAccess > container = ( NativeImg< VolatileUnsignedLongType, ? extends VolatileLongAccess > ) storageFactory.createLongInstance( dim, new Fraction() );
+
+		// create a Type that is linked to the container
+		final VolatileUnsignedLongType linkedType = new VolatileUnsignedLongType( container );
+
+		// pass it to the NativeContainer
+		container.setLinkedType( linkedType );
+
+		return container;
 	}
 
 	@Override
-- 
GitLab