Skip to content

Commit dc0b039

Browse files
committed
Add getType implementations for most of RA/RAI classes.
1 parent 1f67b63 commit dc0b039

14 files changed

+128
-0
lines changed

src/main/java/net/imglib2/converter/read/BiConvertedRandomAccessible.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,9 @@ public C getDestinationType()
107107
{
108108
return converterSupplier.get();
109109
}
110+
111+
@Override
112+
public C getType() {
113+
return converted.createVariable();
114+
}
110115
}

src/main/java/net/imglib2/converter/read/BiConvertedRandomAccessibleInterval.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,4 +116,9 @@ public C getDestinationType()
116116
{
117117
return converterSupplier.get();
118118
}
119+
120+
@Override
121+
public C getType() {
122+
return converted.createVariable();
123+
}
119124
}

src/main/java/net/imglib2/converter/read/ConvertedRandomAccessibleInterval.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,9 @@ public B getDestinationType()
103103
{
104104
return converterSupplier.get();
105105
}
106+
107+
@Override
108+
public B getType() {
109+
return converted.createVariable();
110+
}
106111
}

src/main/java/net/imglib2/converter/readwrite/WriteConvertedRandomAccessible.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838

3939
import net.imglib2.Interval;
4040
import net.imglib2.RandomAccessible;
41+
import net.imglib2.Sampler;
4142
import net.imglib2.converter.AbstractConvertedRandomAccessible;
4243

4344
/**
@@ -74,4 +75,31 @@ public WriteConvertedRandomAccess< A, B > randomAccess( final Interval interval
7475
{
7576
return new WriteConvertedRandomAccess< A, B >( source.randomAccess( interval ), converterSupplier );
7677
}
78+
79+
@Override
80+
public B getType() {
81+
return converterSupplier.get().convert( ( Sampler< ? extends A > ) new ConstantSampler( getSource().getType() ) );
82+
}
83+
84+
private static class ConstantSampler< T > implements Sampler< T >
85+
{
86+
87+
private final T t;
88+
89+
public ConstantSampler( T t ) {
90+
this.t = t;
91+
}
92+
93+
@Override
94+
public T get()
95+
{
96+
return t;
97+
}
98+
99+
@Override
100+
public Sampler< T > copy()
101+
{
102+
return new ConstantSampler<>( t );
103+
}
104+
}
77105
}

src/main/java/net/imglib2/converter/readwrite/WriteConvertedRandomAccessibleInterval.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import net.imglib2.AbstractWrappedInterval;
4040
import net.imglib2.Interval;
4141
import net.imglib2.RandomAccessibleInterval;
42+
import net.imglib2.Sampler;
4243

4344
/**
4445
* TODO
@@ -74,4 +75,31 @@ public WriteConvertedRandomAccess< A, B > randomAccess( final Interval interval
7475
{
7576
return new WriteConvertedRandomAccess< A, B >( sourceInterval.randomAccess( interval ), converterSupplier );
7677
}
78+
79+
@Override
80+
public B getType() {
81+
return converterSupplier.get().convert( ( Sampler< ? extends A > ) new ConstantSampler( getSource().getType() ) );
82+
}
83+
84+
private static class ConstantSampler< T > implements Sampler< T >
85+
{
86+
87+
private final T t;
88+
89+
public ConstantSampler( T t ) {
90+
this.t = t;
91+
}
92+
93+
@Override
94+
public T get()
95+
{
96+
return t;
97+
}
98+
99+
@Override
100+
public Sampler< T > copy()
101+
{
102+
return new ConstantSampler<>( t );
103+
}
104+
}
77105
}

src/main/java/net/imglib2/histogram/DiscreteFrequencyDistribution.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,4 +366,9 @@ public DiscreteFrequencyDistribution copy()
366366
return new DiscreteFrequencyDistribution( counts.copy() );
367367
}
368368

369+
@Override
370+
public LongType getType() {
371+
return new LongType();
372+
}
373+
369374
}

src/main/java/net/imglib2/histogram/Histogram1d.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,10 @@ public Histogram1d< T > copy()
721721
return new Histogram1d< T >( this );
722722
}
723723

724+
public LongType getType() {
725+
return new LongType();
726+
}
727+
724728
// -- helpers --
725729

726730
private void reset()

src/main/java/net/imglib2/histogram/HistogramNd.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,6 +1020,11 @@ public HistogramNd< T > copy()
10201020
return new HistogramNd< T >( this );
10211021
}
10221022

1023+
@Override
1024+
public LongType getType() {
1025+
return new LongType();
1026+
}
1027+
10231028
// -- helpers --
10241029

10251030
private void reset()

src/main/java/net/imglib2/position/FunctionRandomAccessible.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,9 @@ public FunctionRandomAccess randomAccess( final Interval interval )
109109
{
110110
return randomAccess();
111111
}
112+
113+
@Override
114+
public T getType() {
115+
return super.typeSupplier.get();
116+
}
112117
}

src/main/java/net/imglib2/position/PositionRandomAccessible.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,4 +108,9 @@ public RandomAccess< LongType > randomAccess( final Interval interval )
108108
{
109109
return randomAccess();
110110
}
111+
112+
@Override
113+
public LongType getType() {
114+
return new LongType();
115+
}
111116
}

0 commit comments

Comments
 (0)