Skip to content

Commit

Permalink
Let WrappedImg extend Img
Browse files Browse the repository at this point in the history
And add default method implementations delegating to the wrapped Img.

I lifted the methods to implement from an existing class
implementing WrappedImg and Img with the delegation pattern:
https://github.com/imglib/imglib2-appose/blob/d1f5ce29ba6e8ac2a0fb172120f9af61a0413248/src/main/java/net/imglib2/appose/SharedMemoryImg.java#L120-L198
  • Loading branch information
ctrueden committed Jan 17, 2025
1 parent 176c0f2 commit 6add873
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 2 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

<groupId>net.imglib2</groupId>
<artifactId>imglib2</artifactId>
<version>7.1.5-SNAPSHOT</version>
<version>7.2.0-SNAPSHOT</version>

<name>ImgLib2 Core Library</name>
<description>A multidimensional, type-agnostic image processing library.</description>
Expand Down
86 changes: 85 additions & 1 deletion src/main/java/net/imglib2/img/WrappedImg.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,96 @@

package net.imglib2.img;

import net.imglib2.Cursor;
import net.imglib2.Interval;
import net.imglib2.RandomAccess;
import net.imglib2.stream.LocalizableSpliterator;

/**
* An object that wraps an {@link Img} somehow.
*
* @author Christian Dietz
*/
public interface WrappedImg< T >
public interface WrappedImg< T > extends Img< T >
{
Img< T > getImg();

@Override
default T getType()
{
return getImg().getType();
}

@Override
default int numDimensions()
{
return getImg().numDimensions();
}

@Override
default long min( final int d )
{
return getImg().min( d );
}

@Override
default long max( final int d )
{
return getImg().max( d );
}

@Override
default long dimension( final int d )
{
return getImg().dimension( d );
}

@Override
default RandomAccess< T > randomAccess()
{
return getImg().randomAccess();
}

@Override
default RandomAccess< T > randomAccess( final Interval interval )
{
return getImg().randomAccess( interval );
}

@Override
default Cursor< T > cursor()
{
return getImg().cursor();
}

@Override
default Cursor< T > localizingCursor()
{
return getImg().localizingCursor();
}

@Override
default LocalizableSpliterator< T > spliterator()
{
return getImg().spliterator();
}

@Override
default LocalizableSpliterator< T > localizingSpliterator()
{
return getImg().localizingSpliterator();
}

@Override
default long size()
{
return getImg().size();
}

@Override
default Object iterationOrder()
{
return getImg().iterationOrder();
}

}

0 comments on commit 6add873

Please sign in to comment.